1. 程式人生 > >轉:CentOS 7使用nmcli配置雙網卡聚合LACP

轉:CentOS 7使用nmcli配置雙網卡聚合LACP

lob ifconf centos7 運行程序 edge 鏈路聚合 網關 最長 ref

進入CentOS 7以後,網絡方面變化比較大,例如eth0不見了,ifconfig不見了,其原因是網絡服務全部都由NetworkManager管理了,下面記錄下今天下午用nmcli配置的網卡聚合,網絡上資料比較多,這裏僅記錄以備忘,更詳細的說明可以參考rhel7和centos7使用nmcli命令管理配置網絡。

CentOS7使用ip link代替ifconfig命令,使用teamd處理雙網卡聚合,使用nmcli命令行配置網絡。

實戰發現team driver在重啟時會有些問題,會漏掉設置混雜模式( 具體參見 ),我們已經換成更老但是更穩固的bond了

linux聚合有6種模式(抄來的)

  • broadcast 傳輸來自所有端口的包
  • roundrobin 以輪循的方式傳輸所有端口的包
  • activebakup 這是一個故障遷移程序,監控鏈接更改並選擇活動的端口進行傳輸
  • loadbalance 監控流量並使用哈希函數以嘗試在選擇傳輸端口的時候達到完美均衡
  • lacp 實施802.3ad 鏈路聚合協議,可以使用與 loadbalance 運行程序相同的傳輸端口選擇的可能性

Linux網卡bond的七種模式詳解中,介紹了0-6中mode的具體工作模式,在我們這裏聚合采用的是lacp模式,主要原因是我們還會使用PXE裝機,而PXE只會初始化一塊網卡去DHCP申請地址,在這個過程中去修改交換機配置顯然是不合適的,只能選擇動態聚合。註意lacp模式需要接入交換機支持,下面會分為服務器側和交換機側兩塊配置。

交換機側配置

交換機使用的是CE6851-48S6Q-HI,兩臺48萬兆口交換機(雙萬兆聚合也是沒誰了)。吐槽下華為交換機,比華三的交換機質量差太遠了,無論是穩定性還是友好度。我甚至遇到過網卡必須要shutdown/undo shutdown才能UP的情況,就不用說進一個視圖需要一分鐘這種事情了。可是我們就是不能用H3C的交換機。

註意Eth-Trunk11口的mode為lacp-dymanic。

[~HUAWEI-Eth-Trunk11]dis this
#
interface Eth-Trunk11
 port link-type trunk
 port trunk pvid vlan 127
 undo port trunk allow-pass vlan 1
 port trunk allow-pass vlan 127
 stp edged-port enable
 mode lacp-dynamic
#
return
[~HUAWEI-10GE1/0/11]dis this
#
interface 10GE1/0/11
 eth-trunk 11
 storm suppression unknown-unicast packets 1000
 storm suppression multicast packets 1000
 storm suppression broadcast packets 1000
 device transceiver 10GBASE-FIBER
#
return
[~HUAWEI-10GE2/0/33]dis this
#
interface 10GE2/0/33
 eth-trunk 11
 storm suppression unknown-unicast packets 1000
 storm suppression multicast packets 1000
 storm suppression broadcast packets 1000
 device transceiver 10GBASE-FIBER
#
return

服務器側配置

1、創建bond0口,其mode為lacp4。centos7不再使用mode=4這種表示方法了。如前所述,我們用bond,不用風騷的team driver。

#nmcli connection add type bond con-name team0 ifname bond0 config ‘{"runner":{"name":"lacp"}}‘
nmcli connection add type bond con-name bond0 ifname bond0 mode 4

2、將2個萬兆口enp5s0f0、enp5s0f1加到bond0裏去

#nmcli connection add type team-slave con-name bond0-port1 ifname enp5s0f0 master bond0
#nmcli connection add type team-slave con-name bond0-port2 ifname enp5s0f1 master bond0
nmcli connection add type bond-slave ifname enp5s0f0 master bond0
nmcli connection add type bond-slave ifname enp5s0f1 master bond0

3、靜態配置team0口地址、網關。 註意不要漏掉網關,否則跨網段就不能用啦。再吐槽一下HW的交換機,ping出去的時候源地址竟然不是根據網絡最長匹配的,選擇的是其他網段的源地址。

nmcli connection modify bond0 ipv4.addresses ‘192.168.127.45/24‘ ipv4.gateway ‘192.168.127.254‘
nmcli connection modify bond0 ipv4.method manual
nmcli connection up bond0

4、驗證

# ip addr show bond0
25: bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether 04:27:58:91:58:62 brd ff:ff:ff:ff:ff:ff
    inet 192.168.127.45/24 brd 192.168.127.255 scope global bond0
       valid_lft forever preferred_lft forever
    inet6 fe80::627:58ff:fe91:5862/64 scope link
       valid_lft forever preferred_lft forever
# ip route
default via 192.168.127.254 dev bond0
192.168.127.0/24 dev bond0  proto kernel  scope link  src 192.168.127.45  metric 350

nmcli相比ifconfig特別好的一點是,其配置會下刷到網絡的配置文件裏去,不需要擔心重啟以後配置丟失的問題,亞克西。

轉:CentOS 7使用nmcli配置雙網卡聚合LACP