[TL]用iptables桥接两个网卡

422 views
Skip to first unread message

lianghu xu

unread,
May 10, 2012, 5:51:29 AM5/10/12
to pon...@googlegroups.com
linux中如何用iptables实现 net/bridge模块实现的基本功能?

例如,

PC1---------eth1-LinuxBOX-eth2-----------PC2

这个linuxBOX有两网卡, 网卡eth1和PC1在一个子网 (192.168.1.x), 网卡eth2和PC2在另一个子网(192.168.2.x)

如何在linuxBox用iptables规则来实现PC1和PC2的通信? 比如TCP或者UDP。



lianghu xu

unread,
May 10, 2012, 6:07:51 AM5/10/12
to pon...@googlegroups.com
发成功了吗?怎么我自己没有收到?

2012/5/10 lianghu xu <liang...@gmail.com>

Ronald Liu

unread,
May 10, 2012, 8:17:02 AM5/10/12
to pon...@googlegroups.com
不在一个子网里就不需要配置iptables啊,直接添加route就可以了

lianghu xu

unread,
May 10, 2012, 8:19:17 AM5/10/12
to pon...@googlegroups.com
你指的是硬件route?还是?
希望通过在linuxbox中做些配置来达到。

2012/5/10 Ronald Liu <lzs...@gmail.com>

Ronald Liu

unread,
May 10, 2012, 8:23:44 AM5/10/12
to pon...@googlegroups.com
就用route命令配置
你现在route的返回是什么?

lianghu xu

unread,
May 10, 2012, 8:41:41 AM5/10/12
to pon...@googlegroups.com
$ip route
or
$route

will let you know tomorrow on when I have access to my machine in lab.

2012/5/10 Ronald Liu <lzs...@gmail.com>

Ronald Liu

unread,
May 10, 2012, 8:48:30 AM5/10/12
to pon...@googlegroups.com
#route

lianghu xu

unread,
May 10, 2012, 10:00:47 PM5/10/12
to pon...@googlegroups.com
It's empty. 

Need to add some routing table items?

Thanks.

2012/5/10 Ronald Liu <lzs...@gmail.com>

Ronald Liu

unread,
May 11, 2012, 9:58:29 AM5/11/12
to pon...@googlegroups.com
什么都没有不对啊,IP地址配了没?
先把eth1配成192.168.1.1/24,eth2为192.168.2.1/24,PC1的默认网关设成192.168.1.1,PC2设成192.168.2.1,应该就可以了。如果不行再手动添加route项。
#route add -net 192.168.1.0 netmask 255.255.255.0 eth1
#route add -net 192.168.2.0 netmask 255.255.255.0 eth2

TLightSky

unread,
May 16, 2012, 3:28:50 AM5/16/12
to pon...@googlegroups.com
好像还应该接受这两个端口的转发消息:
iptables -I FORWARD -i eth1 -j ACCEPT 
iptables -I FORWARD -i eth2 -j ACCEPT 
2012/5/11 Ronald Liu <lzs...@gmail.com>



--
会当凌绝顶,一览众山小

Daniel Qian

unread,
Jul 2, 2012, 1:09:54 AM7/2/12
to pon...@googlegroups.com
不知道怎么用Iptables实现桥接功能,但是可以用bridge-utils来做,可以看这篇wiki:
https://help.ubuntu.com/10.04/serverguide/network-configuration.html
参见里面的Bridging部分。
--



Daniel Qian - A Fat Cat Who Can Jump Wall

Eric Chen

unread,
Jul 2, 2012, 3:06:16 AM7/2/12
to pon...@googlegroups.com
linuxBOX上开启转发功能。


pc1网段想跟pc2网段通信 
在pc1上将 192.168.2.0/24的route指向 linuxBOX的eth1的ip
在pc2上将 192.168.1.0/24的route指向 linuxBOX的eth2的ip
 

Patrol Sun

unread,
Jul 16, 2012, 12:44:07 AM7/16/12
to pon...@googlegroups.com
iptables就可以了
具体的例子如下:
#192.168.75.24 NAT START
#192.168.75.24 CLIENT START
-A PREROUTING -i eth0 -p tcp --dport 30151 -j DNAT --to-destination 192.168.60.15:1521
-A PREROUTING -i eth0 -p tcp --dport 30152 -j DNAT --to-destination 192.168.60.16:1521
-A POSTROUTING -s 192.168.75.24 -o eth0 -p tcp --dport 1521 -j SNAT --to-source 192.168.75.26:20000-30000
-A POSTROUTING -s 192.168.75.24 -o eth0 -p tcp --dport 1521 -j SNAT --to-source 192.168.75.26:20000-30000
#192.168.75.24 CLIENT END
#192.168.75.24 NAT END

#192.168.75.24 NAT START
#192.168.75.24 SERVER START
-A PREROUTING -p tcp -i eth0 --dport 40005 -j DNAT --to-destination 192.168.75.24:8001
-A PREROUTING -p tcp -i eth0 --dport 40006 -j DNAT --to-destination 192.168.75.24:8002
-A PREROUTING -p tcp -i eth0 --dport 40009 -j DNAT --to-destination 192.168.75.24:9001
-A POSTROUTING -p tcp -o eth0 -s 192.168.75.24 --sport 8002 -j SNAT --to-source 192.168.75.26:20000-30000
-A POSTROUTING -p tcp -o eth0 -s 192.168.75.24 --sport 8001 -j SNAT --to-source 192.168.75.26:20000-30000
-A POSTROUTING -p tcp -o eth0 -s 192.168.75.24 --sport 9001 -j SNAT --to-source 192.168.75.26:20000-30000
#192.168.75.24 SERVER END
#192.168.75.24 NAT END


#192.168.75.24 FORWARD START
#192.168.75.24 CLIENT START
-A FORWARD -s 192.168.75.24 -p tcp -m tcp --dport 1521 -j ACCEPT
#192.168.75.24 CLIENT END
#192.168.75.24 SERVER START
-A FORWARD -s 192.168.75.24 -p tcp -m tcp --sport 22 -j ACCEPT
-A FORWARD -s 192.168.75.24 -p tcp -m tcp --sport 8001 -j ACCEPT
-A FORWARD -s 192.168.75.24 -p tcp -m tcp --sport 8002 -j ACCEPT
-A FORWARD -s 192.168.75.24 -p tcp -m tcp --sport 9001 -j ACCEPT
#192.168.75.24 SERVER END
#192.168.75.24 FORWARD END

实现功能分2种
1、75.24作为客户端,实际需要访问60.15:1521和60.16:1521,iptables转发后访问75.23的30151和30152端口即可
2、75.24作为服务端,实际提供服务端口为192.168.75.24:8001、8002和9001,实际外面访问75.26的40005、40006和40009端口即可,最终可以访问防火墙的公网地址了。
ps:我这边因为只有75.23一个网卡端口,后来alias一个75.26端口,防火墙把75.26按ip映射到外面了。


在 2012年5月10日 下午5:51,lianghu xu <liang...@gmail.com>写道:
Reply all
Reply to author
Forward
0 new messages