第 5 章 路由基礎與靜態路由

IPv6 路由:跟 IPv4 幾乎一樣,但有三個坑

考綱明列「設定與驗證 IPv4 與 IPv6 靜態路由」。好消息是邏輯完全相同。

12 分鐘


IPv6 的路由查找邏輯跟 IPv4 一模一樣:最長前綴匹配 → 管理距離 → 度量值。指令也只是把 ip 換成 ipv6。真正要注意的是幾個 IPv6 特有的行為。

對照著看,一眼就懂
! ---- IPv4 ----                    ! ---- IPv6 ----
ip route 192.168.2.0 255.255.255.0 10.0.0.2
ipv6 route 2001:db8:2::/64 2001:db8:12::2

! 預設路由
ip route 0.0.0.0 0.0.0.0 10.0.0.2
ipv6 route ::/0 2001:db8:12::2

! 浮動靜態路由(備援,AD 設高一點)
ipv6 route ::/0 2001:db8:99::1 200

! 主機路由(IPv6 用 /128,相當於 IPv4 的 /32)
ipv6 route 2001:db8:2::100/128 2001:db8:12::2

坑二:下一跳可以用 link-local 位址,但必須同時指定介面

IPv6 的鄰居關係大量使用 link-local 位址(FE80::/10)。但 link-local 只在單一鏈路內有效 —— 同一個 FE80:: 位址可能出現在多個介面上,所以路由器無法只憑它判斷該從哪裡送出去。

! ✗ 錯誤:只給 link-local,路由器不知道要從哪個介面送
R1(config)# ipv6 route 2001:db8:2::/64 FE80::2
% Interface has to be specified for a link-local nexthop

! ✓ 正確:介面 + link-local 下一跳
R1(config)# ipv6 route 2001:db8:2::/64 gi0/0 FE80::2

! ✓ 也可以:用全域位址當下一跳,就不必指定介面
R1(config)# ipv6 route 2001:db8:2::/64 2001:db8:12::2

讀懂 IPv6 路由表

R1# show ipv6 route
IPv6 Routing Table - default - 5 entries
Codes: C - Connected, L - Local, S - Static, O - OSPF

S   ::/0 [1/0]
     via 2001:DB8:12::2
C   2001:DB8:1::/64 [0/0]
     via GigabitEthernet0/1, directly connected
L   2001:DB8:1::1/128 [0/0]
     via GigabitEthernet0/1, receive
C   2001:DB8:12::/64 [0/0]
     via GigabitEthernet0/0, directly connected
L   FF00::/8 [0/0]
     via Null0, receive
  • C 與 L 的意義跟 IPv4 相同:C 是整個直連網段,L 是路由器自己的位址(IPv6 用 /128,IPv4 用 /32)。
  • FF00::/8 指向 Null0:這是多播位址範圍,正常現象,不是錯誤。
  • link-local 位址不會出現在路由表裡:它們不可路由,只存在於鄰居表(show ipv6 neighbors)。

實驗 5-2:雙堆疊靜態路由

目標:在同一個拓樸上同時跑 IPv4 與 IPv6,親眼看到兩套路由表獨立運作。

  1. 沿用實驗 5-1 的三台路由器拓樸(PC1 — R1 — R2 — R3 — PC2)。
  2. 在每台路由器全域下 ipv6 unicast-routing
  3. 每個介面在原有的 IPv4 位址之外,再加上對應的 IPv6 位址(例如 R1-R2 之間用 2001:db8:12::1/64::2/64)。
  4. 兩端的 PC 也設定 IPv6 位址與閘道。
  5. 在每台路由器加上 IPv6 靜態路由,指向兩側的末端網段。
  6. show ip routeshow ipv6 route 各看一次,比較兩張表。
  7. 從 PC1 分別 ping PC2 的 IPv4 與 IPv6 位址。
怎麼確認做對了:
兩個位址族都應該通。如果 IPv6 不通而 IPv4 通,依序檢查:ipv6 unicast-routing 下了嗎?介面 IPv6 位址設了嗎?路由的下一跳寫對了嗎?特別注意兩張路由表是完全獨立的 —— IPv4 設好不代表 IPv6 也會通。

立即測驗這一節(1 題)