在 Windows 7 上与本地 DNS 服务器一起运行 IPv6 隧道

在 Windows 7 上与本地 DNS 服务器一起运行 IPv6 隧道

我在 Windows 7 中通过 Hurricane Electric 运行 IPv6 隧道,它已经运行了很长时间。我的路由器本身根本不支持 IPv6。

我也在尝试运行本地 DNS 服务器(我已经在 Raspberry Pi 上安装了 dnsmasq,并确认它可以正常工作,因为当我将 DNS 服务器设置为 Pi 的 LAN IPv4 地址时,我可以看到我的 iPad 使用它)。

但是,在 Windows 7 计算机上,我无法访问本地 DNS 服务器,因为它始终使用 IPv6 DNS 服务器(设置为 OpenDNS)。虽然 Pi 可以运行 IPv6 或其他隧道,但我认为这两者都对我无济于事,因为 (a) 隧道的另一端将无法看到本地 IPv6 地址,(b) DNS 服务器的外部 IPv6 地址将被路由器防火墙阻止(我不想为此打开防火墙)和 (c) 这会使要点失效,因为它需要通过两个隧道往返,因此它不再是本地的。显然,我无法直接在 Win7 和 Pi 之间进行 IPv6 对话,因为路由器不支持此功能。

如果 IPv6 DNS 服务器找不到地址,是否有办法让 Windows 回退到 IPv4 DNS 服务器(因此也是本地服务器)?(我知道我可以使用运行 ipv6 的备用路由器来设置硬件解决方案,但如果可以的话,我想不用它来解决问题)。

答案1

显然,我无法直接在 Win7 和 Pi 之间进行 IPv6 对话,因为路由器不支持此功能。

你可以。

我假设您有一个带有多个以太网端口的“家庭网关”/“WiFi 路由器”设备,并且您的 Win7 计算机和 Rπ 都连接到其“LAN”端口。

这种“路由器”通常是路由器+交换机的组合,其中一个以太网端口分配给“WAN”侧,所有其他端口分配给“LAN”侧。在这种情况下,同一 LAN 上的设备通信时没有 IP 级路由,只有以太网级交换。仅在 LAN 和 WAN 之间有路由。

所以,你的 IPv4 路由器没有需要支持IPv6供所有 LAN 设备使用。很有可能,您的两台计算机都可以通过同一子网上的 IPv6 地址顺利互相访问。

例如,链接本地fe80::…地址可以起作用,尽管使用起来很烦人。

唯一本地地址也可以使用 - 它们大致相当于众所周知的 RFC 1918 地址(以10.或开头的地址192.168.只需选择一个随机的 ULA 网络前缀并在两个设备上从中配置地址。


如果你确实需要 IPv6路由,可以通过不同的设备完成。由于您的 IPv6 ISP 是 Hurricane Electric,你可以将你的 Win7 PC 或你的 Raspberry Pi– 无论你将哪一个配置为隧道端点 –成为功能齐全的 IPv6 路由器在您的 LAN 和 HE 隧道之间,为整个 LAN 提供 IPv6 连接。

(事实上​​,我在 Windows XP Pro 上已经这样做过了。)

您只需要将一个/64大小为1 的IPv6 地址范围分配给您的 LAN。Hurricane Electric 为每个隧道分配一个地址 - 在配置页面中查找“Routed /64”。

因此,假设您的 HE 隧道接口称为“he0”,并且您的以太网卡称为“以太网”:

  1. 跑步netsh在提升的命令提示符中。

  2. 网络>接口 IPv6
  3. 在Win7中启用IPv6路由功能。您必须在“WAN”(隧道)和 LAN 接口上启用数据包转发,但仅在 LAN 接口上启用路由器通告。

    设置接口“以太网”转发=启用广告=启用
    设置接口“he0”转发=启用
    
  4. 通过本地以太网接口路由您的 /64 网络,并确保发布它:

    添加路线你的前缀/64 “以太网”发布=是有效=1d 首选=1h

    (例如,add route 2001:470:1f0b:123::/64 …

    “发布”选项意味着 Win7 会将此路由包含在向 LAN 广播的“路由器通告”数据包中。由于它是 /64 前缀,因此其他设备将自动为其配置自己的 IP 地址。

    “有效”和“首选”计时器并非严格要求,它们只是告诉所有其他设备如果一天没有公布该 IPv6 路由就忘记它。

  5. 同时发布现有的“默认”::/0路线:

    设置路线::/0“he0”发布=是有效=1d 首选=1h
  6. 现在,Win7 本身将自动配置 IPv6 地址;请show addr在 netsh 中检查。

  7. 连接到您的 Rπ 并查看ip addr- 您也应该在那里看到一个 IPv6 地址。

当然,你也可以对 Rπ 做同样的事情……事实上,你可能应该而是在 Rπ 上进行。但是这篇文章已经很长了,所以请随意发布一个关于如何让 Linux 充当 IPv6 路由器的新问题。(你需要radvd。)


1要使自动配置正常工作,它必须是 /64 前缀。这意味着,如果您想将“路由的 /48”用于 LAN,您使用,但您仍然必须从中选择一个 /64 子网,并为其添加(第二条)路由。add route prefix/48

相关内容