網路管理和網路設定(net-tools家族(ifcfg家族)、iproute家族、nm家族)

來源:互聯網
上載者:User

標籤:ifconfig、route、netstat、ip、ss、nmcli、nmtui、bonding、設定檔、網路介面命名

下面寫的是Centos網路管理和網路設定

我們為網卡設定網路屬性有兩種方式,手動設定和自動設定。自動設定,就是從主機所在網路中的DHCP伺服器擷取,其至少有一台DHCP伺服器。手動設定有兩種方式,分別是使用命令和修改設定檔,使用命令有三大家族的命令,即net-tools家族(ifcfg家族)、iproute家族、nm家族。同時,還介紹了相關的設定檔和網路介面命名規則。


一、net-tools家族

 1、ifconfig命令

ifconfig命令具有三個主要功能,分別是查看網路介面狀態、配置網路屬性、管理介面狀態。


查看:

ifconfig [interface] 命令中,如果沒有指定介面狀態,顯示的就是【啟用狀態】介面的網路資訊;如果指定了操作介面,不管介面是否是啟用狀態,都顯示指定介面的網路設定資訊。

ifconfig -a:顯示所有連接埠網路連接,無論是否啟用。


組態管理:

ifconfig INTERFACE ADDRESS 用於配置指定連接埠的指定參數

  例如:ifconfig INTERFACE IP[/PREFIX_LEN] [up/down]

        ifconfig INTERFACE IP netmask SUBNET_MASK [up/down]

        ifconfig eth1 172.16.1.1

        ifconfig eth1 172.16.1.1/24

        ifconfig eth1 172.16.1.1/24 up

        ifconfig eth1 172.16.1.1 netmask 255.255.255.0 up

        ifconfig eth1 up/down


 2、route命令

route查看和管理路由資訊,其中,路由表中的路由條目有三種類型,分別是主機路由、網路路由、預設路由。主機路由的目的地址是單個IP地址;網路路由有子網路由、主網路由、超網路由三種;預設路由,目的地址是0.0.0.0/0的IP地址,可以到達任意地址。


查看:

route -n:以數字化來顯示主機名稱、IP地址和連接埠。


配置:

route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] 添加

route del [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] 刪除

  添加預設閘道:route add default gw 192.168.0.1 或 route add default gw 192.168.0.2 dev eth2

  刪除預設閘道:route del default 或 route del default gw 192.168.0.2

  添加靜態路由:route add -net 10.0.0.0/8 gw 192.168.0.2 dev eth2

  刪除靜態路由:route del -net 10.0.0.0/8 或 route del -net 10.0.0.0/8 gw 192.168.0.2


 3、netstat命令

netstat查看網路連接、路由資訊、介面統計資訊等。

netstat的常用選項如下:

  -t:只查看與TCP協議有關的網路連接

  -u:只查看與UDP協議有關的網路連接

  -U:只顯示與udplite協議有關的網路連接

  -w:顯示與絡通訊端有關的網路連接

  -l:顯示處於監聽狀態的網路連接

  -a:顯示所有狀態的所有串連,不管啟用與否

  -n:數字化顯示,數字顯示主機名稱、連接埠號碼、使用者ID等資訊

  -e:以擴充格式顯示輸出網路連接

  -p:顯示與該網路連接有關的應用程式與進程ID

常用的選項組合:-tan, -uan, -tnl, -unl, -tnlp, -unlp, -tunlp

  -r:顯示路由表資訊 常用複合選項有:-rn、-rne

  -i/-I:顯示介面統計資訊,存在複合選項

  -s:詳細顯示協議資訊,分條顯示,存在複合選項

  


二、iproute家族

 1、ip命令

