我有一台 Vista64 机器,位于 NAT 路由器后面,连接到 IPv4 互联网。
我的机器上启用了 Teredo,并且我有一个前缀为 2001:0: 的 IPv6 地址。我可以看到ping
IPv6 互联网中的多台服务器(例如force.ipv6only.se
或ipv6.google.com
),并且tracert
显示我的 IPv6 流量是通过 teredo 中继路由的。但是,我无法从 IPv6 互联网中的机器连接或 ping 我的机器。tracert
此方向的 A 停止在 teredo 中继处。
连接到 NAT 后面支持 Teredo 的服务器需要哪些步骤?
答案1
最有可能是防火墙问题。如果允许文件和打印机共享,则启用 Ping。默认情况下,Vista 的防火墙仅允许在本地子网上共享文件和打印机。因此,IPv6 互联网上其他地方的机器位于不同的子网上,无法访问文件和打印机共享服务,包括 Ping。
我最近没有花太多时间在 Vista 的防火墙上(我现在主要是 Linux 用户),所以我无法给你提供解除阻止的具体步骤,但请尝试暂时关闭防火墙,看看是否有效果。
答案2
检查具有本机 IPv6 的机器是否不在阻止的状态防火墙后面icmpv6
。
我遇到过类似的问题,即使用 6to4 的网络中的计算机无法连接到另一个网络中使用 teredo 的计算机。icmpv6
在 6to4 网关中明确允许 IPv6 防火墙(而不是仅使用 ip6table 的-m state --state ESTABLISHED,RELATED
)足以解决此问题。发生这种情况的原因是 teredo 以 iptables 无法识别为“ ”的方式向“本机”(在本例中为 6to4)主机发送 IPv6 ping RELATED
,如果该 ping 数据包被丢弃或拒绝,它将无法工作。
一般来说,阻止 ICMP 只会导致麻烦,但我(结果却是错误的)相信 netfilter 的状态跟踪器足以允许所有需要的 ICMP 数据包。
答案3
如果您位于 NAT 后面,则很可能当 Teredo 服务器尝试与您建立连接时,您的 NAT 不会将正确的端口转发给您。
我会找出需要哪些端口,或者如果可能的话将所有端口转发到您的机器以测试这确实是一个端口转发问题。
查看go6 的 Teredo 维基看看“Teredo IPv6 寻址”部分是否能让您了解还有哪些需要了解的内容。您应该能够查看您分配的 IPv6 地址,然后确定需要转发的端口。