所以,我的问题是我无法让 IPv6 正常工作。例如,Ping6 只是connect: Network is unreachable
在我尝试 ping 时告诉我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 更令人困惑)。
任何想法或解决方案?
fe80::/10 作为其背后的“范围”声明是一个链接本地地址。
要连接到互联网的其余部分,您需要一个全球地址(因此至少在接下来的几年内超过 2000::/3),当然您至少需要一个默认值(::/0)或默认值(2000: :/3) 路由到实际转发您的数据包的路由器。
因此,您有两个选择:1) 要求您的 ISP 为您提供本机 IPv6 2) 获得隧道(谷歌搜索“维基百科 ipv6 隧道代理”以获得一个好的列表)。
您没有在主机上设置公共 IPv6 地址(公共地址以 2xxx 或 3xxx 开头)。您只设置了一个链接本地 (fe80::) 地址,因此您只能 ping 局域网中的其他主机。
ping 时你必须设置“-I eth0”,因为你正在 ping 一个链接本地地址(fe80::/64),它在你所有的接口上设置,而 ping 不知道使用哪个接口。
您需要联系您的网络管理员了解网络设置(IP 地址、网关、dns),并进行设置。由于路由器通告在大多数机器上默认启用,因此可能没有路由器将它们发送出去,或者您会有一个自动配置的 IPv6 地址。