整理網卡綁定的兩種方法


cnetos 網卡綁定 eth0+eth1做雙網卡綁定

​ 需要說明的是如果想做成mode 0的負載均衡,僅僅設置這里options bond0 miimon=100 mode=0是不夠的,與網卡相連的交換機必須做特殊配置(這兩個端口應該采取聚合方式),因為做bonding的這兩塊網卡是使用同一個MAC地址.從原理分析一下(bond運行在mode 0下):

​ mode 0下bond所綁定的網卡的IP都被修改成相同的mac地址,如果這些網卡都被接在同一個交換機,那么交換機的arp表里這個mac地址對應的端口就有多 個,那么交換機接受到發往這個mac地址的包應該往哪個端口轉發呢?正常情況下mac地址是全球唯一的,一個mac地址對應多個端口肯定使交換機迷惑了。所以 mode0下的bond如果連接到交換機,交換機這幾個端口應該采取聚合方式

1、首先得有兩張網卡來做實驗環境。

[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens34: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
    link/ether 00:0c:29:f3:00:f7 brd ff:ff:ff:ff:ff:ff
3: ens33: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
    link/ether 00:0c:29:f3:00:f7 brd ff:ff:ff:ff:ff:ff

2、/etc/sysconfig/network-scripts/目錄下建立ifcfg-bond0文件,內容如下:

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=192.168.2.128
NETMASK=255.255.252.0    
GATEWAY=192.168.2.254  
BONDING_OPTS="mode=0 miimon=200"    # miimon表示鏈路的檢測時間

3、修改相應需要綁定的網卡

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
# Generated by dracut initrd
NAME="ens33"
DEVICE="ens33"
ONBOOT=yes
NETBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no

3、修改第二張網卡

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens34
# Generated by dracut initrd
NAME="ens34"
DEVICE="ens34"
ONBOOT=yes
NETBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no

4、修改/etc/modprobe.d/dist.conf ,最后面加入;做了bond,新建一個配置文件。

[root@localhost ~]# vi /etc/modprobe.d/dist.conf 
alias bond0 bonding

5、先執行下面3個命令

這和上面的NM_CONTROLLED=no有關,但是我在實際配置的過程中感覺影響不大。
service NetworkManager stop     
chkconfig NetworkManager off
modprobe bonding    # 相當於是要告訴內核,做了bond,讓剛才的配置生效。

最后重啟網絡服務,這樣就成功的綁定了。

centos7 nmcli工具管理

需要開啟NetworkManager服務,轉自其它博客親測可用。

1.創建bond設備

#創建bond設備
[root@liyong: network-scripts]# nmcli con add con-name bond0 ipv4.method static ipv4.addresses 192.168.2.128/24 type bond mode balance-rr
Connection 'bond0' (2d586dd8-1153-425b-9fd6-a4a8eb4722aa) successfully added.

# balance-rr 就是 mode=0

2.查看連接

# 查看連接
[root@liyong: network-scripts]# nmcli con show
NAME                UUID                                  TYPE            DEVICE  
System ens37        4a5516a4-dfa4-24af-b1c4-e843e312e2fd  802-3-ethernet  ens37   
Wired connection 1  9a1b7a19-2e8d-330b-a2ed-b6f3923a8e1e  802-3-ethernet  ens33   
bond0               2d586dd8-1153-425b-9fd6-a4a8eb4722aa  bond            nm-bond 
virbr0              37df32ab-0188-4a57-ad31-b5701f027fc4  bridge          virbr0 

3.添加網關

#添加網關
[root@liyong: network-scripts]# nmcli connection modify bond0 ipv4.gateway 192.168.2.254

4.查看設置

cat ifcfg-bond0 

DEVICE=nm-bond
TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=bond0
UUID=2d586dd8-1153-425b-9fd6-a4a8eb4722aa
ONBOOT=yes
BONDING_OPTS=mode=active-backup
IPADDR=176.30.30.30
#添加slave
nmcli connection add type bond-slave master bond0 ifname ens33
Connection 'bond-slave-ens33' (fbf9a891-e8d5-4ef2-a8d7-fbeb6e2fe4bb) successfully added.

nmcli connection add type bond-slave master bond0 ifname ens37
Connection 'bond-slave-ens37' (443d40ad-bb42-4609-b4cd-7904abfbd2c6) successfully added.

#先啟動slave
nmcli connection up bond-slave-ens33
nmcli connection up bond-slave-ens37
#再啟動bond
nmcli connection up bond0
cat /proc/net/bonding/nm-bond 
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens33
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: ens33
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:21:a9:b3
Slave queue ID: 0

Slave Interface: ens37
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 2
Permanent HW addr: 00:0c:29:21:a9:bd
Slave queue ID: 0
#當斷開enss33 時ens37自動啟用
cat /proc/net/bonding/nm-bond 
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens37
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: ens33
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 1
Permanent HW addr: 00:0c:29:21:a9:b3
Slave queue ID: 0

Slave Interface: ens37
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 3
Permanent HW addr: 00:0c:29:21:a9:bd
Slave queue ID: 0

至此bond功能實現


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM