S交換機與NLB服務器直連做網關(增加二層交換機方案和單設備物理鏈路環回方案)

(推薦在V200R003之前版本使用增加二層交換機方案和單設備物理鏈路環回方案)

網絡負載均衡NLBNetwork Load Balance)是微軟在Windows Server上開發的多服務器羣集負載均衡特性。對於使用Windows Server的企業來說,實現設備與NLB服務器羣集的對接非常重要。本文描述了S系列交換機與NLB服務器羣集直連做網關的場景分析和配置過程。

背景知識

NLB服務器羣集中,每臺服務器都有自己的IP地址和MAC地址。同時,NLB服務器羣集還有一個單播的虛擬IP地址和一個虛擬MAC地址,分別稱爲羣集IP地址和羣集MAC地址。NLB羣集通過該IPMAC和做網關的S交換機直連互通,交換機通過三層轉發將網絡側的流量同時同時轉發一份給NLB集羣中每一臺服務器,然後NLB集羣服務器內部通過特定算法實現負載分擔,決定由哪一臺服務器向網絡側迴應報文。

目前,NLB服務器支持單播模式、組播模式和IGMP多播模式三種工作模式。

對接分析

三種工作模式下,S交換機與其對接做網關時存在的問題如下:

l  單播模式:單播羣集MAC地址以02bf開頭(單播MAC)。S交換機與單播模式的NLB服務器羣集對接時,對應羣集IP地址的ARP表項只能學習到一個出接口。因此,只有一臺NLB服務器會收到發往羣集IP地址的報文。

l  組播模式:組播羣集MAC地址以03bf開頭(組播MAC)。S交換機與組播模式的NLB服務器羣集對接時,由於缺省情況下,S交換機無法學習到MAC地址是組播MACARP表項。通過使能動態學習組播MAC的功能或靜態ARP表項綁定的方式,也只能學習到一個出接口。因此,只有一臺NLB服務器會收到發往羣集IP地址的報文。

l  IGMP多播模式:IGMP多播羣集MAC地址以0100-5e開頭。目前,S交換機不支持與工作在IGMP多播模式的NLB服務器對接。

如上分析,必須解決只能發送一臺服務器的問題,S交換機和NLB服務器才能實現對接。

對接方案

多端口ARP方案:多端口ARP可以實現將發往服務器羣集的報文同時發送給羣集中所有的服務器。多端口ARP主要通過靜態ARP表項將NLB羣集IP地址與NLB服務器羣集使用的共同MAC地址進行綁定,並且通過多端口MAC表項將NLB服務器羣集使用的共同MAC地址與設備上與服務器相連的出接口進行綁定。這樣發往服務器羣集IP地址的數據報文會從設備上所有與服務器相連的出接口發送出去。 這種方案適用於S交換機V200R003C00及以後版本。

對於V200R003之前的版本,可以通過如下兩種方式實現對接:

l  在交換機與NLB服務器之間增加二層交換機(當NLB服務器工作在組播模式時,需要在交換機上使能ARP動態學習組播MAC的功能或者配置靜態ARP表項)。這種方法需要多增加一臺二層交換機,適用於設備資源充足的情況。

l  物理鏈路環回方法。這種方法與增加二層交換機的方法相比,配置較複雜。

對接案例1——多端口ARP方案(V200R003及以後版本)

上一期我們已經介紹了這個方案的實現過程,具體請參見:http://hanjh8.blog.51cto.com/742232/1582041

Note:部分盒式款型不支持,帖子裏都有介紹。

對接案例2——增加二層交換機

對於不支持多端口ARP的設備形態,在設備條件滿足的情況下,通過增加二層交換機的方法,可以實現設備與NLB服務器羣集的對接。如下圖所示,在三層交換機Switch下增加二層交換機LSW,接口GE0/0/1所屬VLANVLANIF接口作爲NLB服務器羣集的網關。由Switch發往羣集IP地址的報文到達LSW後,會在VLAN10內廣播,從而實現所有NLB服務器都會收到發往羣集IP地址的報文

 

爲什麼報文到了二層交換機以後會在VLAN 10內廣播?爲什麼不是查找MAC地址進行單播轉發? 

NLB服務器工作在單播模式的時候,NLB羣集中每一臺服務器的網卡的MAC地址會被替換成一個相同的羣集MAC地址,他們通過此羣集MAC地址來接受外部的連接請求。這個時候不同的服務器給交換機發送數據包的時候源MAC地址是相同的,而交換機上不允許不同的接口學習到相同的MAC地址,這會產生MAC地址漂移,導致轉發報文異常。

爲了解決上述問題,NLB服務器又引入了一個MaskSourceMac功能,它會根據每一臺服務器的主機ID來更改外送數據包的源MAC地址。將羣集MAC地址中最高第二組字符改爲主機ID,然後將此修改過的MAC地址作爲源MAC地址發送數據包。例如,羣集MAC地址爲02bf-0a80-f6fc,服務器id01,那麼該臺服務器外發數據報文的時候源MAC地址爲0201-0a80-f6fc

啓用MaskSourceMac功能以後,服務器給交換機發送數據包的時候使用的源MAC地址是在羣集MAC地址基礎上根據主機ID修改後的MAC地址,而不同的主機ID是不一樣的,這樣就使得交換機連接服務器的各個端口上學習到的MAC地址不一樣,就避免了MAC地址漂移的現象。而網關設備在發送針對羣集IPARP請求的時候得到的迴應是羣集MAC,這個羣集MAC地址不會學習在交換機的任何端口上。

