IPv6 位址未設定

IPv6 位址未設定

我在 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,僅由如果向上向下工具ifupifdown.所以你必須使用:

ifup eth0

即使這樣,您的配置也會被拒絕,因為設定檔語法使用“iface“,而不是“ interface”,表示新的邏輯介面。(請參閱介面(5)完整語法描述手冊。

(您的pre-up行也是 1)不必要的:它是自動完成的,並且 2)輸入錯誤:它是“ modprobe”。


顯示該fe80::a00:27ff:fe1e:5edf位址不是因為任何配置,而是因為 IPv6 需要它。每個介面都需要有一個連結本地基於「介面 ID」(其 MAC 位址)的位址;這些位址是由 Linux 核心自動添加的。

(請記住,一個介面可以有多個位址。您可以在同一介面上同時擁有 和 ,並且它仍然可以工作。fe80::1fe80::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

應該沒事。

相關內容