ip命令能進行網路參數的設定,裝置的相關設定、額外IP設定、路由設定。格式為:ip [ OPTIONS ] OBJECT { COMMAND | help } ; 其中OBJECT有四類:link、addr、route、netns。

 (1)、ip link COMMAND 

  設定與裝置(device)有關的相關設定,包括MTU以及該網路裝置的MAC等等。ip link COMMAND 中COMMAND有5類,分別是add、delete、set、show/list、help。

  ip link {show | list}  單純的查閱該裝置相關的資訊,列表顯示所有介面。

    例如:ip link show eth0

  ip link set 修改網路裝置的配置參數。

    ip link set [dev] IFACE_NAME { up | down }:啟用或禁用網路介面;

      例如:ip link set eth0 up 啟動eth0

            ip link set eth0 down 關閉eth0

    ip link set [dev] IFACE_NAME [ arp { on | off } ]:是否允許此網路介面使用ARP協議;

    ip link set [dev] IFACE_NAME name IFACE_NEW_NAME:更改網路介面名稱,需要將裝置先down掉;裝置啟動時,所以不能這樣做設定。

      例如:ip link set eth0 name myeth

            ip link set eth0 address aa:aa:aa:aa:aa:aa 修改MAC地址

    ip link set [dev] IFACE_NAME [ mtu MTU ]:修改網路介面的MTU數值;

      例如:ip link set eth0 mtu 1000 更改 MTU為1000 bytes,單位就是 bytes

    ip link set [dev] IFACE_NAME [ netns PID ]

 (2)、ip addr COMMAND

  查看和設定邏輯網路地址,屬於第三層。

    ip addr add IFADDR dev IFACE_NAME:為指定的網路介面添加IP地址;

      例如:ip addr add 192.168.50.50/24 broadcast + /

    ip addr del IFADDR dev IFACE_NAME:將IP地址從指定的網路介面上刪除;

      例如:ip addr del 192.168.50.50/24 dev eth0

    ip addr flush dev IFACE_NAME:將指定介面上配置的所有IP地址全部清除;

    ip addr { show | list } [dev IFACE_NAME]:顯示網路介面上配置的IP地址;

      例如: ip addr show eth0

  為網路介面增加【多個IP地址】,並能夠使用ifconfig查看,設定卷標實現;

    ip addr add IFADDR dev IFACE_NAME label IFACE_NAME_LABEL

    ifconfig IFACE_NAME_LABEL IFADDR

    IFACE_NAME_LABEL : IFACE_NAME:#

 (3)、ip route COMMAND

  ip route查看和設定路由表資訊,功能幾乎與rout命令一樣,但是,它還可以進行額外的參數設定,例如設定MTU。

    ip route { add | del } TARGET/PREFIX via NEXT_HOP [dev IFACE_NAME]

      例如:ip route add 192.168.5.0/24 dev eth0 增加內部路由

            ip route add 192.168.10.0/24 via 192.168.5.100 dev eth0 增加可以通往外部的路由

            ip route del 192.168.10.0/24

            ip route del 192.168.5.0/24

    ip route list/show

      例如:ip route show

 (4)、ip netns COMMAND 設定核心中的網路名稱空間

    ip netns list:列表顯示所有的自訂的名稱空間;

    ip netns add NS_NAME:建立名稱空間;

    ip netns exec NS_NAME cmd:在指定的名稱空間中使用命令;

    ip netns delete NS_NAME:刪除指定的名稱空間;

 2、ss命令

ss命令可以用來擷取socket統計資訊,它可以顯示和netstat類似的內容。但ss的優勢在於它能夠顯示更多更詳細的有關TCP和串連狀態的資訊,而且比netstat更快速更高效。

ss格式為:ss [options] [ FILTER ]

 (1)、[options]

  ss常用選項有:

    -t:與TCP協議相關的串連狀態;

    -u:與UDP協議相關的串連;

    -w:與裸通訊端相關的串連;

    -l:顯示處於監聽狀態的串連;

    -a:顯示所有的狀態的通訊端串連;

    -n:以數字化顯示結果;

    -p:顯示相關的應用程式及PID;

    -e:顯示詳細的擴充資訊;

    -m:顯示記憶體使用量量;

    -o:計時器資訊;

  常用的選項組合為:-tan, -uan, -tnl, -unl, -tulp, -unlp。

 (2)、[ FILTER ]

  FILTER為:[ state TCP-STATE ] [ EXPRESSION ],其中TCP-STATETCP,表示協議有限狀態機器中的所有的可用狀態;EXPRESSION,表示為dport= :port 或 sport= :port,例如:‘( dport = :22 or sport = :22 )‘ ,注意EXPRESSION用單引號引出來。



