免费注册 查看新帖 |

Chinaunix

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

请教大虾关于IP碎片通过包过滤防火墙的问题。希望斑竹置顶。谢谢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-28 15:42 |只看该作者 |倒序浏览
争对IP碎片,通常的理解是将一个过大的UDP或者ICMP包(大于1472),在通过IP层传递到数据链路层的时候,因为大于MTU,比如以太网的1500(这个1500是IP首部加UDP首部在加数据的总大小),从而在IP层上将上层传来的数据分成N份,每份分别封装在一个IP头中进行传递。这时有多个IP数据包承载一个UDP或者ICMP的数据报,这些IP包拥有相同的标识数字,并且除了最后一个分片MF标志字段为0外其它的分片MF标志字段均为1。因为上层数据被分片,这时除了第一个分片的IP数据字段中包含了上层数据的信息(因为UDP或者ICMP头部只在第一个分片中),所以后续的分片就不在包含上层的信息。
抱歉说了这么多废话,这些是我对IP碎片的理解,也不晓得有没有错,如果有错误那我想不通就很正常了。  
以下是我的问题了。先构建一个网络路由:三台机子,A,B,C,其中B装RH8,充当路由器和包过滤防火墙,分别连接两个主机A,B,均安装2000,A的地址是192.168.0.1,B是192.168.1.1。环境按照我对IP碎片的理解,那么就有这么个问题。除了第一片的其它分片不包含上层信息,那么如果我刻意发送大的报文(比如从192.168.0.1 ping 192.168.1.1 -l 65535 ),那么这个报文将被分片,如果这些IP碎片在通过包过滤防火墙的时候,如果不设置允许IP碎片通过,(比如iptables -A FORWARD -p icmp --icmp-type 8 -s 192.168.0.1 -d 192.168.1.1 -j ACCEPT;iptables -A FORWARD -m -state --state ESTABLISHED,RELATED -j ACCEPT;iptables -P FORWARD DROP)那么就只有第一片能够通过,因为其包含了完整的上层信息,说明这个包是从192.168.0.1到192.168.1.1的icmp request包,即icmp类型8 ,而后续的包不包含这个信息,过应该被过滤。这时后通过的第一个包到到C,因为是分片的包,所以C将其缓存并等待后续的包,但后续的包以被过滤,所以当等待一段时间后,超时,这时候C会将包丢弃,故A不会得到C得响应,应该得到timed out的数据显示。
如果要让碎片能够通过,可以在iptables 中加上-f的选项,让后续包通过,这时应该得到响应。
以上是我根据理论推出的。但是实际试验中,我发现没有允许碎片的时候A依然可以得到C的响应,所以万分疑惑。希望各位大虾指点。小弟是网络的初学者,希望得到大家的帮助。

论坛徽章:
0
2 [报告]
发表于 2003-06-16 21:40 |只看该作者

请教大虾关于IP碎片通过包过滤防火墙的问题。希望斑竹置顶。谢谢

对不起,上面有点地方写错了
比如从192.168.0.1 ping 192.168.1.1 -l 65535
2000中最大是65500

论坛徽章:
0
3 [报告]
发表于 2003-06-16 21:45 |只看该作者

请教大虾关于IP碎片通过包过滤防火墙的问题。希望斑竹置顶。谢谢

发错了吧  是LINUX的

论坛徽章:
0
4 [报告]
发表于 2003-06-17 08:28 |只看该作者

请教大虾关于IP碎片通过包过滤防火墙的问题。希望斑竹置顶。谢谢

你的概念有错误,你说的是分段,分段后IP头每个包都相同,不会出现你说的情况。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP