Debian

Linux IPv6 環迴路由自動添加

  • December 20, 2010

我們有一台執行 Debian Lenny 的路由器,幾個月來一直在愉快地路由 IPv6。我們的上游已經告知我們的地址範圍正在改變,並且兩者目前都在執行,所以我想我會添加第二個地址進行測試。

ip -6 addr add 2405:3c00:1:13::2/64 dev eth1

# ping6 2405:3c00:1:13:: (our upstream router)
64 bytes from 2405:3c00:1:13::2: icmp_seq=1 ttl=64 time=0.089 ms

什麼?

# ip -6 route get 2405:3c00:1:13::
local 2405:3c00:1:13:: from :: via :: dev lo  table local  proto none  src 2405:3c00:1:13::2  metric 0  mtu 16436 advmss 16376 hoplimit 4294967295
# route -6 | grep 2405
2405:3c00:1:13::/64        ::                    U    256 0     1 eth1
2405:3c00:1:13::/128       ::                    Un   0   1     0 lo
2405:3c00:1:13::2/128      ::                    Un   0   1     0 lo

我很好奇這...13::/128條路線是如何到達的。在我將地址添加到界面後大約兩秒鐘出現。界面上未啟用 radvd(8),取消設置accept_raautoconf沒有區別。

有什麼簡單的方法可以關注哪個程序正在修改路由表?有沒有人對罪魁禍首有什麼絕妙的想法?

在任何 /64 子網中, ::0 地址是子網路由器任播地址;它辨識鏈路上的所有路由器。由於您打開了 net.ipv6.conf.all.forwarding,系統將自己標識為路由器並加入該選播組。不幸的是,這種行為並沒有真正記錄或可配置,因此您可能擁有正確的解決方案。

更理想的是不使用該地址,因為它在技術上是保留的,但這可能不是您的 ISP 的選項。

您可能已經註意到該路線僅顯示為route -6而不顯示ip -6 route。那是因為路由在local表中,而不是main. 你可以看到它ip -6 route list table local。只需刪除該 /128 路線就可以解決問題。

引用自:https://serverfault.com/questions/200344