免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 3513 | 回复: 20
打印 上一主题 下一主题

iptables多次修改后出现问题,请教各位大侠! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-30 15:09 |只看该作者 |倒序浏览
本人在一系统上装精简linux,内核2。6。11, iptables版本1.3.3.
系统双网卡,eth0接外网,eth1接lan. 使用iptables做DNAT时发现如下问题:
用iptables -t nat -A PREROUTING -s RemoteIP -j DNAT --to LANIP引导外部Remoteip的包跳转到内网指定的一台PC上。
开始是正常的,但如果将这条规则修改几次后,或者将LANIP修改为一各内网不存在的地址,然后再改回就可能出现修改无法生效的问题。iptables可能一直处于某中工作状态,任何修改都不再生效。
因为系统上已经没有service iptables 命令,出现问题后用iptables-save和iptables-restore都没有用。所以只能让系统重启后iptables才能正常工作。
希望各位大侠给点意见!多谢了!

论坛徽章:
0
2 [报告]
发表于 2005-11-30 19:39 |只看该作者
原帖由 youngy411 于 2005-11-30 15:09 发表
本人在一系统上装精简linux,内核2。6。11, iptables版本1.3.3.
系统双网卡,eth0接外网,eth1接lan. 使用iptables做DNAT时发现如下问题:
用iptables -t nat -A PREROUTING -s RemoteIP -j DNAT --to LANIP引导 ...


RemoteIP就是你的外网卡的IP吗?如果是外网卡的地址,那应该是-d RemoteIP,我没搞太明白,枉言了。

论坛徽章:
0
3 [报告]
发表于 2005-11-30 20:07 |只看该作者

回复 1楼 youngy411 的帖子

谢谢关注!
remoteip 是指外部的一个IP,不是wan口IP. 我这里的例子中是让某个外网地址访问wan口的数据流导到内网一台电脑上。

论坛徽章:
0
4 [报告]
发表于 2005-11-30 20:47 |只看该作者
最好将所有脚本全列出来,是不是由于其它forword链滤掉了。

论坛徽章:
0
5 [报告]
发表于 2005-11-30 23:20 |只看该作者
原帖由 youngy411 于 2005-11-30 15:09 发表
开始是正常的,但如果将这条规则修改几次后,或者将LANIP修改为一各内网不存在的地址,然后再改回就可能出现修改无法生效的问题。iptables可能一直处于某中工作状态,任何修改都不再生效。

不可能,绝对是你的逻辑问题
当你怀疑出现问题的时候,不妨 iptables -t <table name> -vnL 或者 iptables-save 看看结果,那样你就明白了

论坛徽章:
0
6 [报告]
发表于 2005-12-01 10:56 |只看该作者

回复 1楼 youngy411 的帖子

我的设置应该没错,这是我更改了/etc/sysconfig/iptables的内容,跟用iptalbes -t nat -nvL看到的nat设置是一样的。
# Generated by iptables-save v1.3.3 on Thu Dec  1 03:36:38 2005
*nat
:PREROUTING ACCEPT [1270:98081]
:POSTROUTING ACCEPT [151:10612]
:OUTPUT ACCEPT [7:556]
-A PREROUTING -s 10.5.0.33 -d 10.5.0.69 -i eth0 -p icmp -j DNAT --to-destination 192.168.1.21
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Thu Dec  1 03:36:38 2005
# Generated by iptables-save v1.3.3 on Thu Dec  1 03:36:38 2005
*filter
:DOMAINCHAIN - [0:0]
:INPUT ACCEPT [1506:149937]
:FORWARD ACCEPT [2504:174156]
:IPCHAIN - [0:0]
:MACCHAIN - [0:0]
:OUTPUT ACCEPT [1451:472571]
-A FORWARD -j IPCHAIN
-A IPCHAIN -j MACCHAIN
COMMIT
# Completed on Thu Dec  1 03:36:38 2005

这两天做了一些实验,感觉问题可能出在我更改了一条指向不存在的地址的规则后(如上例中将192。168。1。21改为192。168。1。222),系统某处的转发的规则没有马上调整过来,因为我一直在通过10。5。0。33(remoteip)向10。5。0。69(系统wan口ip地址)ping包,所以转发规则也就一直没有转变,导致后面的更改没有生效,今天刚刚试了几次修改规则后不ping包,过一段时间后发现规则的确恢复正常了!

[ 本帖最后由 youngy411 于 2005-12-2 15:46 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2005-12-01 12:36 |只看该作者
-A PREROUTING -s 10.5.0.33 -d 10.5.0.69 -i eth0 -p icmp -j DNAT --to-destination 192.168.1.21

这是什么意思?

论坛徽章:
0
8 [报告]
发表于 2005-12-01 13:28 |只看该作者

回复 1楼 youngy411 的帖子

这是把从10。5。0。33到10。5。0。69的ping包转发到内网192。168。1。21的pc上
××××××××××××
-A PREROUTING -s 10.5.0.33 -d 10.5.0.69 -i eth0 -p icmp -j DNAT --to-destination 192.168.1.21

这是什么意思?

论坛徽章:
0
9 [报告]
发表于 2005-12-01 20:00 |只看该作者
试问,-s 10.5.0.33 -d 10.5.0.69 这样的包会经过你这个 Linux 吗 :wink:

论坛徽章:
0
10 [报告]
发表于 2005-12-02 09:26 |只看该作者

回复 1楼 youngy411 的帖子

linux的wan口地址为10。5。0。69, lan口为192。168。1。1, 192。168。1。21的PC连在linux的lan口。
如果没有这条规则,ping包在linux上终结,如果有了这条规则,pc 21上就会收到10。5。0。33来的ping包。问题是我修改了这条规则之后会出现问题,如果我让33pc一直发ping包,就会发现ping包一直不再能到达lan内的21 PC(即使我将规则修改成跟上述初始状态一样,iptables-save /-restore都用过),也可能在21 pc上一直能收到10。5。0。33来的ping包,即使我已经将转发规则清空。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP