红联Linux门户
Linux帮助

Linux NAT Router桥作为WAN,桥下接口作为LAN如何使用

发布时间:2015-09-21 22:04:38来源:linux网站作者:中下游国外我

环境:

Linux NAT Router桥作为WAN,桥下接口作为LAN如何使用

为了保证LAN-PC可以连接WAN-PC;需要做如下工作:


1、让LAN-PC可以访问到NAT-Router的LAN口。

分析:因为该接口的IP是作为LAN-PC的默认网关地址,当LAN-PC去访问其他网段地址时,查询的数据包会转发到其网关地址,然后由网关对其进行转发。

问题:由于物理接口eth1是桥接到br0下的,当数据包进入NAT-Router设备时,会进入ebtables模块进行bridge处理,此时eth1的IP对于该数据包来说是透明的,因为此时ebtables模块是使用bridge的IP地址处理,由于br0的IP地址192.168.1.1和192.168.10.1不在同一个网段,这时将数据包会被转发到其他接口,导致本地设备无法响应该ARP请求。

所以,解决问题的关键是让到达网关的ARP请求能够上到本地设备中。

解决方案:

在NAT-Router的BROUTING表中,需要将去往NAT-Router LAN口的ARP包(目的IP为192.168.10.1)转入本地处理,否则该类型的ARP表将被桥转发(因为桥的IP为192.168.1.0/24网段)。

规则:ebtables -t broute-I BROUTING -i eth1 -p ARP --arp-ip-dst 192.168.10.1/32 -j DROP

注:在BROUTING中执行DROP操作,该数据包会转入本地网络层处理,这样就能够被当前设备识别到eth1接口就是该目标地址,NAT-Router就会进行ARP响应。


2、在iptables的NAT表POSTROUTING chain中添加NAT规则:

iptables -t nat -I POSTROUTING -s 192.168.10.0/24 -d 192.168.1.0/24 -j MASQUERADE


3、配置完成,在LAN-PC 执行ping 192.168.1.100的命令时就可以ping通了。


Linux网络命令之route:http://www.linuxdiyf.com/linux/3388.html