探討IPv6的第一站路由器容錯技術(FHRP for IPv6)

邱顯智 Ozzy Chiou

  • 精誠資訊 恆逸教育訓練中心 資深講師
  • 技術分類:網路管理與通訊應用

在傳統IPv4的環境中,許多企業會針對用戶端電腦所設定的預設閘道採用第一站路由器容錯協定(First Hop Redundant Protocols/FHRP)以避免單一路由器失效造成與外界連線中斷的問題,所謂的FHRP就是由兩台以上的路由器共同合作形成一台虛擬路由器,用戶電腦所指定的預設閘道即為虛擬路由器的虛擬IP位址,其中一台為Forwarding Router,另一台為Standby Router,兩台路由器都正常的時候,由Forwarding Router負責用戶電腦傳送出來的資料封包路由處理(如圖1),一旦Forwarding Router發生故障,則由Standby Router接手繼續資料封包路由處理(如圖2)。

在Cisco Router上可以設定的FHRP技術有HSRP、VRRP以及GLBP三種,特性差異簡列如下:

PK項目 HSRP VRRP GLBP
公開或私有標準 Cisco Proprietary RFC5798 Cisco Prorietary
使用成員介面IP為Virtual IP 不可以,Virtual IP必須獨立 可以,該成員即為Master Router 不可以,Virtual IP必須獨立
支援IPv6 需使用Version 2 需使用Version 3 可以

由於HSRP比較沒有特殊型號或IOS版本的要求,Cisco全系列的Router與Multi-layer Switch都可以支援,因此在傳統IPv4的環境裡,大多數單位選擇部署HSRP,圖3即為一般單位常見的IPv4 HSRP部署設定。 在圖3的設定中,由於我們並未明確指定HSRP的版本,因此使用的是Version 1,但是HSRP要提升為Version 2的版本才能支援IPv6。 可是當您嘗試改用HSRP Version 2啟用HSRP for IPv6的時候,您可能會遭遇到如同圖4的錯誤訊息。

是的,根據Cisco官方文件指出,HSRP for IPv4與HSRP for IPv6具有互斥性,兩者無法同時啟用。 蝦毀呀?這…這…這要如何是好呢? 事實上,IPv6本身已內建了簡易的第一站路由器容錯功能,在圖5的IPCONFIG指令的輸出結果中,您可以注意到預設閘道標示兩個用FE80開頭的Link-local Address,這是透過直連用戶電腦的IPv6路由器定期發送的Router Advertisement封包所獲得的資訊,而且FE80開頭的預設閘道位址有兩個,代表用戶電腦直連的網路存在兩台IPv6路由器,兩台都在發送RA封包,所以用戶會接收到兩者發出的RA封包,並且將RA封包中所標示的來源位址(Link-local Address格式)設定為預設閘道,兩台路由器都正常的時候,會依照排序來決定最終使用哪一台路由器來傳送跨網段的IPv6資料封包,另外IPv6內建了Neighbor Unreachable Detection/NUD的機制,一旦原先選定的路由器失效時,就會改用另一台傳送資料封包。

不過由於NUD的Timeout時間比較長,因此一旦發生路由器失效的狀況,用戶電腦跨網段的資料封包可能要經過一段時間才能重導到另一台仍然存活的路由器,對於網路可用性要求較高的單位來說,可能無法難以忍受。 為了提供IPv6預設閘道的快速容錯反應機制,又不可能把原本已經設定好的IPv4 HSRP砍掉重練的前提條件下,VRRP與GLBP似乎是僅存的兩個選項,不過由於大部份單位所使用的預設閘道路由器型號多半是3750或3850的機種,然而執行GLBP需要使用到Cisco Catalyst 4500系列以上的型號,看樣子我們只能寄望VRRP了。 不過筆者在3750的測試機上嘗試啟用VRRP for IPv6的時候,竟然找不到相關指令,這個時候有沒有很『藍瘦的香菇』呢?

哈哈!別灰心,這就是筆者寫這篇文章要告訴大家的秘技所在。 事實上要啟用VRRP for IPv6之前,您必須先將VRRP的版本提升為Version 3。

接著您便可以在要啟用VRRP for IPv6的介面上,透過Address-family的關鍵字設定VRRP for IPv6了。

相關學習資源