所以,我的问题是我无法让 IPv6 工作。例如,connect: Network is unreachable
当我尝试 ping 时, Ping6 只会告诉我。ipv6.google.com
ifconfig
看起来像(稍微审查了一下):
eth0 Link encap:Ethernet HWaddr **:**:e9:b6:35:7e
inet addr:***.*.65.177 Bcast:***.*.65.191 Mask:255.255.255.224
inet6 addr: fe80::16da:e9ff:feb6:357e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:* errors:0 dropped:0 overruns:0 frame:0
TX packets:* errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:* TX bytes:*
Interrupt:28 Base address:0xc000
lo ...
route -6
返回:
Destination Next Hop Flag Met Ref Use If
fe80::/64 :: U 256 0 0 eth0
fe80::/64 :: U 256 0 0 tap0
::/0 :: !n -1 1 5400 lo
::1/128 :: Un 0 4269387 lo
fe80::16da:e9ff:feb6:357e/128 :: Un 0 1 391 lo
fe80::4c7b:2bff:fef4:9db/128 :: Un 0 1 0 lo
ff00::/8 :: U 256 0 0 eth0
ff00::/8 :: U 256 0 0 tap0
::/0 :: !n -1 1 5400 lo
ping6
另一件奇怪的事情是,只有当我告诉专门使用eth0
接口时,ping 我自己的 IPv6 地址才有效,-I eth0
否则会返回unknown host
。
我读到的一件事是,我需要以某种方式在路由表中指定我的路由器,但我甚至不知道路由器的地址,也不知道如何找到它(因为我不像网络专家,而且 IPv6 对我来说似乎比 IPv4 更令人困惑)。
有什么想法或解决方案吗?
答案1
inet6 addr: fe80::16da:e9ff:feb6:357e/64 Scope:Link
fe80::/10 正如其后面的“范围”所述,是一个链路本地地址。
要连接到互联网的其余部分,您需要一个全局地址(因此至少在接下来的几年里需要 2000::/3 之外的地址),当然您至少需要一个默认(::/0)或默认(2000::/3)路由到实际转发数据包的路由器。
因此,您有两个选择:1)要求您的 ISP 为您提供原生 IPv6 2)获取隧道(在 Google 上搜索“wikipedia ipv6 tunnel broker”以获取详细列表)。
答案2
您的主机上没有设置公网 IPv6 地址(公网地址以 2xxx 或 3xxx 开头)。您只设置了本地链路 (fe80::) 地址,因此您只能 ping 局域网内的其他主机。
您必须在 ping 时设置“-I eth0”,因为您正在 ping 一个链路本地地址(fe80::/64),该地址在所有接口上设置,并且 ping 不知道使用哪个接口。
您需要联系网络管理员,了解网络设置(IP 地址、网关、DNS)并进行设置。由于大多数机器默认启用路由器广告,因此可能没有路由器发送它们,或者您有一个自动配置的 IPv6 地址。