CentOS6.5服务器端口捆绑
1 捆綁介紹
網(wǎng)卡,又稱網(wǎng)絡(luò)適配器。在網(wǎng)絡(luò)中,如果沒(méi)有網(wǎng)卡,那么這臺(tái)設(shè)備將得不到服務(wù)器所提供的任何服務(wù)。當(dāng)然,如果服務(wù)器沒(méi)有網(wǎng)卡,那也就稱不上是服務(wù)器了。
??? 網(wǎng)卡捆綁,也叫網(wǎng)卡綁定,就是將幾塊網(wǎng)卡虛擬成為一個(gè)網(wǎng)卡,這個(gè)聚合起來(lái)的設(shè)備看起來(lái)是一個(gè)單獨(dú)的網(wǎng)卡,幾塊網(wǎng)卡具有相同的IP地址而進(jìn)行鏈路聚合成一個(gè)邏輯鏈路工作,以提供負(fù)載均衡或者冗余,增加帶寬的作用,當(dāng)一塊網(wǎng)卡壞掉時(shí),不會(huì)影響業(yè)務(wù)。2 網(wǎng)卡捆綁
2.1 檢查系統(tǒng)
在做捆綁之前,首先要看Linux是否支持bonding,CentOS 6.5已經(jīng)默認(rèn)支持了。
2.2 捆綁步驟
(1)編輯/etc/sysconfig/network-scripts/ifcfg-bond0,配置虛擬網(wǎng)絡(luò)接口IP地址
DEVICE=bond0 ONBOOT=yes BOOTPROTO=static IPADDR=1.2.6.201 BROADCAST=1.255.255.255 NETMASK=255.0.0.0 NETWORK=1.0.0.0 GATEWAY=1.0.0.254 USERCTL=no TYPE=Ethernet ARPCHECK=no 注意:建議不要指定MAC地址(2)編輯/etc/sysconfig/network-scripts/ifcfg-eth4、/etc/sysconfig/network-scripts/ifcfg-eth5,這是要綁定的網(wǎng)卡 DEVICE=eth4 HWADDR=8C:DC:D4:00:92:08 TYPE=Ethernet UUID=05069419-2b97-456b-98c3-db82df224fcc ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=none USERCTL=no MASTER=bond0 SLAVE=yes
(3)(可選)編輯/etc/sysconfig/network-scripts/ifcfg-eth0,配置好之后重啟網(wǎng)絡(luò)會(huì)出現(xiàn)Determining if ipaddress 1.2.6.101 is already in use for device eth0…,但ip確實(shí)沒(méi)有問(wèn)題,可以訪問(wèn),沒(méi)有地址沖突,這是Linux網(wǎng)卡配置arp檢查導(dǎo)致的,把這個(gè)關(guān)閉即可
添加ARPCHECK=no
(4)編輯/etc/modprobe.d/dist.conf,配置綁定類型
添加alias bond0bonding
options bond0 miimon=100 mode=0
說(shuō)明:miimon=100是指多久時(shí)間要檢查網(wǎng)絡(luò)一次,單位是ms(毫秒),這邊是100ms
mode共有七種(0~6)
1)mode=0,即:(balance-rr))Round-robin policy(平衡輪詢環(huán)策略)。特點(diǎn):傳輸數(shù)據(jù)包順序是依次傳輸(即:第1個(gè)包走eth0,下一個(gè)包就走eth1....一直循環(huán)下去,直到最后一個(gè)傳輸完畢), 此模式提供負(fù)載平衡和容錯(cuò)能力。
2)mode=1,即: (active-backup) Active-backup policy(主-備份策略)。特點(diǎn):只有一個(gè)設(shè)備處于活動(dòng)狀態(tài),當(dāng)一個(gè)宕掉另一個(gè)馬上由備份轉(zhuǎn)換為主設(shè)備。mac地址是外部可見(jiàn)得,從外面看來(lái),bond的MAC地址是唯一的,以避免switch(交換機(jī))發(fā)生混亂。此模式只提供了容錯(cuò)能力。
3)mode=2,即:(balance-xor) XOR policy(平衡策略)。特點(diǎn):基于指定的傳輸HASH策略傳輸數(shù)據(jù)包。
4)mode=3,即:broadcast(廣播策略)。特點(diǎn):在每個(gè)slave接口上傳輸每個(gè)數(shù)據(jù)包,此模式提供了容錯(cuò)能力
5)mode=4,即:(802.3ad) IEEE 802.3ad Dynamic linkaggregation(IEEE 802.3ad 動(dòng)態(tài)鏈接聚合)。第五種模式:mod=4,即:(802.3ad) IEEE 802.3ad Dynamic linkaggregation(IEEE 802.3ad 動(dòng)態(tài)鏈接聚合)。特點(diǎn):創(chuàng)建一個(gè)聚合組,它們共享同樣的速率和雙工設(shè)定。根據(jù)802.3ad規(guī)范將多個(gè)slave工作在同一個(gè)激活的聚合體下。
? ? ? ? 必要條件:
條件1:ethtool支持獲取每個(gè)slave的速率和雙工設(shè)定
條件2:switch(交換機(jī))支持IEEE 802.3ad Dynamic linkaggregation
條件3:大多數(shù)switch(交換機(jī))需要經(jīng)過(guò)特定配置才能支持802.3ad模式
6)mode=5,即:(balance-tlb)Adaptive transmit load balancing(適配器傳輸負(fù)載均衡)。特點(diǎn):不需要任何特別的switch(交換機(jī))支持的通道bonding。在每個(gè)slave上根據(jù)當(dāng)前的負(fù)載(根據(jù)速度計(jì)算)分配外出流量。如果正在接受數(shù)據(jù)的slave出故障了,另一個(gè)slave接管失敗的slave的MAC地址。
??? ? 必要條件:ethtool支持獲取每個(gè)slave的速率
7)mode=6,即:(balance-alb) Adaptive load balancing(適配器適應(yīng)性負(fù)載均衡)。特點(diǎn):該模式包含了balance-tlb模式,同時(shí)加上針對(duì)IPV4流量的接收負(fù)載均衡(receive load balance, rlb),而且不需要任何switch(交換機(jī))的支持。接收負(fù)載均衡是通過(guò)ARP協(xié)商實(shí)現(xiàn)的。bonding驅(qū)動(dòng)截獲本機(jī)發(fā)送的ARP應(yīng)答,并把源硬件地址改寫為bond中某個(gè)slave的唯一硬件地址,從而使得不同的對(duì)端使用不同的硬件地址進(jìn)行通信。
必要條件:
條件1:ethtool支持獲取每個(gè)slave的速率
條件2:底層驅(qū)動(dòng)支持設(shè)置某個(gè)設(shè)備的硬件地址,從而使得總是有個(gè)slave(curr_active_slave)使用bond的硬件地址,同時(shí)保證每個(gè)bond 中的slave都有一個(gè)唯一的硬件地址。
(5)編輯/etc/rc.d/rc.local,系統(tǒng)啟動(dòng)時(shí)將虛擬網(wǎng)卡和捆綁的物理網(wǎng)卡綁定
添加ifenslave bond0 eth4 eth5
配置完成,重啟服務(wù)器,就可以看到一張bond0的新網(wǎng)卡。
2.3 驗(yàn)證
[root@node1 ~]# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)Bonding Mode: load balancing (round-robin) MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0Slave Interface: eth4 MII Status: up Speed: 10000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 64:51:06:f0:27:e0 Slave queue ID: 0Slave Interface: eth5 MII Status: up Speed: 10000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 64:51:06:f0:27:e4 Slave queue ID: 0 通過(guò)驗(yàn)證查看,可以看到綁定后的虛擬網(wǎng)卡bond0,說(shuō)明配置成功。3 注意事項(xiàng)
如果在RHEL6下執(zhí)行:
servicenetwork restart時(shí),報(bào)如下錯(cuò)誤: Bringing up interface bond0: Error: Connection activation failed: Device not managed by NetworkManager此錯(cuò)誤是因?yàn)橄到y(tǒng)中默認(rèn)由NetworkManager服務(wù)管理網(wǎng)絡(luò),可以將其停止:[root@Hostname ~]#chkconfig NetworkManager off [root@Hostname ~]#service NetworkManager stop [root@Hostname ~]#chkconfig network on [root@Hostname ~]#service network restart 注意NetworkManager區(qū)分大小寫。
附shell腳本
read -p "input your bond interface(eth0 eth1): " eth echo $eth > /mnt/eth.txt read -p "input your IPADDR(1.2.6.200): " IPADDR read -p "input your BROADCAST(1.255.255.255): " BROADCAST read -p "input your NETMASK(255.0.0.0): " NETMASK read -p "input your NETWORK(1.0.0.0): " NETWORK read -p "input your GATEWAY(1.0.0.254): " GATEWAY read -p "input your mode(0-6): " modeservice NetworkManager stop chkconfig NetworkManager offfor i in $(cat /mnt/eth.txt)doecho "USERCTL=no" >> /etc/sysconfig/network-scripts/ifcfg-$iecho "MASTER=bond0" >> /etc/sysconfig/network-scripts/ifcfg-$iecho "SLAVE=yes" >> /etc/sysconfig/network-scripts/ifcfg-$idone rm -rf /mnt/eth.txtcd /etc/sysconfig/network-scripts rm -rf ifcfg-bond0 touch ifcfg-bond0 echo "DEVICE=bond0" > ifcfg-bond0 echo "ONBOOT=yes" >> ifcfg-bond0 echo "BOOTPROTO=static" >> ifcfg-bond0 echo "IPADDR=$IPADDR" >> ifcfg-bond0 echo "BROADCAST=$BROADCAST" >> ifcfg-bond0 echo "NETMASK=$NETMASK" >> ifcfg-bond0 echo "NETWORK=$NETWORK" >> ifcfg-bond0 echo "GATEWAY=$GATEWAY" >> ifcfg-bond0 echo "USERCTL=no" >> ifcfg-bond0 echo "TYPE=Ethernet" >> ifcfg-bond0 echo "ARPCHECK=no" >> ifcfg-bond0echo "alias bond0 bonding" >> /etc/modprobe.d/dist.conf echo "options bond0 miimon=100 mode=$mode" >> /etc/modprobe.d/dist.conf echo "ifenslave bond0 $eth" >> /etc/rc.d/rc.localchkconfig network on service network restart總結(jié)
以上是生活随笔為你收集整理的CentOS6.5服务器端口捆绑的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 使用Python给罗永浩生成卡通头像
- 下一篇: 李一男旗下自游家汽车无法交付车辆 旅程还