IRF+LACP+bond0網絡負載均衡配置

IRF(智能彈性架構)技術+LACP 鏈路聚合控制協議+Bond0(多網卡綁定技術)相結合起來,由多條物理鏈路匯聚成一條邏輯總鏈路,這樣提高鏈路的帶寬、提高了鏈路的可靠性、易用性,通過匯聚後交換機的2鏈路接口和Linux服務器的2網卡接口會同時收發數據,達到了一種網絡負載均衡的效果,下面就一一介紹相關技術專業術語及配置步驟。

拓撲圖如下:
IRF+LACP+bond0網絡負載均衡配置

一、IRF(智能彈性架構)技術
1.1 簡介
IRF(Intelligent Resilient Framework,智能彈性架構)是 H3C自主研發的軟件虛擬化技術。它的
核心思想是將多臺設備通過 IRF物理端口連接在一起,進行必要的配置後,虛擬化成一臺“分佈式
設備”。使用這種虛擬化技術可以實現多臺設備的協同工作、統一管理和不間斷維護。
爲了便於描述,這個“虛擬設備”也稱爲 IRF。所以,本文中的 IRF有兩層意思,一個是指 IRF技術,一個是指 IRF設備。

1.2 IRF的優點
IRF主要具有以下優點:
 簡化管理。IRF 形成之後,用戶通過任意成員設備的任意端口都可以登錄 IRF 系統, 對 IRF內所有成員設備進行統一管理。
 高可靠性。IRF的高可靠性體現在多個方面,例如:IRF由多臺成員設備組成,Master設備負
責 IRF的運行、管理和維護,Slave設備在作爲備份的同時也可以處理業務。一旦 Master設備故障,系統會迅速自動選舉新的 Master,以保證業務不中斷,從而實現了設備的 1:N備份;此外,成員設備之間的 IRF鏈路支持聚合功能,IRF和上、下層設備之間的物理鏈路也支持聚合功能,多條鏈路之間可以互爲備份也可以進行負載分擔,從而進一步提高了 IRF的可靠性。
 強大的網絡擴展能力。通過增加成員設備,可以輕鬆自如的擴展 IRF 的端口數、帶寬。因爲各成員設備都有 CPU,能夠獨立處理協議報文、進行報文轉發,所以 IRF還能夠輕鬆自如的擴展處理能力

1.3 IRF 配置
組網拓撲圖如下(2個CX4萬兆模塊互聯):
IRF+LACP+bond0網絡負載均衡配置

IRF前注意事項:
1、先規劃好IRF 的邏輯ID號,每臺都是唯一的,按照數字1,2,3數字排下去。
2、IRF前先不要連接堆疊光纜,在配置的時候也要把堆疊端口給關閉
3、IRF配置命令配置完成後保存配置文件,然後給交換機斷電插上堆疊電纜重新啓動交換機就可以了。

1、查看2臺H3C 5500的交換機IOS版本,版本一致才能配置IRF(智能彈性架構)

[H3C]dis version
H3C Comware Platform Software
Comware Software, Version 5.20, Release 2210
Copyright (c) 2004-2011 Hangzhou H3C Tech. Co., Ltd. All rights reserved.
H3C S5500-28C-EI uptime is 0 week, 0 day, 0 hour, 3 minutes

2、開始2臺H3C 5500交換機單獨配置IRF

==SW1==

[H3C]irf member 1 renumber 1 //更改IRF 邏輯ID

[H3C]interface Ten-GigabitEthernet 1/1/1 //進入萬兆端口
[H3C-Ten-GigabitEthernet2/2/1]shut //關閉該端口

[H3C]interface Ten-GigabitEthernet 1/1/2
[H3C-Ten-GigabitEthernet2/2/2]shut