三、nm家族

 1、nmcli命令

nmcli是網路管理命令列工具,可以使用nmcli配置網路、實現網路組、設定主機名稱

nmcli格式為:nmcli  [ OPTIONS ] OBJECT { COMMAND | help } 

 (1)、OBJECT主要包括兩類,分別是connection和device 

  device:顯示和配置網路介面資訊

      device後的COMMAND有7類:status、show、connect、disconnect、delete、wifi、wimax

  connection:開始、停止、管理網路連接 

      connection後的COMMAND有9類:show、up、down、add、edit、modify、delete、reload、load

 (2)、COMMAND

  COMMAND的多類命令show、up、down、add、edit、modify、delete、reload、load解釋如下:                

    show:顯示網路連接的所有屬性資訊;

    up|down:啟用或禁用指定的網路連接;

    add:用來添加新的網路連接。其後加以下4類:autoconnect yes|no:是否自動啟動此串連,需在設定檔中添加ONBOOT=yes|no;ifname IF_NAME:指定要建立串連的目標網路介面裝置名稱;所有 con-name CON_NAME:為指定的網路介面裝置建立一個串連名稱; type TYPE:指定網路裝置的介面類型。

      例如:# nmcli connection add autoconnect yes ifname eno67109432 con-name eno666 type ethernet

    delete:刪除指定的網路連接

      例如:# nmcli connection delete CON_NAME

            # nmcli connection delete eno666

    reload:不重啟網路介面,但重新載入其設定檔中的配置資訊;

    modify:修改網路介面資訊,格式為:modify [ id | uuid | path ] <ID> [+|-]<setting>.<property> <value> ,其中,<setting>為以下5種:802-3-ethernet.mtu ;connection.autoconnect ;ipv4.addresses ;ipv4.dns ;ipv4.gateway ;ipv4.method。

      例如:# nmcli connection modify "系統\ eno50332208" ipv4.addresses 1.2.3.4/8 ipv4.dns 202.202.222.222 ipv4.gateway 1.1.1.1 

 (3)、建立網路組

  網路組,就是將多個【網路介面裝置彙總】在一起的方法,其目的是實現冗餘容錯以及提高可用性和輸送量;網路組與以往的Bonding技術相比,具有更好的效能以及更好的擴充性;在CentOS7中,網路組是由核心中的一個核心驅動和一個名為teamd的守護進程來實現的。網路組主要可以實現以下5種工作模式,工作模式也被稱為“運行器(runner)”:broadcast、roundrobin、activebackup、loadbalance、lacp(鏈路彙總控制協議)。

  網路組介面具有以下4個特點:1)、啟動網路組介面並不會自動啟動網路組中的其他port介面;2)、啟動網路組終端port介面,也不會自動啟動網路組介面;3)、禁用網路組介面,則會立即禁用網路組中的port介面;4)、對於沒有port介面的網路組介面而言,只能配置靜態IP地址,不能設定從DHCP擷取;如果設定了,網路組介面就會一直等待port介面的加入。

  

  建立網路組有兩種方法,一種是通過nmcli命令來建立,另一種是修改對應串連的設定檔來建立。

  方法一:通過nmcli命令來建立

  nmcli建立網路組介面:nmcli connection add type team con-name TEAM_CON_NAME ifname IF_NAME config JSON ;JSON是用來指定runner的方式,其格式為:‘{"runner": {"name": "METHOD"}}‘,METHOD為broadcast、roundrobin、activebackup、loadbalance、lacp五種。

    例如:# nmcli connection add type team con-name class17 ifname class17 config ‘{"runner": {"name": "loadbalance"}}‘

          # nmcli connection modify class17 ipv4.addresses 172.16.203.205/16

          # nmcli connection modify class17 ipv4.method manual

  

  nmcli建立port介面:nmcli connection add type team-slave [con-name CON_NAME] ifname IF_NAME master TEAM_NAME ;其中,如果不指定con-name,則預設的con-name為team-slave-IF_NAME。

    例如:# nmcli connection add type team-slave con-name eno67109432 ifname eno67109432 master class17

          # nmcli connection up class17

          # nmcli connection up eno67109432

          # nmcli device disconnect eno67109432


  方法二:修改對應串連的設定檔來建立

    例如:建立網路組介面:

          DEVICE=class17

          TEAM_CONFIG="{\"runner\": {\"name\": \"activebackup\"}}"

          DEVICETYPE=Team

          BOOTPROTO=none

          NAME=class17

          ONBOOT=yes

          IPADDR=172.16.203.205

          PREFIX=16


          建立port介面:

          NAME=team-slave-eno33554984

          DEVICE=eno33554984

          ONBOOT=yes

          TEAM_MASTER=class17

          DEVICETYPE=TeamPort