因此,報文到達交換機以後,報文的目的MAC是羣集MAC,由於交換機查找不到MAC地址表項,按照未知單播報文處理,所以在VLAN內進行廣播。

以上分析是對接工作在單播模式的NLB服務器,如果NLB服務器工作在組播模式,其集羣MAC是組播MAC,交換機無法學習到MAC地址是組播MACARP表項。因此,NLB服務器工作在組播模式時,需要在做網關的Switch上使能ARP動態學習組播MAC的功能或配置靜態ARP表項(表項的IP地址爲羣集IP地址、MAC地址爲羣集組播MAC地址、出接口爲網關設備上連接二層交換機的接口GE0/0/1)。

ARP動態學習組播MAC配置命令:arp learning multicast enable,配置在網關設備連接二層交換機的接口上。

靜態ARP表項配置命令(以上圖爲例):arp static 羣集IP 羣集MAC vid 10 interface gigabitethernet 0/0/1

對接案例3——單臺設備物理鏈路環回

本方案適用於S系列交換機所有產品形態及版本但這個方案需要佔用物理端口資源,支持多端口ARP的情況下,推薦使用多端口ARP

物理鏈路環回方案和案例2“增加二層交換機”的方案類似,物理鏈路環回以後邏輯上交換機被分成了兩塊,一部分是二層交換機一部分是三層做網關的交換機,原理就不再贅述了。

anchor.gifanchor.gif組網需求

如下圖所示,Switch通過接口GE0/0/1GE0/0/2GE0/0/3分別與三臺NLB服務器直連。NLB服務器羣集工作在單播模式下,羣集IP地址爲10.128.246.252/24,羣集MAC地址爲02bf-0a80-f6fcSwitch與客戶端Client之間路由可達。

當客戶端Client訪問NLB服務器羣集時,交換機Switch能夠將發往羣集IP地址的報文發送給羣集中的所有NLB服務器。

 

配置思路

通過物理鏈路環回方法實現對接的配置思路如下:

1.   配置與NLB服務器直連的接口GE0/0/1GE0/0/3加入VLAN100

2.   去使能自環接口GE0/0/4GE0/0/5STP/RSTP/VBST/MSTP功能,並以Access類型分別加入VLAN100VLAN200

3.   配置三層接口VLANIF200IP地址,VLANIF200作爲NLB服務器羣集的網關。

4.   連接自環接口GE0/0/4GE0/0/5

操作步驟

1.   配置與NLB直連的接口GE0/0/1GE0/0/3Access方式加入VLAN100

<Quidway> system-view

[Quidway] sysname Switch

[Switch] vlan batch 100 200

[Switch] interface gigabitethernet 0/0/1

[Switch-GigabitEthernet0/0/1] port link-type access

[Switch-GigabitEthernet0/0/1] quit

[Switch] interface gigabitethernet 0/0/2

[Switch-GigabitEthernet0/0/2] port link-type access

[Switch-GigabitEthernet0/0/2] quit

[Switch] interface gigabitethernet 0/0/3

[Switch-GigabitEthernet0/0/3] port link-type access

[Switch-GigabitEthernet0/0/3] quit

[Switch] vlan 100

[Switch-vlan100] port gigabitethernet 0/0/1 to 0/0/3

[Switch-vlan100] quit

2.   配置自環接口GE0/0/4GE0/0/5

去使能接口GE0/0/4GE0/0/5STP/RSTP/VBST/MSTP功能。

[Switch] interface gigabitethernet 0/0/4

[Switch-GigabitEthernet0/0/4] undo stp enable

[Switch-GigabitEthernet0/0/4] quit

[Switch] interface gigabitethernet 0/0/5

[Switch-GigabitEthernet0/0/5] undo stp enable

[Switch-GigabitEthernet0/0/5] quit

配置接口GE0/0/4GE0/0/5Access類型分別加入VLAN100VLAN200

[Switch] interface gigabitethernet 0/0/4

[Switch-GigabitEthernet0/0/4] port link-type access

[Switch-GigabitEthernet0/0/4] port default vlan 100

[Switch-GigabitEthernet0/0/4] quit

[Switch] interface gigabitethernet 0/0/5

[Switch-GigabitEthernet0/0/5] port link-type access

[Switch-GigabitEthernet0/0/5] port default vlan 200

[Switch-GigabitEthernet0/0/5] quit

3.   配置NLB服務器羣集網關的IP地址

[Switch] interface vlanif 200

[Switch-Vlanif200] ip address 10.128.246.250 24

[Switch-Vlanif200] quit

4.   連接自環接口GE0/0/4GE0/0/5

上述配置完成後,進行物理連線。

5.   驗證配置結果

上述配置完成後,發往NLB服務器羣集IP地址的報文Server_1Server_3都能收到。

配置注意事項

NLB服務器羣集工作在單播模式時,不需要在交換機上配置靜態ARP表項(以上舉例是這種情況);NLB服務器羣集工作在組播模式時,需要在交換機上配置靜態ARP表項IP地址和MAC都是NLB服務器的羣集IPMAC,出接口爲VLAN200所在的接口,以上舉例中就是GE0/0/5)。


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