錢多也不應該亂花,IP多也不應該隨便浪費
在RFC-4291(IPv6 Addressing Architecture)中將FE80::/10的IPv6位址定義為Link-local位址,這種位址具備以下特色:
- 固定為FE80帶頭(二進位的1111 1110 10開頭再固定接上54 bits的0,最後接64 bits的Interface Identifier)
- 僅限同一個Link(網段)之間使用,不可跨越Router送往其他網段
- 每個已經啟用IPv6的介面會自動各配一個Link-local位址,不論該介面是否已有其他可跨網段的Unicast位址
- 主要用於Neighbor Discovery、Automatic Address Configuration…等用途
- 您可以使用Link-local Address與同網段其他IPv6主機進行溝通,只是執行這個動作時,由於主機上可能有多個介面都配有Link-local Address,因此您需要指定外送介面
特別值得注意的是,在已經啟用IPv6協定的電腦上,不論您的網路介面透過哪一種方式(例如:SLAAC、DHCPv6…)自動取得IPv6位址,也不管您的網路卡取得的IPv6前置碼為何,您會發現預設閘道的格式都是直連路由器的Link-local位址;甚至當您檢查路由器上的IPv6 Routing Table時,只要是動態路由交換得到的路徑資訊,下一站路由器的IPv6位址一概是對方的Link-local Address,因此Link-local Address在IPv6中扮演角色的重要性不可言喻。
有了上述的概念之後我們來討論兩個狀況,在下圖1中Access Layer Switch與Distribution Layer Switch之間、Distribution Layer Switch(DSW)與Core Layer Switch(Core)之間是否應該配置一組Global Unicast Address呢?那麼在圖2的WAN端數據專線或是MPLS的CE(Customer Edge)與PE(Provider Edge)之間是否應該配置一組Global Unicast Address呢?
|
|
圖1 |
圖2 |
上面兩個問題的答案都是:「不需要」,因為對動態路由協定來說,既然下一站路由器的IPv6位址都是對方的Link-local Address,根本用不到其他的IPv6位址,更何況如果您在Point-to-Point線路上面在兩台路由器對接的介面設定Global Unicast Address或Unique-local Unicast Address,並且依照RFC-4291的規定用64 bits做為Interface Identifier的長度,那麼這條線路上可用的IPv6位址總數將多達264個,但是您只用了其中兩個,浪費的IP位址數量之多可見一般,俗話說:「錢多也不能亂花」,不是嗎?因此在封包的Transit Link(封包通過的中間線路),您只需要Link-local位址,其他種類的Unicast Address一概不需要。
在Cisco路由器上您可以在介面輸入IPv6 enable指令將該介面的IPv6功能啟用,這個指令會自動在介面產生Link-local Address,另外您也可以在該介面啟用貴單位使用的IPv6路由通訊協定(例如OSPFv3),如此兩台對接路由器便可以開始進行路由交換的程序了。
另外,在只有使用靜態路由的路由器上,您也可以輸入對接路由器介面的Link-local Address做為下一站位址,只是您必須同時指定外送介面,以Cisco Router為例,您可以輸入ipv6 route 2001:b030:10e:11::/64 fa 1/0/1 fe80::21b:2bff:fe2b:3241(將目的地網段2001:B030:10E:11::/64的下一站路由器位址指定為FE80::21B:2BFF:FE2B:3241,且指定外送介面為Fastethernet 1/0/1),不過筆者相信,這種方式應該會有人嫌麻煩,因為手動地將對方的Link-local Address要打到一字不差還真的是Orz!呵呵,預設的Link-local Address當然是系統會自動產生,但是您也可以自訂比較「親民」一點的格式,以Cisco Router為例,您可以用ipv6 address fe80::1 link-local指令將介面的Link-local Address設定成FE80::1,這樣對接路由器再指定您這台Router為下一站時是不是就方便多了呢?
哇!這樣是不是已經幫全世界以及「後代子孫」省下了一大堆可觀的IPv6位址了呢?
可在課程中了解更多的Cisco密技…
|