生產環境網卡綁定匯總
1 什么是bonding,team?
1.1 bonding,team簡介
在了解正式的概念之前,我們先從不太專業的角度取解釋這兩個名詞。 所謂bonding就是聯結。以下是來自柯林斯英漢雙解大詞典對于bonding的解釋。 the process by which individuals become emotionally attached to one another 形成的密切關系的過程 →see also pair bond 所謂team,你可以理解為團隊,也可以理解為一個組。那好,現在正式介紹bonding以及team。 Bonding bonding就是將多塊網卡綁定在同一個IP地址上對外提供服務,可以實現高可用或者負載均衡。通過bonding技術,虛擬出一塊物理網卡(比如bond0)對外提供連接,而被綁定在同一塊bond0上的所有網卡的MAC地址會修改成bond0的MAC地址。通過這個方法,我們也可以鑒定網卡是否綁定成功。 Team team就是升級版的bonding。bonding應用于redhat6,team應用于redhat7。team是將多個網卡聚合在一起的方法,從而實現冗錯和提高吞吐量。team技術相對于舊版的bonding技術來說,提供了更好的性能和擴展性。
1.2 bonding,team的工作模式
我將介紹三種常用的模式,分別是round-robin,active-backup,broadcast模式,這三種模式在bonding以及team中都存在。
1. mode 0
輪轉(round-robin)策略:slave網卡輪流發送數據包,本模式提供負載均衡和容錯的能力。
2. mode 1
主備策略(active-backup):只有一塊網卡被激活,當其中的一塊網卡出現故障,另一塊網卡就會激活。提供容錯的功能。
3. mode 3
廣播策略(broadcast):在所有的slave網卡接口傳送所有的報文,提供容錯的能力,但同時也極其消耗系統資源。
2 centos6中創建bond0實例
2.1 添加兩塊網卡并且驗證網卡
驗證方式:
1. ip a 查看網卡是否存在
2.2 模塊加載
vi /etc/modprobe.d/dist.conf
alias char-major-89-* i2-dev后添加下面一行信息 #一般為最后一行
alias bond0 bonding #加載bond0驅動
2.3 創建ifcfg-bond0配置文件
cd /etc/sysconfig/network-scripts/
vi ifcfg-bond0
DEVICE=bond0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=10.0.0.110
PREFIX=24
GATEWAY=10.0.0.254
DNS=114.114.114.114
BONDING_OPTS="mode=1 miimon=100 primary=eth0"
#主備模式,每隔100ms檢測一次網卡狀態,首選eth0網卡
2.4 修改ifcfg-eth0配置文件
vi ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
MASTER=bond0
SLAVE=yes
2.5 修改ifcfg-eth1配置文件
vi ifcfg-eth1
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
MASTER=bond0
SLAVE=yes
2.6 停止NetworkManager管理網絡服務
service NetworkManager stop
chkconfig NetworkManager off
modprobe bonding
service network restart
2.7 驗證網卡是否綁定成功
1. ip a
如果成功,則bond0、eth0以及eth1的MAC地址是一樣的
2. cat /proc/net/bonding bond0
如果成功,則顯示bond0、eth0以及eth1處于up狀態
3. centos7中創建team0實例
(ps:這里我將centos7中的網卡名稱改為了傳統的命名方式,目的是為了便于管理。修改方式我將會另一篇博客寫出)
3.1 添加網卡并且驗證網卡
nmcli device show
nmcli connetcion show
3.2 創建ifcfg-team0配置文件
nmcli connection add type team ifname team0 con-name team0 config '{"runner":{"name":"activeback"}}'
3.3 為team0配置IP地址
nmcli connection modify team0 ipv4.addresses 10.0.0.110/24 ipv4.gateway 10.0.0.254 ipv4.method manual
3.4 重新加載網卡配置,使配置文件實效
nmcli connection reload
systemctl restart network
3.5 創建ifcfg-team0-eth0配置文件
nmcli connection add type team-slave ifname eth0 con-name team0-eth0 master team0
3.6 創建ifcfg-team0-eth1配置文件
nmcli connection add type team-slave ifname eth1 con-name team0-eth1 master team0
3.7 啟動slave設備
nmcli connection up team0-eth0
nmcli connection up -team0-eth1
nmcli connection up team0
3.8 查看設備是否啟動
1.nmcli connetcion show
查看team0 team-eth0 team0-eth1是否激活
2.ip a
查看team0 eth0 eth1 網卡的MAC地址是否一致
3.teamdctl team0 state
查看team0 eth0 eth1 狀態是否up(激活)
以下兩圖是兩種檢測team是否配置成功的方法。另外補充,通過nmcli方式配置將會直接生成配置文件,很方便很強大。
作者:michael
2017年5月7日
原創文章,作者:PowerMichael,如若轉載,請注明出處:http://www.www58058.com/74886