![IPv6 位址未設定](https://rvso.com/image/1311831/IPv6%20%E4%BD%8D%E5%9D%80%E6%9C%AA%E8%A8%AD%E5%AE%9A.png)
我在 ubuntu 10.04 上設定 IPv6 位址時遇到問題。我的 /etc/network/interface 檔案如下所示:
iface eth0 inet6 static
pre-up modeprobe ipv6
address fe80::1
netmask 10
gateway fe80::2
我已將我的 IP 位址設為 fe80::1 但當我啟動 eth0 ifconfig 顯示
inet6 addr: fe80::a00:27ff:fe1e:5edf/64 Scope:Link
為什麼它顯示不同的IP位址?
當我跑步時
ping6 fe80::a00:27ff:fe1e:5edf/64
它告訴我未知的主機。為什麼 ?
答案1
您在評論中提到您使用如果配置調出介面。在這種情況下,你的問題是如果配置不使用該interfaces
文件(它只告訴介面開始接收資料包)。此設定檔特定於 Debian/Ubuntu,僅由如果向上向下工具ifup
和ifdown
.所以你必須使用:
ifup eth0
即使這樣,您的配置也會被拒絕,因為設定檔語法使用“iface
“,而不是“ interface
”,表示新的邏輯介面。(請參閱介面(5)完整語法描述手冊。
(您的pre-up
行也是 1)不必要的:它是自動完成的,並且 2)輸入錯誤:它是“ modprobe
”。
顯示該fe80::a00:27ff:fe1e:5edf
位址不是因為任何配置,而是因為 IPv6 需要它。每個介面都需要有一個連結本地基於「介面 ID」(其 MAC 位址)的位址;這些位址是由 Linux 核心自動添加的。
(請記住,一個介面可以有多個位址。您可以在同一介面上同時擁有 和 ,並且它仍然可以工作。fe80::1
)fe80::a00:27ff:fe1e:5edf
另請記住,fe80::/10
地址是連結本地– 換句話說,他們從未被路由,並且gateway
配置設定沒有意義。
這意味著每當您嘗試存取連結本地地址時,您必須手動指定要使用的介面 - 這是透過添加一個區域索引到地址。 (在 Linux 上,區域索引與介面名稱相同。)例如,要透過乙太網路0,你必須添加%eth0
:
ping6 fe80::a00:27ff:fe1e:5edf%eth0
(Oliver Salzburg 的答案也是正確的 - 在引用單一主機時不得指定子網路遮罩。)
答案2
我認為您不必提供子網路遮罩ping
。
ping6 fe80::a00:27ff:fe1e:5edf
應該沒事。