Chinaunix

标题: 求助!IPtables 回流 问题。 [打印本页]

作者: crtjy    时间: 2010-03-16 11:57
标题: 求助!IPtables 回流 问题。
环境:
(借用一下别人的图图)
internet----router----------firewall----3L switch---2L switch---client
                                                         |
                                                         |
                                                     2L switch
                                                          |
                                                          |
                                                   www servers


一、ROUTER
1. 在router上做ARP地址绑定
     arp  219.143.**.1 0013.72fa.****  ARPA
     arp  219.143.**.2 0013.72fa.****  ARPA
     arp  219.143.**.3  0013.72fa.****  ARPA
     .....(略)

2. Router上的路由配置
    ip route 0.0.0.0 0.0.0.0 219.142.**.**(上级网关,这个不用管它)
    ip route 192.168.1.0 255.255.255.0 219.143.**.2
    ip route 192.168.2.0 255.255.255.0 219.143.**.2
    。。。略
    对内私网的路由,到我的firewall外网口219.143.**.2

二、Firewall
   外网口 219.143.**.2
     内网口 192.168.10.1

1.firewall路由
219.143.**.1    0.0.0.0         255.255.255.240     U     0      0        0 eth0
192.168.10.0     0.0.0.0         255.255.255.0       U      0      0        0 eth1
192.168.2.0       0.0.0.0         255.255.255.0       U      0      0        0 eth1
192.168.1.0       0.0.0.0         255.255.255.0       U      0      0        0 eth1
....略
0.0.0.0         219.143.**.4       0.0.0.0              UG      0      0        0 eth0

219.143.**.4 是路由器的内网口,Default gw。

1. 在Iptables上做DNAT
     nat表
     PREROUTING -d 219.143.**.3 -p tcp -m tcp -m multiport --dports 80,8080 -j DNAT --to-destination 192.168.1.100
     这样,外网访问IP 219.143.**.3可以直接访问到192.168.1.100这台机器上的80和8080端口;

现在问题是内网直接访问219.143.**.3,无法访问,.用私网地址可以,公网地址不行。

查了下资料,做如下测试:
1. 在nat表增加
   POSTROUTING -s 192.168.0.0/255.255.0.0 -d 192.168.1.100 -j SNAT --to-source 192.168.10.1
不管用。
   POSTROUTING -s 192.168.0.0/255.255.0.0 -d  219.143.**.3 -j SNAT --to-source 192.168.10.1
也不管用。
   PREROUTING -s 192.168.0.0/255.255.0.0 -d 219.143.**.3 -j DNAT --to-destination 192.168.1.100
也不管用。

在firewall内网口抓包,有数据过来,然后就不知道哪去了,也不传到外网口去,好像直接丢弃了。。。

刚看有网上说3层交换上还得做回流,我的映射又不是在路由器和交换机上做的,应该和它们没有关系吧。

   
作者: crtjy    时间: 2010-03-16 14:45
解决了。

规则没有问题
PREROUTING -s 192.168.0.0/255.255.0.0 -d 219.143.**.3 -j DNAT --to-destination 192.168.1.100
POSTROUTING -s 192.168.0.0/255.255.0.0 -d  219.143.**.3 -j SNAT --to-source 192.168.10.1

两条管用。

问题出在我的FORWORD是DROP的,只ACCEPT部分

嘿嘿,实在是太菜了。。。
作者: kns1024wh    时间: 2010-03-16 16:51
回复 1# crtjy


    设置DNAT一条就可以
   当时兼顾内部访问就需要多条
作者: alonefly    时间: 2010-03-16 22:29
靠,今天我也遇到这个问题~~~把规则看了N遍才发现是FORWARD DROP。。那个汗~~啊!!
最后还是FROWARD DROP,补了条iptables -A FORWARD -i eth1 -o eth1 -j ACCEPT (eth1是FW的内网接口)




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2