我有一台 ubuntu 路由器,其网络设置如下:
br0 192.168.1.15 netmask 255.255.255.0
br0:1 192.168.2.209 netmask 255.255.255.248
我有一台连接到br0:1
网络的电脑,其设置如下:
ip 192.168.2.210 netmask 255.255.255.248 gateway 192.168.2.209
这台电脑应该能够访问192.168.1.1
位于 ubuntu 路由器 br0 网络上的主机。
192.168.1.1
是 WAN 网关,那么如何使其成为192.168.2.208/29
网络主机的网关。
我已经在 ubuntu 路由器上启用了 ip4 转发。
答案1
首先确保192.168.2.209
是默认网关,192.168.2.210
并且 Ubuntu 路由器允许来自主机的流量。开启192.168.2.210
:
route add default gw 192.168.2.209
在 Ubuntu 路由器上:
iptables -I FORWARD -i br0:1 -s 192.168.2.210 -j ACCEPT
然后你有两个选择。你可以在 Ubuntu 路由器上对转发的流量进行 SNAT,这样 192.168.1.1 就会将其视为属于路由器,并且知道如何返回它:
iptables -t nat -I POSTROUTING -s 192.168.2.210 -j SNAT --to 192.168.1.15
或者您可以在网关上添加以下路由192.168.1.1
,假设它也是一台 Linux 主机:
route add -net 192.168.2.209/29 gw 192.168.1.15
它告诉它如何将数据包路由回该网络。当然,如果网关正在过滤,您还必须为网络添加过滤规则192.168.2.209/29
:
iptables -I FORWARD -s 192.168.2.210 -j ACCEPT
iptables -t nat -I POSTROUTING -s 192.168.2.210 -j MASQUERADE
当然,这些最后的规则可以通过提供更多的信息来改进。