2、nmtui命令

nmtui是文本使用者介面的網路控制串連。



四、Bonding

與網路組相似的操作時建立Bonding,也是將多塊網卡,即多個網路介面裝置綁定到同一IP地址,對外提供網路服務;這些網卡之間可以實現負載平衡或高可用技術;通過bonding,虛擬一個網卡對外提供服務及網路連接,所有的物理網卡都被修改為相同的MAC地址;但Bonding最好在CentOS6中實現,在CentOS7中使用nmcli建立的網路組來實現更加強大的容錯。

Bonding主要有Mode 0、Mode 1和Mode 3這3種工作模式,具體解釋如下:

    Mode 0 :【負載平衡】的解決方案,其負載平衡的演算法為balance-rr,其中rr即輪詢round robin。輪詢策略,就是按【從頭到尾】順序的在每個slave介面上面發送資料包;該模式可以提供負載平衡以及容錯的能力;

    Mode 1 :【主備】的解決方案,在此模式中,只有一個slave被啟用,用於正常資料轉送;而其他的介面都監視此介面的工作狀態,若且唯若活動的slave介面失敗的時候,才會從其他備份的介面中選擇一個用於啟用;該模式只能【實現容錯】,無法進行負載平衡。

    Mode 3 :【全廣播】的解決方案,在所有的slave介面上傳輸全部報文。


使用Bonding的配置步驟如下:

    1、建立虛擬介面;

    例如:

    可以在/etc/sysconfig/network-scripts/ifcfg-bond0檔案中指定Bonding的特性:

      DEVICE=bond0

      ONBOOT=yes

      NM_CONTROLLED=no

      BOOTPROTO=none

      BONDING_OPTS="miimon=100 mode=0"

      IPADDR=172.16.100.135

      PREFIX=16    

    2、選擇miimon的監測時間及Bonding的工作模式;miimon用來進行鏈路監測。如果miimon=100,則系統每100ms監測一次鏈路串連的狀態;如果某個網路介面在miimon監測的結果為不連通,則進行故障倒換;

      例如:BONDING_OPTS="miimon=100 mode=0"

    3、選擇用於此次Bonding的物理介面;

  修改物理網卡eth1的設定檔:/etc/sysconfig/network-scripts/ifcfg-eth1

    DEVICE=eth1

    BOOTROTO=none

    MASTER=bond0

    SLAVE=yes

    USERCTL=no


  修改物理網卡eth2的設定檔:/etc/sysconfig/network-scripts/ifcfg-eth2

    DEVICE=eth2

    BOOTROTO=none

    MASTER=bond0

    SLAVE=yes

    USERCTL=no



