在我们的网络中,我们有一个 Cisco 路由器作为核心路由器,将我们所有的站点连接到主站点。我们还有一个 Linux 防火墙将我们连接到互联网。
Site 1 --\
+-------+ LAN +----------------+
Site 2 --| Cisco |---------| Linux Firewall | ------ Internet
+-------+ | +----------------+
Site 3 --/ |
wksta
Cisco 与防火墙之间的 LAN 有(例如,不是实际的)2001:DB8::/64
,其余部分2001:DB8::/48
分布在其他站点之间。
目前,Cisco 路由器正在2001:DB8::/64
LAN 上进行广告宣传,而 Linux 防火墙没有进行任何广告宣传。因此,Cisco 将自己宣传为默认网关,并wksta
首先将任何 Internet 绑定流量发送到 Cisco 路由器,然后由 Cisco 路由器重定向到防火墙。
有没有更好的方法?我希望能够向2001:DB8::/48
应该指向 Cisco 路由器的 LAN 进行通告,但默认网关应该是 Linux 防火墙。使用无状态自动配置可以实现这一点吗?
思科路由器的当前接口配置:
interface FastEthernet0/0
ipv6 address 2001:DB8::1/64
ipv6 enable
!
答案1
我认为仅通过路由器广告是无法做到这一点的。
我的理解是您需要以下设置:
2001:DB8::/48 via cisco
default via linux
问题是路由器通告不允许您指定静态路由。它们只是告诉所有主机本地网络上有哪些子网可用(这意味着可以直接访问它们,而无需网关)。您的远程站点不在本地网络上,因此无法直接访问它们,因此路由器通告不会有帮助。
您可以通过在所有本地机器上添加静态路由来实现这一点,但这很快就会变得烦人。
我建议禁用 Cisco 设备上的路由器广告,并在 Linux 机器上配置它们。然后,在 Linux 机器上通过 Cisco 设备为 2001:DB8::/48 添加静态路由。
您的内部流量仍会首先访问 Linux 机器,但您无法仅通过路由器通告来避免这种情况。
你可能能够使用某种 IPv6 邻居代理来实现这一点(这会使所有远程主机看起来都与您的工作站位于同一局域网上),但除非您真的别无选择,否则我不建议这样做。
答案2
Linux 防火墙应宣布自己是路由器生命周期 > 0 的默认网关。如果 cisco 路由器仍将其作为默认网关进行宣传,请尝试将防火墙上 radvd.conf 中的 AdvDefaultPreference 参数设置为 High。然后,共享 LAN 段上的客户端应自动选择 Linux 防火墙作为默认网关。