我们公司刚刚获得了 IPv6 /48 范围(网关和 IP 地址),但我不确定如何设置它。我们使用 FreeBSD 8.4(pfSense 2.1)作为路由器/防火墙。
目前,我们已设置 IPv4,其 WAN 通向互联网,其后面还有用于办公室 PC 的 NAT-ed LAN。
我们希望保留 LAN 网络以确保安全,并且希望所有办公室 PC 都拥有 /48 的 IPv6 地址(不带 NAT)。
WAN 配置为 IPv6 网关 1111:2222:3333::1/48 和接口地址 1111:2222:3333::2/48。但是当以这种方式配置时,我猜不可能在 /48 内的 /64 上安装 LAN?
我认为我应该将 WAN 子网配置在 1111:2222:3333:1::/64 上,将 LAN 配置在 1111:2222:3333:2::/64 这样的子网上。我可以自己配置吗,还是必须让 ISP 帮我配置路由?
当前测试设置:
- WAN 网关 1111:2222:3333::1/48
- WAN 接口 (em3) 1111:2222:3333::2/64
- LAN 接口(em1)1111:2222:3333:1::1/64
- 在 LAN 1111:2222:3333:1::abcd/64 上测试客户端
netstat -r 显示:
Destination Gateway Flags Netif Expire
default 1111:2222:3333::1 UGS em3
localhost localhost UH lo0
1111:2222:3333:: link#4 U em3
1111:2222:3333::2 link#4 UHS lo0
1111:2222:3333:1:: link#2 U em1
1111:2222:3333:1::1 link#2 UHS lo0
我可以从路由器 ping 通 WAN 网关。从测试客户端,我可以 ping 通 LAN 和 WAN 接口,但是不是WAN 网关。
如果我尝试添加一条明确的路线,我会收到错误:
$ route add -inet6 -net 1111:2222:3333:1::/64 1111:2222:3333::2
route: writing to routing socket: File exists
add net 1111:2222:3333:1::/64: gateway 1111:2222:3333::2: route already in table
答案1
您的想法是正确的,您需要询问您的 ISP 他们到底为您路由了什么。
通常,如果您获取了地址子网,则边缘路由器的 WAN 地址将位于较小的分配链接网络 /64 上,因此您在 LAN 侧接口上拥有较大的 /48,而不会为了与您的 ISP 通信而丢失任何网络,然后您可以根据需要对较小的网络进行子网划分,并且 ISP 将始终将流量发送到边缘路由器的 WAN 接口。
答案2
/48 内有许多 /64。使用第一个 /64(网关所在的那个)作为点对点子网(在 IPv4 环境中,这将是您用于与中央办公室建立 ppp 连接的 /30)。
您可以从下一个 /64 (1::/64) 开始为您的 LAN 分配子网
如果他们为您分配了该 /48,则他们已经设置了静态路由,将所有流量引向您的管道。
实例:
我的 WAN IPv6 网关(通过 wan0 与其通信)是2001:470:1f0a:314::1/64
我的 WAN IPv6 是2001:470:1f0a:314::2/64
(下一个 IP,分配给 wan0)
确保您的路由器上为 wan0 设置了默认路由。
如果在此之后,您的路由器可以连接,则说明您的 WAN 工作正常。如果没有,您必须与您的 ISP 一起修复它,这与您的 LAN 上的路由等无关。
我的 LAN 子网是2001:470:1f0b:314::/64
2001:470:1f0b:314::1
只需在路由器上配置为您的 eth0 IP。
分配2001:470:1f0b:314::2
到与 eth0 位于同一局域网上的一台 PC,并在该 PC 上将2001:470:1f0b:314::1
(您的路由器地址)设置为您的默认网关。
如果您没有任何 iptables 规则来阻止此类流量,您的边界路由器(我们假设它是一个 Linux 机器)将简单地将任何传入的数据包从2001:470:1f0b:314::/64
wan0 路由到 eth0,因为这是一个直接连接的网络,因此路由表已经“知道”它。
在 eth0 上,如果路由器知道最终目的地(理论上是从互联网 ping 的办公室电脑)的 MAC 地址,它会直接将其发送到那里。否则,它会发出 arp 请求,询问“谁有这个地址?”,如果目标电脑在线且正确配置了此地址,并设置了默认网关,它会回答建立通信。
请记住,有关 IPv4 的大多数常识也适用于 IPv6。不要假设事情总是以不同的方式运作 :P
编辑#2:
我的回答给出了许多假设。请记住,您不需要明确声明直接连接的网络。您是否已将 LAN 子网的 IP 分配给路由器?您是否将该 IP 作为您正在测试的 LAN 计算机上的默认网关?
我想我也陷入了“过于复杂的 ipv6”陷阱 :P
编辑#3:
如果我们谈论的是直接连接,那么这部分就大错特错了。忽略它。
只需将最后一个子网的路由添加到 eth0 即可,如下所示
route -A inet6 add 2001:470:1f0b:314::/64 eth0.