[H3C-5500-1#]irf-port 1/1 //進入IRF邏輯組
[]port group interface Ten-GigabitEthernet1/1/1 mode normal //把該端口加入IRF邏輯組

[]irf-port 1/2
[]port group interface Ten-GigabitEthernet1/1/2 mode normal //把該端口加入IRF邏輯組

[H3C]interface Ten-GigabitEthernet 1/1/1
[H3C-Ten-GigabitEthernet2/2/1]undo shut //啓動該端口

[H3C]interface Ten-GigabitEthernet 1/1/2
[H3C-Ten-GigabitEthernet2/2/2]undo shut //啓動該端口

[h3c]quit
[h3c]save //保存配置

SW2的配置與SW1的配置一樣,注意IRF ID不能一樣。

==SW2==

[H3C-5500]irf member 1 renumber 2

[H3C]interface Ten-GigabitEthernet 1/1/1
[H3C-Ten-GigabitEthernet2/2/1]shut

[H3C]interface Ten-GigabitEthernet 1/1/2
[H3C-Ten-GigabitEthernet2/2/2]shut

[H3C]interface Ten-GigabitEthernet 2/2/1
[H3C-Ten-GigabitEthernet2/2/1]shut

[H3C]interface Ten-GigabitEthernet 2/2/2
[H3C-Ten-GigabitEthernet2/2/2]shut

[h3c]irf-port 2/1
port group interface Ten-GigabitEthernet2/2/1 mode normal

[h3c]irf-port 2/2
port group interface Ten-GigabitEthernet2/2/2 mode normal

[H3C]interface Ten-GigabitEthernet 1/1/1
[H3C-Ten-GigabitEthernet2/2/1]undo shut

[H3C]interface Ten-GigabitEthernet 1/1/2
[H3C-Ten-GigabitEthernet2/2/2]undo shut

配置完保存,斷電交換機—>插上堆疊線纜—>重啓交換機 OK

3、查看IRF配置是否成功(看到如下字樣就是代表這2臺堆疊成功)

[H3C-5500-IRF]dis irf configuration
MemberID NewID IRF-Port1 IRF-Port2
1 1 1 2

*2 2 3 4

indicates the device is the master.
indicates the device through which the user logs in.
[H3C-5500-IRF]dis irf topology

Topology Info

         IRF-Port1                  IRF-Port2

1
2
Switch Link member neighbor Link member neighbor Belong To
*2 UP 3 1 UP 4 1 3ce5-a64f-033c

1 UP 1 2 UP 2 2 3ce5-a64f-033c

indicates the device is the master.
indicates the device through which the user logs in.
二、LACP鏈路聚合簡介

2.1 鏈路聚合的作用
鏈路聚合是將多個物理以太網端口聚合在一起形成一個邏輯上的聚合組,使用鏈路
聚合服務的上層實體把同一聚合組內的多條物理鏈路視爲一條邏輯鏈路。
鏈路聚合可以實現流量在聚合組中各個成員端口之間進行分擔,以增加帶寬。同時,
同一聚合組的各個成員端口之間彼此動態備份,提高了連接可靠性。

2.2 LACP協議簡介
LACP(Link Aggregation Control Protocol,鏈路聚合控制協議)是一種基於
IEEE802.3ad 標準的協議。LACP 協議通過 LACPDU(Link Aggregation Control
Protocol Data Unit,鏈路聚合控制協議數據單元)與對端交互信息。
使能某端口的 LACP 協議後,該端口將通過發送 LACPDU 向對端通告自己的系統
LACP協議優先級、系統MAC、端口的 LACP協議優先級、端口號和操作 Key。對
端接收到 LACPDU後,將其中的信息與其它端口所收到的信息進行比較,以選擇能
夠處於 Selected狀態的端口,從而雙方可以對端口處於 Selected狀態達成一致。
操作 Key是在鏈路聚合時,聚合控制根據端口的配置(即速率、雙工模式、up/down
狀態、基本配置等信息)自動生成的一個配置組合。在聚合組中,處於 Selected狀
態的端口有相同的操作 Key。

2.3 LACP鏈路聚合配置

拓撲圖以真實環境爲例:
IRF+LACP+bond0網絡負載均衡配置

做LACP鏈路聚合注意幾個事項:
1、保證2端(服務器<–>交換機)端口速率工作模式保持一致。

2、配置H3C LACP鏈路聚合的時候端口不能做其他屬性的配置(加入VLAN/MAC地址綁定等操作)
(服務器(Windows OR linux)與交換機做鏈路聚合最好使用動態LACP )

3、做鏈路聚合用鏈路聚合組分發端口屬性配置(端口必須使用Hybrid屬性,使用untagged)

4、注意先做動態LACP鏈路聚合後,在給LACP組做Hybrid等配置。

5500與Linux服務器做LACP鏈路聚合配置:

1、先查看交換機上的2個端口速率和工作模式是否一致

[H3C-5500-IRF]dis int g1/0/2
GigabitEthernet1/0/2 current state: UP
IP Packet Frame Type: PKTFMT_ETHNT_2, Hardware Address: 3ce5-a64f-0c7e
Description: GigabitEthernet1/0/2 Interface
Loopback is not set
Media type is twisted pair
Port hardware type is 1000_BASE_T
1000Mbps-speed mode, full-duplex mode //這裏表示1000速率全雙工

[H3C-5500-IRF]dis int g2/0/2
GigabitEthernet2/0/2 current state: UP
IP Packet Frame Type: PKTFMT_ETHNT_2, Hardware Address: 3ce5-a64f-033e
Description: GigabitEthernet2/0/2 Interface
Loopback is not set
Media type is twisted pair
Port hardware type is 1000_BASE_T
1000Mbps-speed mode, full-duplex mode //這裏表示1000速率全雙工

2、創建好聚合組1,開啓動態LACP模式。
[H3C-5500-IRF]interface Bridge-Aggregation 1 //創建鏈路聚合組1
[H3C-5500-IRF-Bridge-Aggregation1]link-aggregation mode dynamic //改成動態協商模式

3、把要鏈路聚合的端口加入到聚合組1
[H3C-5500-IRF]int g1/0/2 //進入G1/0/2口
[H3C-5500-IRF-GigabitEthernet1/0/2]port link-aggregation group 1 //把該端口加入匯聚組1

[H3C-5500-IRF]int g2/0/2 //進入G2/0/2口
[H3C-5500-IRF-GigabitEthernet2/0/2]port link-aggregation group 1 //把該端口加入匯聚組1

4、設置聚合組分發到端口的屬性配置
[H3C-5500-IRF]interface Bridge-Aggregation 1 //創建鏈路聚合組1
[H3C-5500-IRF-Bridge-Aggregation1]port link-type hybrid //改成Hybrid端口屬性
[H3C-5500-IRF-Bridge-Aggregation1]port hybrid pvid vlan 10 /
/把該端口PVID屬性改成VLAN10
[H3C-5500-IRF-Bridge-Aggregation1]port hybrid vlan 10 untagged
//允許VLAN10的數據不打標籤通過

5、查看聚合成功後的效果:
[H3C-5500-IRF]dis link-aggregation verbose

Loadsharing Type: Shar – Loadsharing, NonS – Non-Loadsharing
Port Status: S – Selected, U – Unselected
Flags: A – LACP_Activity, B – LACP_Timeout, C – Aggregation,
D – Synchronization, E – Collecting, F – Distributing,
G – Defaulted, H – Expired

Aggregation Interface: Bridge-Aggregation1
Aggregation Mode: Dynamic
Loadsharing Type: Shar
System ID: 0x8000, 3ce5-a64f-0327
Local:

Port Status Priority Oper-Key Flag

GE1/0/2 S 32768 2 {ACDEF}
GE2/0/2 S 32768 2 {ACDEF}
Remote:

Actor Partner Priority Oper-Key SystemID Flag

GE1/0/2 1 255 17 0xffff, 78e7-d17f-c570 {ACDEF}
GE2/0/2 2 255 17 0xffff, 78e7-d17f-c570 {ACDEF}

看到Status 有s s 就表示端口匯聚成功了。

三、Linux雙網卡綁定及網絡鏈路聚合技術
Linux雙網卡綁定實現就是使用兩塊網卡虛擬成爲一塊網卡,這個聚合起來的設備看起來是一個單獨的以太網接口設備,通俗點講就是兩塊網卡具有相同的IP地址而並行鏈接聚合成一個邏輯鏈路工作。其實這項技術在sun和Cisico中早已存在,被稱爲Trunking和Etherchannel技術,在Linux的2.4.X的內核中也採用了這種技術,被稱爲bonding。
Bonding技術的最早應用是在集羣–beowulf上,爲了提高集羣節點間的數據傳輸而設計的。下面我們討論bonding的原理,什麼是bonding需要從網卡的混雜(promisc)模式說起。我們知道,在正常情況下,網卡只接收目的硬件地址(MAC Address)是自身Mac的以太網幀,對於別的數據幀都濾掉,以減輕驅動程序的負擔。但是網卡也支持另外一種被稱爲混雜模式,可以接收網絡上所有的幀,比如說tcpdump,就是運行在這個模式下。bonding也運行在這個模式下,而且修改了驅動程序中的mac地址,將兩塊網卡的Mac地址改成相同,可以接收特定mac的數據幀。然後相應的數據幀送給bond驅動程序處理。
服務器基本上都是有兩個網卡

接下來是創建步驟
1.系統->管理->網絡,打開網絡配置工具
2.刪除網絡配置工具上顯示的所有配置文件
3.重啓計算機
4.打開網絡配置工具,將所有的有效網卡都加到網絡配置工具中來,
5.逐個取消加入網卡設備的“當計算機啓動時激活”。
6.打開shell命令框,輸入ethtool -p eth0等命令,檢測你所插網線
7.根據對應的網口按如下修改/etc/sysconfig/network-script/下的腳本(只是修改,請大家不要將原有的配置刪除)。

cat /boot/config-2.6.18-194.e15PAE |grep –i bonding

如果返回CONFIG_BONDING=m 就表示內核支持,否則需要編譯內核使它支持bondding

1.新建/etc/sysconfig/network-scripts/ifcfg-bond0文件(可以把其它網卡的文件複製一份再改名)
DEVICE=bond0 //指定bond0接口名稱
ONBOOT=yes //是否隨服務啓動(yes or no)
BOOTPROTO=static //啓動手動靜態地址(static or dhcp)
IPADDR=192.168.0.58 /指定虛擬網卡的IP地址
NETMASK=255.255.255.0 //指定虛擬網卡的子網掩碼
GATEWAY=192.168.10.252 //指定虛擬網卡的網關地址
USERCTL=no
BONDING_OPTS=”miimon=80 mode=4 xmit_hash_policy=layer2+3”
//最後一條是指定bond0虛擬網卡的支持LACP協議工作模式(支持網絡上二層、三層的負載均衡,如果是做一般0或1模式的負載均衡不需要加上這條)

2.更改/etc/sysconfig/network-scripts/ifcfg-eth0網卡屬性
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0 //這條是和bond0虛擬網卡綁定
USERCTL=no
SLAVE=yes
ETHTOOL_OPTS=”autoneg off speed 1000 duplex full”
//最後一條是強制指定網卡的工作速率和模式,可選配項

3.更改/etc/sysconfig/network-scripts/ifcfg-eth1網卡的屬性
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0 //這條是和bond0虛擬網卡綁定
USERCTL=no
SLAVE=yes
ETHTOOL_OPTS=”autoneg off speed 1000 duplex full”
//最後一條是強制指定網卡的工作速率和模式,可選配項

4.編輯/etc/modprobe.conf文件,加入以下內容
alias bond0 bonding //加載網卡驅動模塊,必須添加的
options bond0 miimon=100 mode=1 //如果是普通網卡聚合就添加這條,如果是LACP這條就不用添加了)

5.加入/etc/rc.d/rc.local啓動項
ifenslave bond0 eth0 eth1 //加載到開機啓動項

6.啓動網卡
ifconfig bond0 192.168.0.23 up //啓動該虛擬網卡
ifenslave bond0 eth0 eth1 //啓動虛擬網卡
或者直接service network restart //這條命令同上,可以直接啓動網絡配置。

7.重啓下Linux (#reboot ) 重新啓動

說明:miimon是用來進行鏈路監測的。 比如:miimon=100,那麼系統每100ms監測一次鏈路連接狀態,如果
有一條線路不通就轉入另一條線路;mode的值表示工作模式,他共有0,1,2,3,4五種模式,常用的爲0,1兩種,4是特殊使用(支持LACP協議)。

mode=0表示load balancing (round-robin)爲負載均衡方式,兩塊網卡都工作。
mode=1表示fault-tolerance (active-backup)提供冗餘功能,工作方式是主備的工作方式,也就
是說默認情況下只有一塊網卡工作,另一塊做備份.
mode=4 表示支持鏈路LACP(鏈路聚合控制協議),網卡工作方式和交換機端口都匯聚成一個邏輯鏈路。

8、查看網卡聚合成功後的效果:
[root@localhost ~]# more /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.4.0 (October 7, 2008)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2+3 (2)
MII Status: up
MII Polling Interval (ms): 80
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: slow
Active Aggregator Info:
Aggregator ID: 9
Number of ports: 2
Actor Key: 17
Partner Key: 2
Partner Mac Address: 3c:e5:a6:4f:03:27

Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 78:e7:d1:7f:c5:70
Aggregator ID: 9

Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 40:16:9f:f3:63:5c
Aggregator ID: 9

看到上面標紅色的字樣就表示協商聚合成功了(如果聚合不成功在Partner Mac Address:00:00:00:00:00:00)這裏就沒MAC地址,請檢查交換機或服務器配置。

做完上面的配置後,可以去測試了:
在Linux服務器上可以用nload 工具進行觀察效果;很清晰!!!
在交換機這端測試,先開啓交換機的SNMP協議,在XP或WIN7系統用PRTG Traffic Grapher軟件或者其他網絡監控軟件。

Nload監控網絡流量界面
IRF+LACP+bond0網絡負載均衡配置
IRF+LACP+bond0網絡負載均衡配置

PRTG Traffic Grapher 流量監控界面
IRF+LACP+bond0網絡負載均衡配置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章