利用VRID/VMAC實現更安全的netscaler HA故障切換
利用VRID/VMAC實現更安全的netscaler HA故障切換
virtual MAC在故障切換(failover)中的作用。
在一個HA模式中,首要節點(primary node)擁有所有浮動IP,包括MIP(mapped IP)、VIP(virtual IP)等等。在網絡環境中,首要節點會把這些浮動IP和自身的MAC地址返回給ARP請求,從而使得子網外的設備(例如路由器)的ARP表把該MAC和這些IP匹配起來。
當failover發生的時候,次要節點(secondary node)會取代已經故障設備而成為新的首要節點。然後,它會使用GARP(Gratuitous ARP,無故ARP)進行廣播,要求其他網絡設備更新ARP表,把這些浮動IP對應為它的MAC地址。
這時候問題來了。有些不支持GARP的設備會拒絕更新ARP表,依舊認為這些IP屬於故障節點,導致網絡流量繼續流向“死亡地帶”,造成嚴重後果。
為了解決這個問題,netscaler的方法是設置VMAC(virtual MAC)。VMAC需要在兩個節點設備上都進行設置,這樣他們就都擁有了一樣的MAC地址。failover發生時,次要設備的MAC無須改變,外部設備的ARP表也無須更新。實現了平滑切換。
VMAC的值是用戶定義的,方法很簡單。在netscaler上創建一個VRID(virtual route identifiler),然後把這個VRID綁定到網絡接口,這樣系統就會生成一個基於這個VRID的VMAC,最後八位就是VRID的值。前5組數字是系統自己生成的。例如,某個netscaler生成的VMAC可能是00:01:02:03:04:<VRID>。
創建VRID方法:
ssh連接到netscaler,運行如下命令:
add vrid <number>
bind vrid <number> -ifnum <interface_number>
================== End
利用VRID/VMAC實現更安全的netscaler HA故障切換