IPv6 的 WAN 和 LAN 设置

IPv6 的 WAN 和 LAN 设置

我们公司刚刚获得了 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::/64wan0 路由到 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.

相关内容