您好,登錄后才能下訂單哦!
一:三大命令家族
當我們在centos中管理網絡時需要為網卡設置網絡屬性,有自動獲取和手動配置兩種,自動獲取需要在主機所在的網絡中至少有一臺DHCP服務器,而手動配置即靜態指定則可以使用命令或者修改配置文件,首先著重說一下使用命令,命令包括net-tools家族(ifcfg家族)、iproute家族、nm家族:Network Manager,這三個工具都是setup的子命令,在centos6中可以使用上述命令。
具體命令的總結為:
net-tools家族(ifcfg家族)
ifconfig接口配置命令
查看網絡接口的配置信息;
配置網絡屬性
管理接口狀態
route
查看路由信息
配置路由信息(網關,靜態路由,靜態默認路由)
netstat
狀態及統計數據的查看
iproute家族:
ip OBJECT
其中OBJERT可以是:
addr:IP地址和掩碼的管理
link:物理接口的管理
route:路由管理
ss:
狀態和統計數據的查看
注意:以上命令可以在任何的linux發行版中都適用
nm家族: Network Manager
nmcli:命令行工具
nmtui:text-window的工具
nm家族只在centos7中能夠使用
首先詳細的介紹一下net-tools家族(ifcfg家族)的三個命令:
1.ifconfig命令
ifconfig - configure a network interface配置一個網絡接口
1)ifconfig [interface]:用于查看網絡接口的配置信息
如果執行ifconfig命令不帶任何接口做參數,則顯示所有處于激活狀態的網絡接口信息
如果執行ifconfig命名,帶有特定的接口名稱作為參數,則無論接口是否處于激活狀態,都顯示該網絡接口的信息
ifconfig interface address :用于配置網絡接口的指定參數
ifconfig interface IP[/PREFIX_LEN] [up|down]
ifconfig interface IP netmask SUBNET_MASK [up|down]
示例:
# ifconfig eth2 172.16.100.105
# ifconfig eth2 172.16.100.105/24
# ifconfig eth2 172.16.100.105 netmask 255.255.255.192
# ifconfig eth2 up|down
常用選項:
-a:顯示所有的網絡接口,無論其是否處于激活狀態
示例:ifconfig -a
2.route命令:查看和管理路由信息:
路由表中的路由條目,可能包括下面幾種類型
1.主機路由:目標地址是特定的單個IP地址
2.網絡路由:子網路由,主網路由,超網路由(聚合路由CIDR)
3.默認路由:目標地址為0.0.0.0/0的路由條目,到達任意地址的路由
常用選項:
-n:以數字化顯示主機名(IP地址)和端口
設置路由信息:
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
route del [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
設置默認網關的方法:default 等于 -net 0.0.0.0/0 netmask 0.0.0.0
route add default gw 192.168.100.1
刪除默認網關的方法:
route del default
route del default gw 172.16.0.1
添加靜態路由的方法:
route add -net 10.0.0.0/8 gw 192.168.220.100 [dev eth3]
刪除靜態路由的方法:
route del -net 10.0.0.0/8
route del -net 10.0.0.0/8 gw 192.168.220.100
3.netstat命令:
Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
Print network connections
[--tcp|-t]:只顯示與TCP協議相關的網絡連接
[--udp|-u]:只顯示與UDP協議相關的網絡連接
[--udplite|-U]:只顯示udplite協議相關的網絡連接
[--sctp|-S]:
[--raw|-w]:顯示與裸套接字相關的網絡連接
[--listening|-l]:顯示處于LISTEN狀態的TCP連接
[--all|-a]:查看所有狀態的任意連接
[--numeric|-n]:數字化顯示結果中的主機名、端口號、用戶ID等信息;
[--numeric-hosts]
[--numeric-ports]
[--numeric-users]
[--extend|-e[--extend|-e]]:以擴展格式顯示結果
[--program|-p]:顯示與該網絡連接相關的應用程序及進程ID
常用的選項組合:
-tan, -uan, -tnl, -unl, -tnlp, -unlp, -tunlp
Print routing tables
{--route|-r}:顯示路由表信息
[--numeric|-n]:數字化信息
[--extend|-e]:顯示擴展信息
常用的選項組合:
-rn, -rne
Print interface statistics:
{--interfaces|-I|-i}
[--all|-a]
[--extend|-e]
[--verbose|-v]
[--program|-p]
[--numeric|-n]
Print Protocol statistics:
{--statistics|-s}:顯示詳細的各個協議的統計信息;
[--tcp|-t]
[--udp|-u]
[--udplite|-U]
[--sctp|-S]
[--raw|-w]
然后是iproute家族:
ip:show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route | netns }
ip link COMMAND
COMMAND: add, delete, set, show, help
ip link set - 修改網絡設備的配置參數
ip link set [dev] IFACE_NAME { up | down }:激活或禁用網絡接口;
ip link set [dev] IFACE_NAME [ arp { on | off } ]:是否允許此網絡接口使用ARP協議;
ip link set [dev] IFACE_NAME name IFACE_NEW_NAME:更改網絡接口名稱,需要將設備先down掉;
ip link set [dev] IFACE_NAME [ mtu MTU ]:修改網絡接口的MTU數值;
ip link set [dev] IFACE_NAME [ netns PID ]:
ip link set [dev] IFACE_NAME [ netns NAME ]:將指定的網絡接口加入到指定的網絡名稱空間中;
ip link { show | list }:列表顯示所有的鏈路接口;只顯示鏈路層信息;
ip link help:獲得簡短的幫助信息
ip netns COMMAND - 設置內核中的網絡名稱空間;
ip netns list:列表顯示所有的自定義的名稱空間;
ip netns add NS_NAME:創建名稱空間;
ip netns exec NS_NAME cmd:在指定的名稱空間中使用命令;
ip netns delete NS_NAME:刪除指定的名稱空間;
ip addr COMMAND - 查看和設置三層邏輯網絡地址;
ip addr add IFADDR dev IFACE_NAME:為指定的網絡接口添加IP地址;
ip addr del IFADDR dev IFACE_NAME:將IP地址從指定的網絡接口上刪除;
ip addr flush dev IFACE_NAME:將指定接口上配置的所有IP地址全部清除;
ip addr { show | list } [dev IFACE_NAME]:顯示網絡接口上配置的IP地址;
為網絡接口增加多個IP地址,并能夠使用ifconfig查看;
ip addr add IFADDR dev IFACE_NAME label IFACE_NAME_LABEL
ifconfig IFACE_NAME_LABEL IFADDR
IFACE_NAME_LABEL : IFACE_NAME:#
ip route COMMAND - 查看和設置路由表信息
ip route { add | del } TARGET/PREFIX via NEXT_HOP [dev IFACE_NAME]
ip route list
二:網絡接口的命名
Linux中每個網絡接口都有一個名稱,可以使用ifconfig命令來查詢當前系統中的接口。那么這些接口命名時是否有要求或者限制呢,比如格式或者長度限制。從表面上看似乎沒有限制可以隨意命名,在一般應用場景中也可以正常工作,當在特殊應用場合中就會因為接口名稱的原因出現莫名其妙的問題。所以需要有命名規范:
思科的交換機:fastethernet0/1,gigabitethernet0/1
思科路由器:Ethernet0/0,fastethernet0/0
linux的接口命名的方式:
a.傳統的命名方式:
以太網:ethx,x從0開始的整數,如:eth0,eth2.......
PPP網絡:PPPoE,PPP over Ethernet
pppX,X從0開始的整數:如:ppp0,ppp1,....
環回接口:lo,loopback
在centos6及之前的發行版本中使用
b.可預測的命名方案(centos7開始)
可以支持很多種命名機制:
1)根據Firmware進行命名
每一臺計算機的網卡在其計算機的硬件固件中都有唯一的標識符,比如MAC地址,廠商標識,電氣編號等
2)根據物理拓撲結構:
每一臺計算機的主板上都有定數量的插槽或接口,如主板上第二個插槽連接的網卡的第一個物理接口等
根據不同的命名機制,我們可以有如下的命名標準:
1)如果Firmware或BIOS是主板上集成的設備提供的索引信息并且該信息可用,則根據此索引信息進行設備命名,如,enoX,eno1,eno16777736,.....
2)如果Firmware或者BIOS是主板上擴展插槽所提供的索引信息并且該信息可用,則根據此索引信息進行設備命名,如:ensX,ens0,ens2....
3)如果硬件接口的物理拓撲的位置信息存在并可用,可以根據此信息進行設備命名,如:enp1s0
4)如果用戶顯示的定義,可以根據諸如MAC地址進行命名,如:enx000c290045b3
5) 如果上述預測皆不可用,則沿用傳統命名方式對網路設備進行命名
命名的格式組成:
en:Ethernet
wl:wlan
ww:wwan
名稱的類型:
0<index>:集成設備的索引號
s<slot_num>:擴展插槽的索引號
x<MAC>:基于MAC地址進行命名
p<bus>s<slot>:基于總線+擴展插槽的索引聯合索引編號
三:網絡的配置文件
當我們需要配置網絡的時候另一種方式就是修改配置文件,在CentOS6中跟IP、MASK、GATEWAY、DNS Server相關的配置文件保存在/etc/sysconfig/network-scripts/ifcfg-IFACE_NAME,中其內容詳細解釋如下:
DEVICE:此網絡接口的名稱
TYPE:此網絡接口的類型,比較常見的是Ethernet,Bridge,Token Ring,...
HWADDR:此設備的物理地址,在以太網中是MAC地址;
ONBOOT:在系統引導的過程中,是否激活此設備;
NETBOOT:是否可以使用此設備進行網絡引導;
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:是否允許從DHCP服務器獲得的DNS服務器的地址指向替代此配置文件中的DNS服務器的地址指向;默認值為允許;
NM_CONTROLLED:是否允許NetworkManager服務管理網絡接口;此服務在CentOS6中非常不完善,所以建議不使用此服務進行網絡接口的管理;而且最好將此服務永久關閉,執行下列兩條命令即可;
# service NetworkManager stop
# chkconfig NetworkManager off
主機名稱的配置文件:/etc/sysconfig/network
HOSTNAME:當前Linux系統使用的主機名稱
# hostname 查看當前系統的FQDN
# hostname NEW_HOSTNAME
注銷后重新登錄,即可生效
CentOS7和CentOS基本相同,多出了下列幾項:
UUID:全局唯一標識符,用來唯一標識此網絡接口;
NAME:此網絡接口的顯示名稱;
DEFROUTE:是否允許此網絡接口運行默認路由;
四:Bonding —— 綁定
Bonding —— 綁定就是將多塊網卡(多個網絡接口設備)綁定同一IP地址,對外提供網絡服務;這些網卡之間可以實現負載均衡或高可用技術;通過bonding,虛擬一個網卡對外提供服務及網絡連接,所有的物理網卡都被修改為相同的MAC地址;
Bonding的三種工作模式:
Mode 0——負載均衡解決方案,其負載均衡的算法為balance-rr(round robin, 輪詢);輪詢策略意味著:從頭到尾順序的在每個slave接口上面發送數據包;該模式可以提供負載均衡以及容錯的能力;
Mode 1——主備解決方案,(active-backup, master-backup),在此模式中,只有一個slave被激活,用于正常數據傳輸;而其他的接口都監視此接口的工作狀態;當且僅當活動的slave接口失敗的時候,才會從其他備份的接口中選擇一個用于激活;該模式只能實現容錯,無法進行負載均衡;
Mode 3——全廣播解決方案,在所有的slave接口上傳輸全部報文;
miimon用來進行鏈路監測。如果miimon=100,則系統每100ms監測一次鏈路連接的狀態;如果某個網絡接口在miimon監測的結果為不連通,則進行故障倒換;
使用Bonding的時候,我們需要配置:
1.創建虛擬接口
2.選擇miimon的監測時間及Bonding的工作模式;
3.選擇用于此次Bonding的物理接口;
在/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
修改物理網卡的配置文件:/etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
BOOTROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
修改物理網卡的配置文件:/etc/sysconfig/network-scripts/ifcfg-eth3
DEVICE=eth3
BOOTROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。