下面由centos教學欄位來介紹CentOS怎麼設定bond,希望對需要的朋友有幫助!
網卡綁定也稱為"網卡捆綁",就是使用多塊實體網卡虛擬成為一塊網卡,以提供負載平衡或冗餘,增加頻寬的作用。當一個網卡壞掉時,不會影響業務。這個聚合起來的設備看起來是一個單獨的乙太網路介面設備,也就是這幾塊網路卡有相同的IP位址而並行連結聚合成一個邏輯連結工作。這種技術在Cisco等網路公司中,被稱為Trunking和Etherchannel 技術,在Linux的2.4.x的核心中將這種技術稱為bonding。
Bonding的模式總共有7種:
#defineBOND_MODE_ROUNDROBIN 0 (balance-rr模式)网卡的负载均衡模式 #defineBOND_MODE_ACTIVEBACKUP 1 (active-backup模式)网卡的容错模式 #defineBOND_MODE_XOR 2 (balance-xor模式)需要交换机支持 #defineBOND_MODE_BROADCAST 3 (broadcast模式) #defineBOND_MODE_8023AD 4 (IEEE 802.3ad动态链路聚合模式)需要交换机支持 #defineBOND_MODE_TLB 5 自适应传输负载均衡模式 #defineBOND_MODE_ALB 6 网卡虚拟化方式
bonding模組的所有工作模式可以分為兩類:多主型工作模式和主備型工作模式,balance-rr 和broadcast屬於多主型工作模式而active-backup屬於主備型工作模式。 (balance-xor、自適應傳輸負載平衡模式(balance-tlb)和自適應負載平衡模式(balance-alb)也屬於多主型工作模式,IEEE 802.3ad動態連結聚合模式(802.3ad)屬於主備型工作模式。
詳細介紹這7種模式:
輪轉(Round-robin)策略:從頭到尾順序的在每一個slave介面上面發送資料包。本模式提供負載平衡和容錯的能力。
#活動-備份(主備)策略:在綁定中,只有一個slave被啟動。當且僅當活動的slave介面失敗時才會啟動其他slave。為了避免交換器發生混亂此時綁定的MAC位址只有一個外部連接埠上可見。在bongding的2.6.2及其以後的版本中,主備模式下發生一次故障遷移時,bonding將在新啟動的slave上會送一個或多個gratuitous ARP。bonding的主salve介面上以及配置在介面上的所有VLAN介面都會傳送gratuitous ARP,只要這些介面上配置了至少一個IP位址。VLAN介面上傳送的的gratuitous ARP將會附上適當的VLAN id。本模式提供容錯能力,primary option,documented below會影響本模式的行為。
XOR策略:基於所選的傳送hash策略。
本模式提供負載平衡和容錯的能力。
#廣播策略:在所有的slave介面上傳送所有的封包。本模式提供容錯能力。
#IEEE 802.3ad 動態連結聚合。建立共享相同的速率和雙工模式的聚合組。能根據802.3ad規範利用所有的slave來建立聚合鏈路。 Salve的出站選擇取決於傳輸的hash策略,預設策略是簡單的XOR策略,而hash策略可以通xmit_hash_policy選項加以改變。要注意的是:不是所有的傳輸策略都與802.3ad相容,尤其是802.3ad標準的43.2.4章節中關於 packet mis-ordering要求的地方。不同個體的實現往往出現很大的不相容。
先決條件:
1. 每個slave的基本驅動支援Ehtool取得速率和雙工狀態。
2.交換器支援IEEE 802.3ad動態連結聚合。大多數的交換器都需要使用某種設定方式來啟用802.3ad模式。
#自適應傳輸負載平衡:通道綁定不需要特殊的交換器支援。出口流量的分佈取決於目前每個slave的負載(計算相對速度)。進口流量從當前的slave的接收。如果接收salve出錯,其他的slave接管失敗的slave的MAC位址繼續接收。
先決條件:
每個slave的基本驅動支援Ehtool取得速率狀態。
自適應負載平衡:包含balance-tlb(模式5)以及用於IPV4流量的接收負載平衡,且不需要特殊的交換器支援。接收負載平衡透過ARP協商實現。 bonding的驅動攔截本機發出的ARP Replies(ARP回應封包),並且用bond的某一個slave的硬體位址改寫ARP封包的來源位址,使得本伺服器對不同的裝置使用不同的硬體位址。本伺服器建立的連線的接收流量也是負載平衡的。當本機發送ARP Request時,bonding驅動透過ARP封包複製並保存節點的IP資訊。當從其他節點接收到ARP Reply,bonding驅動取得節點的硬體位址並且會回應一個包含綁定好的slave的硬體位址的ARP Reply給所發送的節點。用ARP協商的負載平衡的有一個問題是每次用bond的硬體位址廣播ARP封包,那麼其他節點發送的資料全部集中在一個slave上,處理ARP更新給其他所有節點的時候,每個節點會重新學習硬體位址,導致流量重新分配。當新加入一個slave或一個非啟動的slave重新啟動的時候也會導致接收流量重新分配。接收流量負載是串列(輪轉)的分配在bond的一組速率最高的slave上。
當一個連結重連或一個新的slave加入的時候,bond會重新初始化ARP Replies給所有的客戶端。 updelay參數的值必須等於或大於交換器的forwarding delay,以免ARP Replies被交換器阻塞。
先決條件:
1.每個slave的基本驅動支援Ehtool取得速率狀態。
2. 基本驅動支援當裝置開啟時重新設定硬體位址。也要求每一個slave具有唯一的硬體位址。如果curr_active_slave失敗,它的硬體位址會被新選上的curr_active_slave硬體位址來取代。
#在CentOS設定Bond0和Bond1:#
首先要看linux是否支援bonding,RHEL4已經預設支援了.(大部分發行版都支援)
# modinfo bonding filename: /lib/modules/2.6.18-8.el5/kernel/drivers/net/bonding/bonding.ko author: Thomas Davis, tadavis@lbl.gov and many others de.ion: Ethernet Channel Bonding Driver, v3.0.3 version: 3.0.3 license: GPL srcversion: 2547D22885C2FDF28EF7D98
如果有类似上面的信息输出,说明已经支持了.
1、配置Bond 0 负载均衡
特点:
1. 双网块同时工作,实现负载均衡,某一网卡不正常时,不会引发网络中断.
2. 恢复不能正常工作的网卡时,会引发网络中断几秒,然后双网卡同时工作.
1.编辑虚拟网络接口配置文件,指定网卡IP
cp /etc/sysconfig/network-scripts/ifcfg-lo ifcfg-bond0 vi ifcfg-bond0 DEVICE=bond0 IPADDR=10.10.10.1 NETMASK=255.255.255.0 NETWORK=10.10.10.0 BROADCAST=10.10.10.255 ONBOOT=yes BOOTPROTO=none USERCTL=no GATEWAY=192.168.0.1
2.在bond0上添加网关,是确保默认路由无故障
[root@Linux ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.0 * 255.255.255.0 U 0 0 0 bond0 10.0.0.0 * 255.255.255.0 U 0 0 0 eth0 10.0.0.0 * 255.255.255.0 U 0 0 0 eth1 169.254.0.0 * 255.255.0.0 U 0 0 0 bond0 default 10.0.0.1 0.0.0.0 UG 0 0 0 bond0 vi ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none ONBOOT=yes USERCTL=no MASTER=bond0 SLAVE=yes vi ifcfg-eth1 DEVICE=eth1 BOOTPROTO=none ONBOOT=yes USERCTL=no MASTER=bond0 SLAVE=yes
3 # vi /etc/modprobe.conf
编辑/etc/modprobe.conf 文件,加入如下一行内容,以使系统在启动时加载bonding模块,对外虚拟网络接口设备为 bond0
加入下列两行
alias bond0 bonding options bond0 miimon=100 mode=0
说明:
miimon是用来进行链路监测的。 比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;
mode的值表示工作模式,他共有0,1,2,3四种模式,常用的为0,1两种。
mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作。
mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份.
4 # vi /etc/rc.d/rc.local
加入以下内容
# 仅在热备模式下,eht0 eth1网卡的工作顺序. ifenslave bond0 eth0 eth1
到这时已经配置完毕重新启动机器.
重启会看见以下信息就表示配置成功了
................
Bringing up interface bond0 OK Bringing up interface eth0 OK Bringing up interface eth1 OK
2、配置Bond 1 热备模式
特点:
1. 正在工作的网卡不正常后,切换到备用网卡,此时会中间几秒钟
2. 恢复不正常的网卡时,不会引发网络中断.
其他步骤一致,只在第3步骤,将mode设置成1即可.
alias bond0 bonding options bond0 miimon=100 mode=1
以上是CentOS怎麼設定bond的詳細內容。更多資訊請關注PHP中文網其他相關文章!