我有一个带有 3 个网卡的路由器(一个是全局的,两个是内部的),我想知道我是否在路由器中启用了 nat.ipv4.ip_forward = 1,那么子网 1 上的主机是否可以到达子网 2 上的主机?
如果是这样,我怎样才能禁止两个子网互相看到,但仍能到达全球互联网。
我正在使用Linux。
谢谢
答案1
通常是net.ipv4.ip_forward=1
在 中/etc/sysctl.conf
,启用它将允许路由器从任何网络路由到任何其他网络,除非有限制。
实现所需限制的最简单方法是使用iptables
FORWARD 规则。
例如,如果子网 1 的网络接口分别是子网 1eno1
和子网 2 eno2
,则可以在 FORWARD 规则集的最开头添加这两个 iptables 规则:
iptables -I FORWARD 1 -i eno1 -o eno2 -j DROP
iptables -I FORWARD 2 -i eno2 -o eno1 -j DROP
翻译:
- 转发数据包的规则#1:如果数据包传入
eno1
并且将通过 出去eno2
,则将其丢弃。 - 转发数据包的规则#2:如果数据包传入
eno2
并且将通过 出去eno1
,则将其丢弃。
由于您没有指定在路由器中使用的 Linux 发行版,因此将这些基本形式的iptables
规则集成到您可能拥有的任何高级防火墙管理工具(firewalld
、ufw
、许多其他工具)的问题必须留作练习。读者。