用于使不同networking上的主机可访问的静态路由

我有一个ubuntu路由器机器,具有以下networking设置:

br0 192.168.1.15 netmask 255.255.255.0 br0:1 192.168.2.209 netmask 255.255.255.248 

我有一台连接到br0:1networking的电脑,具有以下设置:

 ip 192.168.2.210 netmask 255.255.255.248 gateway 192.168.2.209 

这台电脑应该能够访问在Ubuntu路由器的br0networking上的主机192.168.1.1

192.168.1.1是WAN网关,那么如何才能使它成为192.168.2.208/29networking上主机的网关。

我在ubuntu路由器上启用了ip4转发。

首先确保192.168.2.209192.168.2.209的默认网关,Ubuntu路由器允许来自主机的stream量。 在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 

那么你有两个select。 您可以在Ubuntu路由器上SNAT转发stream量,以便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 

这告诉它如何将数据包路由回该networking。 当然,如果网关正在过滤,那么你也必须为192.168.2.209/29networking添加过滤规则:

 iptables -I FORWARD -s 192.168.2.210 -j ACCEPT iptables -t nat -I POSTROUTING -s 192.168.2.210 -j MASQUERADE 

当然这些最后的规则可以通过更多的信息来改进。