輕鬆設定多界面網路設備的IPv6位址—IPv6 General Prefix

作者:邱顯智
精誠資訊 恆逸教育訓練中心 資深講師
技術分類:網路管理

IPv6路由器必須定期在所有介面對所有IPv6節點(All-node IPv6 Multicast Address= FF02::1)發送Router Advertisement封包(RA),RA封包中會提供該介面直連網路應有的Prefix(es)、Prefix Length、Prefer Lifetime、Valid Lifetime、MTU、Autoconfiguration Flag…等重要資訊,其中由於RA封包中已經提供該介面直連網路應有的Prefixes與Prefix Length(例如:2001:B030:10E:1A::/64),所以就算網路上沒有DHCPv6伺服器,IPv6主機仍然可以使用RA封包中提供的Prefixes與Prefix Length資訊,搭配自身的Interface ID演算法,湊出自己的完整IPv6位址(例如:2001:B030:10E:1A:185A:3B28:3F57:57F7/64),並且將Default Gateway指定為路由器的Link-local Address(取自RA封包的來源IPv6位址),如此取得IPv6位址的方式稱為Stateless Address Autoconfiguration(SLAAC)的方式,也就是由IPv6路由器提供Prefix資訊,搭配自動產生Interface ID的方式,自動產生一組以上的IPv6位址,而且還有跨網段的通訊能力。因此,為了日後Renumber方便起見,我們強烈建議一般的主機IPv6位址儘可能使用自動的方式取得。

由以上說明可以得知IPv6路由器本身由於必須定期發送RA封包以提供同網段IPv6主機Prefix資訊,所以路由器本身介面通常必須設定固定的IPv6位址,然而手動輸入IPv6位址必須注意以下兩件事:

  • 每個介面的IPv6位址必須人工輸入到一字不差
  • 不慎輸入錯誤的IPv6位址,必需人工手動取消設定,不像以前設定IPv4位址一樣﹐再重新輸入一條正確的指令就可以覆蓋掉錯誤的IPv6位址。
  • 未人工取消的錯誤IPv6位址將導致路由器產生錯誤的直連IPv6路由,將導致路由誤判的狀況發生。

上面的要求看似很簡單,但是如果把IPv6位址手動設定在一台具備多個介面的路由器上將可能將會是一場災難的開始。 因了降低在多介面網路設備手動設定IPv6位址可能發生錯誤的機率,Cisco設備提供一種稱為『General Prefix』的設定方式,也就是先把所有介面共同的IPv6 Prefix的部份用一個簡潔有力的字串取代,日後在設定所有介面的IPv6位址時,只要專心分配Subnet ID與Interface ID的部份就好,無須再分神注意前面設定的Prefix是否輸入正確,右圖即為設定參考範例:

在以下左圖中的第一個重要指令為ipv6 general-prefix GP 2001:b030:10e:10::/60,該指令用來把前60個bits為2001:b030:10e:10的Prefix使用GP兩個字取代,因此這個General Prefix可以提供的IPv6網段為2001:b030:10e:10::/64 - 2001:b030:10e:1f::/64,共計16個Subnet。

接著在設定每個介面的IPv6位址時,便可以用ipv6 address GP ::X:0:0:0:1/64的方式專注在於Subnet ID的分配即可,不需要另外費心檢查前60個bit是否輸入正確。 最後,您可以使用show ipv6 interface brief指令檢查每個介面最終生效的IPv6位址為何,您可以注意到雖然在設定時並沒有特別指定前面60個bits,不過不論哪個介面都會自動在前60個bits帶上2001:b030:10e:10::的格式,是不是很方便呢?