我有两个网络,我想用路由器/防火墙连接它们,以过滤两者之间的流量。一个网络位于公共子网上,64.22.12.192/27
另一个网络位于私有子网上192.168.0.0/24
。它们通过具有三个以太网端口的路由器连接,一个连接到互联网,另外两个连接到公共子网和私有子网,并且位于自己的 VLAN 上。如何使私有子网对公共网络可见?以下是网络图:
- Router1 >eth0 --- 连接到互联网
- Router1 >eth1 --- 64.22.12.193/27 连接到 VLAN 64 子网 64.22.12.193/27
- Router1 >eth3 --- 192.168.0.1/24 连接到 VLAN 192 子网 192.168.0.0/24
我尝试在路由器上192.168.0.0/24
进行静态路由,也尝试将其路由到。 都没有用。64.22.12.193
192.168.0.1
我希望两个子网之间的流量通过路由器,因为我希望能够在子网之间的路由器上设置防火墙规则。
我尝试了静态路由但无法使其工作,我做错了什么吗?
我知道我可以使用 NATing,但是为了访问单个私有 IP 机器,我必须设置一对一 NAT,这会占用我宝贵的有限公共 IP
我是否必须设置隧道才能实现此目的?隧道不会绕过防火墙规则吗?
IP路由显示:
default via 66.22.32.137 dev eth0 proto zebra
192.168.0.0/24 dev eth3 proto kernel scope link src 192.168.0.1
64.22.12.192/27 dev eth1 proto kernel scope link src 64.22.12.193
66.22.32.136/29 dev eth0 proto kernel scope link src 66.22.32.141
127.0.0.0/8 dev lo proto kernel scope link src 127.0.0.1
答案1
我尝试了静态路由,但无法正常工作
您不需要静态路由,您的系统已经拥有所需的所有路由。Linux 会自动为本地连接的每个网络配置路由。假设您已启用 ip_forward,并且当前没有防火墙规则阻止流量,那么一切都应该正常工作。
我是否必须设置一个隧道才能实现这一点?
不,您不需要任何隧道。
我知道我可以使用 NATing,但是为了访问单独的私有 IP 机器,
您不需要任何 NAT 规则。事实上,如果您已经有一个过于宽泛的 SNAT/MASQ 设置,那么这可能是您的问题。
假设所有客户端64.22.12.192/27
都192.168.0.0/24
使用你的 Linux 机器作为它们的默认网关,并且你没有设置任何 SNAT/MASQ 规则来更改从 eth3 -> eth1 通信的流量的源地址,那么就可以正常工作。