五、設定檔

 1、網路介面設定檔

  在CentOS6中,主要有5類設定檔,即與IP、MASK、GATEWAY、DNS Server相關的設定檔。各個網路介面設定檔的存取位置為:/etc/sysconfig/network-scripts/ifcfg-IFACE_NAME,其中的配置資訊解釋如下:

    DEVICE:網路介面【名稱】

    TYPE:網路介面【類型】,常見的有Ethernet、Bridge、Token Ring等

    HWADDR:此裝置的【物理地址】,是在乙太網路中的MAC地址;

    ONBOOT:在系統引導的過程中,是否【啟用】此裝置,yes/no;

    NETBOOT:是否可以使用此裝置進行【網路引導】,yes/no;

    BOOTPROTO:介面【協議類型】;BOOTPROTO有動態配置和靜態配置兩類,動態配置即dhcp和bootp;靜態配置即static和none。

    IPV6INIT:是否在此介面上初始化【IPV6】協議;

    USERCTL:是否【普通使用者能夠管理】此介面,推薦用no;

    IPADDR:指定此介面的固定【IP地址】,但,其前提是BOOTPROTO應該是static或none;

    NETMASK:設定IP地址對應的【子網路遮罩】;如:255.255.255.0

    PREFIX:設定IP地址的【網路首碼】的位元,和子網路遮罩一個意思;如:24

    GATEWAY:設定預設【網關】

    DNS1:首選【DNS】伺服器的地址指向;

    DNS2:備用DNS伺服器的地址指向;

    DNS3:第三DNS伺服器的地址指向;

    PEERDNS:新的DNS伺服器的地址是否能夠指向替代的DNS伺服器的地址指向,預設值為允許;

    NM_CONTROLLED:是否允許【NetworkManager】服務管理網路介面,不建議使用。

在CentOS6中非常不完善,關閉NetworkManager的步驟如下:(1)、# service NetworkManager stop ;(2)、# chkconfig NetworkManager off

在CentOS7中,與IP、MASK、GATEWAY、DNS Server相關的設定檔位置為:/etc/sysconfig/network-scripts/ifcfg-IFACE_NAME。與CentOS6相比,CentOS7主要多了三項,即UUID、NAME、DEFROUTE。DEFROUTE,用來設定是否允許此網路介面運行預設路由。


 2、主機名稱的設定檔

  主機名稱設定檔位置為:/etc/sysconfig/network。

  對於主機名稱設定檔,HOSTNAME,是當前Linux系統使用的主機名稱,使用 # hostname 查看當前系統的FQDN ;# hostname NEW_HOSTNAME 進行登出後重新登入。

    例如:# hostnamectl set-hostname NEW_HOSTNAME 重新設定主機名稱


 3、本地解析設定檔

  本地解析設定檔位置為:/etc/hosts。格式為:IP地址 主機名稱


 4、解析器檔案

  解析器檔案的位置為:/etc/resolv.conf

    search DOMAIN_NAME

    nameserver DNS_SERVER_IP_ADDRESS


 5、靜態路由的設定檔

  靜態路由的設定檔位置為:/etc/sysconfig/network-scripts/route-IFACE_NAME。

  IFACE_NAME 兩種寫法如下:

   (1)、每條路由資訊佔用一行,格式為:TARGET via NEXT_HOP [dev IFACE_NAME]

      例如:10.0.0.0/8 via 192.168.100.254。

   (2)、每條路由資訊佔用多行,其格式為:

        ADDRESS#=TARGET

        NETMASK#=MASK

        GATEWAY#=NEXT_HOP

      例如:ADDRESS0=172.16.0.0

            NETMASK0=255.255.0.0

            GATEWAY0=192.168.10.254

  


六、網路介面命名

Linux的網路介面有兩種命名方式,一種是傳統的命名方式,其在CentOS6及之前的發行版本中使用;另一種是使用可預測的命名方式,其支援很多種命名機制,該方案從CentOS7開始使用。

 1、傳統的命名方式

  乙太網路:【ethX】,其中X是自然數;例如:eth0、eth1

  PPP網路:【pppX】,其中X是自然數;例如:ppp0、ppp1

  環回介面:【lo】

 2、可預測的命名方案

  (1)、 根據Firmware命名

    每一台電腦的網卡在其電腦的硬體韌體中都有唯一的標識符,比如:MAC地址,廠商標識,電器編號等。

      根據【整合裝置】所提供的索引資訊命名,例如:enoX, eno1,eno167777736,...

      根據【MAC地址】進行命名;例如:enx000c290045b3


  (2)、 根據物理拓撲結構命名

    每一台電腦的主板上都有固定數量的插槽或介面,如主板上第二個插槽串連的網卡的第一個物理介面等。

      根據【擴充插槽所提供】所提供的索引資訊命名,如:ensX、ens0、ens2

      根據硬體介面的【物理拓撲】的位置資訊命名,例如:enp1s0


網路管理和網路設定(net-tools家族(ifcfg家族)、iproute家族、nm家族)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.