![调试 IPv6 路由问题](https://linux22.com/image/1417008/%E8%B0%83%E8%AF%95%20IPv6%20%E8%B7%AF%E7%94%B1%E9%97%AE%E9%A2%98.png)
我的 ISP 为我提供了一个原生(无隧道等)IPv6 /64 块。我的 pfSense 路由器已成功获取地址,并且我可以从其 WAN 接口 ping ipv6.google.com 并得到回复。但是,在我的内部网络上,它不起作用,我不知道为什么。我有一个 DHCPv6 服务器在分发地址,路由器正在做路由器广告,这对我来说似乎没问题。
我将尝试说明。假设我有一个前缀 2001:a:b:c::/64。我的路由器使用 SLAAC 获取其 WAN 地址,该地址变为 2001:a:b:c:20c:29ff:fef9:b914。在内部接口上,我已为其分配了 2001:a:b:c::1(我想这是旧的 IPv4 习惯...)。DNS 和 DHCP 托管在具有 2001:a:b:c::10(静态分配)的服务器上。然后我的工作站使用 DHCP 请求地址,并已分配 2001:a:b:c::11ab。
我的路由表包含两个默认(::/0)路由,一个用于路由器的内部静态 IP,一个用于其链路本地 IP。
现在 ping ipv6.google.com 会给出Destination host unreachable
。我应该从哪里开始调试?在我看来,这是一个路由问题,但我不知道从哪里开始查找。
答案1
如果您只有一个/64
前缀,并且该前缀位于 WAN 端,那么您就无法为您的 LAN 实施 IPv6。ISP 应该为您提供多个/64
前缀,以便您可以/64
在每个 LAN 上放置一个单独的前缀。ISP 通常会为每个人(住宅和企业)提供一个前缀/48
(65536 /64
)。对于住宅客户,他们可能会提供前缀/56
(256 /64
)。这样,您就有足够的前缀来为您的网络编号,即使随着时间的推移它变得越来越复杂(物联网部署等)。
一些 ISP 仍然过于坚持 IPv4 思维,只给出一个/60
(16/64
秒) 左右的时间。虽然现在这可能已经足够了,但随着支持 IP 的设备变得越来越普遍,它会带来问题,而且您真的不希望客厅的照明和空调与儿童玩具位于同一子网中,对吧?;)
仅提供单个地址的 ISP/64
会阻止您进行任何子网划分。如果是在 WAN 接口上,那么您的 LAN 上将永远无法获得合适的 IPv6。这是 ISP 的错,他们应该通过提供足够数量的(或)地址/64
来解决这个问题。/48
/56
答案2
您的 LAN 中也需要有前缀。您可以使用 DHCPv6 前缀委派。这样,您在 WAN 接口上获得的前缀将被委派到内部。路由器必须能够处理这一点。
但我觉得很奇怪,你只得到一个 /64 - 至少应该是 /56 左右。然而,不要划分子网/64!无论别人怎么说,像 SLAAC 这样的机制都会破坏你的子网划分。