iptables 允许主机隔离 VLAN

iptables 允许主机隔离 VLAN

我在尝试对网络进行“简单”调整时遇到了真正的麻烦。所以:

  • 有两个站点A和B,通过IPsec连接,它们之间的通信没有问题。
  • 每个站点有两个 VLAN,主 VLAN 和访客 VLAN:主 VLAN192.168.55.0/24用于 A 和192.168.88.0/24B,而访客则192.168.10.0/24同时用于两者。
  • VLAN 通过以下规则在每个路由器上隔离(A 的示例):

iptables -A forward -s 192.168.10.0/24 -d 192.168.55.0/24 -j DROP

现在的问题是:我想允许 A/guest 中的特定主机到达 B/main 中的特定主机。我怎么做?

我尝试过只输入 iptables -A forward -s 192.168.10.10 -d 192.168.55.55 -j ACCEPT,但它不起作用 - 我可以看到一些数据包,但连接不起作用(它是一个 SSL 为 443 的网络服务器)。我想我需要在 mangle/postrouting 链中添加一些东西?

谢谢

答案1

问题是两个访客网络共享相同的地址范围。如果只有一条forward规则,来自 A/guest 的数据包将到达 B/main 中的目的地,但返回的数据包将物理发送到 B/guest。

A因此,您需要位于此连接的路由器MASQUERADE,以便 B/main 处的主机将看到192.168.55.0/24源并知道如何返回返回数据包。当这样的数据包到达A处的路由器时,它会自动将目的地重写为原始访客主机,并相应地转发数据包。

这应该可以解决问题(应用于 site 的路由器A):

iptables -t nat -A POSTROUTING -s 192.168.10.10 -d 192.168.55.55 -j MASQUERADE

相关内容