本文描述了微軟NLB(Network Load Balancing)服務器直連S交換機做網關的一種應用場景。若干臺服務器配置NLB特性後,組成一個羣集,該羣集虛擬出一個公共IP和本地管理MAC地址,羣集通過該IP/MAC和做網關的S交換機直連互通,交換機通過三層轉發將網絡側的流量同時轉發一份給NLB羣集中每一臺服務器,然後NLB羣集服務器內部通過特定算法實現負載分擔,決定由哪一臺服務器向網絡側迴應報文。
背景知識
NLB服務器羣集中的服務器使用一個共同的IP地址(NLB羣集IP地址)和一個共同的MAC地址(NLB羣集MAC地址)。交換機作爲接入網關連接NLB服務器羣集時,要求交換機將發往NLB羣集IP地址的數據報文發往NLB服務器羣集中的每臺服務器。
NLB服務器可以工作在NLB單播模式(羣集中各服務器採用的羣集MAC地址以02BF開頭),NLB組播模式(羣集中各服務器採用的羣集MAC地址以03BF開頭)等。
對接分析
l NLB服務器工作在單播模式時,S設備上ARP表中NLB羣集IP地址的ARP表項只能學習到一個出接口。因此設備只能將發往服務器羣集IP地址的數據報文發送給羣集中一臺服務器,而無法發送給服務器羣集中的所有服務器。
l NLB服務器工作在組播模式時,S設備收到ARP應答報文後,由於協議源MAC地址爲組播MAC地址,設備不會進行ARP學習。若通過靜態ARP方式將NLB羣集IP地址和NLB羣集共同的MAC地址進行綁定,也只能指定一個出接口。因此設備只能將發往服務器羣集IP地址的數據報文發送給羣集中一臺服務器,而無法發送給服務器羣集中的所有服務器。
如上分析,必須解決只能發送一臺服務器的問題,S交換機和NLB服務器才能實現對接。
對接方案
多端口ARP方案:多端口ARP可以實現將發往服務器羣集的報文同時發送給羣集中所有的服務器。多端口ARP主要通過靜態ARP表項將NLB羣集IP地址與NLB服務器羣集使用的共同MAC地址進行綁定,並且通過多端口MAC表項將NLB服務器羣集使用的共同MAC地址與設備上與服務器相連的出接口進行綁定。這樣發往服務器羣集IP地址的數據報文會從設備上所有與服務器相連的出接口發送出去。 這種方案適用於S交換機V200R003C00及以後版本。
對於V200R003之前的版本,可以通過如下兩種方式實現對接:
l 在交換機與NLB服務器之間增加二層交換機(當NLB服務器工作在組播模式時,需要在交換機上使能ARP動態學習組播MAC的功能或者配置靜態ARP表項)。這種方法需要多增加一臺二層交換機,適用於設備資源充足的情況。
l 物理鏈路環回方法。這種方法與增加二層交換機的方法相比,配置較複雜。
對接案例—多端口ARP方案
支持型態
V200R003C00版本以下款型支持多端口ARP:S5700HI、S5710HI、S5710EI、S6700EI、S7700、S9700
其中:框式設備的SA單板不支持多端口ARP。
組網需求
如圖所示,Switch通過屬於VLAN10的三個接口GE1/0/1、GE1/0/2和GE1/0/3分別連接三臺NLB服務器。NLB服務器羣集工作在組播模式。NLB服務器羣集中每臺服務器除了各自擁有一個IP地址和MAC地址外,還共同使用一個羣集IP地址和羣集MAC地址。NLB服務器的羣集IP地址爲10.128.246.252/24,對應的羣集MAC地址爲03bf-0a80-f6fc。Switch與客戶端之間路由可達。
當客戶端訪問NLB服務器羣集IP地址時,Switch能夠將發往NLB服務器羣集IP地址的報文發送給NLB服務器羣集中的每臺服務器。
配置思路
多端口ARP的配置思路如下:
1. 配置接口IP地址,並將接口加入相應VLAN。
2. 配置對應多出接口的MAC地址表項,並配置靜態ARP表項,實現Switch將發往NLB羣集IP地址的報文發送給NLB羣集內三臺服務器。
操作步驟
1. 創建VLAN,並將接口加入到VLAN中
# 在Switch上創建VLAN,並將接口加入到VLAN中。
<Quidway> system-view
[Quidway] sysname Switch
[Switch] interface gigabitethernet 1/0/1
[Switch-GigabitEthernet1/0/1] port link-type access //連接服務器的接口以ACCESS方式加入VLAN
[Switch-GigabitEthernet1/0/1] quit
[Switch] interface gigabitethernet 1/0/2
[Switch-GigabitEthernet1/0/2] port link-type access //連接服務器的接口以ACCESS方式加入VLAN
[Switch-GigabitEthernet1/0/2] quit
[Switch] interface gigabitethernet 1/0/3
[Switch-GigabitEthernet1/0/3] port link-type access //連接服務器的接口以ACCESS方式加入VLAN
[Switch-GigabitEthernet1/0/3] quit
[Switch] vlan 10
[Switch-vlan10] port gigabitethernet 1/0/1 to 1/0/3 //配置連接服務器的三個接口的缺省VLAN並加入該VLAN
[Switch-vlan10] quit
2. 在Switch上創建VLANIF接口,並配置IP地址
[Switch] interface vlanif 10
[Switch-Vlanif10] ip address 10.128.246.251 24 //配置VLANIF10的IP地址,由於是直連,要和NLB羣集的虛擬IP在同一網段
[Switch-Vlanif10] quit
3. 在Switch上配置對應多出接口的MAC地址表項
[Switch] mac-address multiport 03bf-0a80-f6fc interface gigabitethernet 1/0/1 to gigabitethernet 1/0/3 vlan 10 //配置多個交換機出接口的MAC地址表項
4. 在Switch上配置靜態ARP表項
[Switch] arp static 10.128.246.252 03bf-0a80-f6fc //配置NLB羣集的ARP表項,此處必須配置短表項。
[Switch] quit
5. 驗證配置結果
# 在Switch上使用display mac-address multiport vlan 10命令,查看已配置的對應多出接口的MAC地址表項信息。
<Switch> display mac-address multiport vlan 10
--------------------------------------------------------------------------------
MAC Address VLANID Out-Interface Status
--------------------------------------------------------------------------------
03bf-0a80-f6fc 10 GigabitEthernet1/0/1 Active
GigabitEthernet1/0/2 Active
GigabitEthernet1/0/3 Active
3 port(s)
--------------------------------------------------------------------------------
Total Group(s) : 1
# 在Switch上使用display arp static命令,查看靜態ARP表項信息。
<Switch> display arp static
IP ADDRESS MAC ADDRESS EXPIRE(M) TYPE INTERFACE ×××-INSTANCE
VLAN/CEVLAN
------------------------------------------------------------------------------
10.128.246.252 03bf-0a80-f6fc S-- Multi-port:3
------------------------------------------------------------------------------
Total:1 Dynamic:0 Static:1 Interface:0
配置注意事項
1. 接口加入的VLAN不能是MAC VLAN、Super-VLAN、專線VLAN、X1E系列單板上的MUX VLAN、SEP(Smart Ethernet Protection)和RRPP(Rapid Ring Protection Protocol)的控制VLAN。
2. 當出接口爲Eth-Trunk時,需要通過執行命令unknown-unicast load-balance enhanced,將接口配置爲非已知單播負載分擔方式,否則配置不生效。