我正在运行 Ubuntu 18.04 的带有 4 Gbit 接口的 Protectli 设备上设置新的防火墙/路由器。Comcast (xfinity) 将 /64 ipv6 委托给我,并且在 Linksys 路由器上设置子网并将 ipv6 设置为“直通”,效果很好。所以我知道 ipv6 可以成功地从 xfinity 盒路由(或至少“直通”)到子网。
我的设置详细信息:
在 Proctectli 上,我通过硬线将 enp1 作为 WAN 直接连接到 xfinity 调制解调器,静态 IP 为 10.0.0.20。Xfinity LAN 为 10.0.0.0/24,网关为 10.0.0.1。
Protectli 上的 enp2 创建了一个运行 isc-dhcp-server 的 LAN,其静态地址为 192.168.19.1,网关 enp1 为 10.0.0.20。(我通过 GUI 设置了所有这些,而不是在/etc/network/interfaces
. 中)/etc/dhcp/dhcpd.conf
将 LAN 上的 DHCP 范围设置为 192.168.19.100 - 192.168.19.120。是的,我已将其设置为权威 dhcp 服务器。
我/etc/sysctl.conf
已启用 ipv4 和 ipv6 转发:
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
iptables 和 ip6tables 规则都使用默认的 ACCEPT 策略,我添加的唯一规则是:
iptables -t nat -A POSTROUTING -o enp1 -j MASQUERADE
.... 允许从 * 转发到 WAN (enp1) 以进行 ipv4 转发。似乎不需要任何 FORWARD 规则即可让 ipv4 在任何地方正常工作。
将 ipv6 设置为(再次使用 GUI 网络管理器)“自动”或“手动”(使用静态 ipv6 地址),ipv6 在 Protectli 上直接工作时效果很好。我能够ping6 ipv6.google.com
,并且只有 ipv6 的网站工作正常。我还可以ping6
通过 enp1 从 Protectli 访问 xfinity 盒子的本地链接网关(显然)。
连接到 LAN (enp2) 的工作站设置为 DHCP 以使用 ipv4,成功获得地址,并且 ipv4 运行良好,因此我知道防火墙至少对 ipv4 做了正确的事情。在 192.168.19.100 - 192.168.19.120 范围之外的 LAN 工作站上设置的静态 ipv4 地址也可以正常工作。
问题:
连接到 Protectli LAN 的工作站上的 ipv6 似乎根本不起作用,使用自动或静态寻址。连接到 LAN 并使用静态或自动 ipv6 寻址的工作站确实会获得 /64 链路本地和全局(临时和动态)地址。我已/etc/radvd.conf
按如下方式配置:
interface enp2 {
AdvSendAdvert on;
MinRtrAdvInterval 3;
MaxRtrAdvInterval 10;
prefix 2601:xxxx:yyyy:zzzz::/64 {
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
RDNSS 2606:4700:4700::1111 2606:4700:4700::1001 {
AdvRDNSSLifetime 10;
};
};
我可以ping6
从连接的工作站顺利访问本地链路 LAN 接口(enp2 at fe80::ea71:672a:4c0e:abe0)。但我无法访问ping6
WAN(enp1)本地链路地址、xfinity 本地链路网关(fe80::250:f1ff:fe80:0)或外部世界的任何内容。我也无法从 LAN 上的任何工作站 ping 任何全局 ipv6 地址。ping6 成功将 ipv6.google.com 解析为 LAN 连接的工作站上的 2607:f8b0:400f:800::200e,但 ping 无法到达 enp1 或 xfinity 网关。
所以……显然,我似乎在 LAN 和 WAN 接口之间遇到了防火墙(转发?)问题,或者……遇到了路由问题。
无论如何,我并不是路由方面的高手。开启“自动路由”后... Protectli 设备上的路由表如下所示:
$ netstat -rnA inet6
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
::1/128 :: U 256 1 0 lo
2601:xxxx:yyyy:zzzz::/64 :: U 101 1 0 enp2
2601:xxxx:yyyy:zzzz::/64 :: U 102 1 0 enp1
fe80::/64 :: U 101 2 3 enp2
fe80::/64 :: U 102 2 5 enp1
fe80::/64 :: U 256 1 0 enp2
fe80::/64 :: U 256 1 0 enp1
::/0 fe80::250:f1ff:fe80:0 UG 102 5 8 enp1
::1/128 :: Un 0 6 25 lo
2601:xxxx:yyyy:zzzz:1ee8:9921:3378:3ceb/128 :: Un 0 2 0 enp1
2601:xxxx:yyyy:zzzz:94ab:aa93:d2b5:2476/128 :: Un 0 2 0 enp2
2601:xxxx:yyyy:zzzz:ecd0:c2f2:6cab:a803/128 :: Un 0 2 0 enp2
2601:xxxx:yyyy:zzzz:edf6:56d5:38ca:47f7/128 :: Un 0 3 18 enp1
fe80::39a3:6838:eda7:2fa0/128 :: Un 0 3 17 enp1
fe80::ea71:672a:4c0e:abe0/128 :: Un 0 5 12 enp2
ff00::/8 :: U 256 5 615 enp2
ff00::/8 :: U 256 5 612 enp1
::/0 :: !n -1 1 1 lo
$
我曾尝试为 enp1 向 xfinity 网关添加全局 gw 路由,但没有效果:
$ route -A inet6 add default gw 2601:xxxx:yyyy:zzzz:250:f1ff:fe80:0 enp1
... 我也尝试向 enp1 添加链接本地 gw,但没有效果:
$ sudo ip -6 route add 2601:xxxx:yyyy:zzzz::/64 via fe80::39a3:6838:eda7:2fa0 dev enp2
... 或来自 ANY /64,没有效果:
$ sudo ip -6 route add ::/64 via fe80::39a3:6838:eda7:2fa0 dev enp2
所以...抱歉发了这么长的帖子。如果有人能给我一些有关防火墙规则或更好的路由策略的提示,我将不胜感激!
20190125 编辑 - @ Michael Hampton - xfinity 调制解调器是 Cisco DPC3941T。