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 上,区域索引与接口名称相同。)例如,要通过eth0,您必须添加%eth0

ping6 fe80::a00:27ff:fe1e:5edf%eth0

(Oliver Salzburg 的回答也是正确的——在引用单个主机时不能指定子网掩码。)

答案2

我认为您不必提供子网掩码ping

ping6 fe80::a00:27ff:fe1e:5edf

应该没事。

相关内容