我如何设置一个iptables的IPv6 DMZ没有静态分配?

我在康卡斯特的住宅networking上有几个networking。 我需要通过其中一台主机上的SSH代理从各种环境访问这些networking。

(正如我使用的是OpenWRT,所以一个特定的解决scheme将是有帮助的,但我也一般好奇,如何使用任何基于Linux或BSD的边缘路由解决scheme。

对于IPv4,这是相对直接的:因为我的所有内部IP都是通过DHCP分配的,所以我可以简单地设置一个转发规则,将外部接口上的端口22移动到特定IP上的端口22。

由于我的IPv6地址都是用SLAAC分配的,所以我没有一个静态地址可以在ip6tables-land中用来转发。

如何检测前缀分配的更改,以便我可以build立新的iptables规则? 还是有办法build立一个规则,转发到一个特定的主机基于从其MAC地址或类似的东西发现其IP地址? (这些主机都在一个单一的网段,所以多播等应该工作。)

只要前缀是静态的,SLAAC分配的地址是静态的(临时地址除外),路由器知道前缀。

你有多种select:

  • 你可以打开22端口到所有的地址,然后你就可以通过SSH的所有主机。
  • 在路由器上configurationDHCP客户端以调用更改ip6tables规则的脚本。
  • 使用u32匹配匹配部分IP地址。
  • 如果路由器的内部接口是Linux软件桥接器,则使用ebtables,它可以匹配TCP端口和以太网地址。