查看: 2846|回复: 11

数据包值过滤器中,掩码的含义

[复制链接]
发表于 2008-3-19 20:40:31 | 显示全部楼层 |阅读模式
为了不误人子弟,听Lvfengg的,本贴已删出。

对已经看了本贴的朋友说对不起了,现在才看到的朋友也对不起了。

[ 本帖最后由 hudeg632 于 2008-3-20 19:38 编辑 ]
回复

使用道具 举报

发表于 2008-3-20 11:46:08 | 显示全部楼层
楼主很用功,实在不想打击楼主,但是误人子弟就不好了……
这个东东有必要搞得这么复杂嘛,基本上只要理解IP网络掩码的,对应到这里就是一个意思。具体参考帖子:
http://www.csna.cn/forum.php?mod ... &extra=page%3D1
回复

使用道具 举报

 楼主| 发表于 2008-3-20 19:11:20 | 显示全部楼层
原帖由 lvfengg 于 2008-3-20 11:46 发表
楼主很用功,实在不想打击楼主,但是误人子弟就不好了……
这个东东有必要搞得这么复杂嘛,基本上只要理解IP网络掩码的,对应到这里就是一个意思。具体参考帖子:
http://www.csna.cn/forum.php?mod=viewthread&tid=8031&ext ...


谢谢Lvfengg兄的提示,不存在什么打击不打击的,只是想搞清楚而以,为了不误人子弟,听你的删去了。

请教Lvfengg兄,当数值和掩码只有一位时,数值=0,掩码=0的意义?

[ 本帖最后由 hudeg632 于 2008-3-20 19:28 编辑 ]
回复

使用道具 举报

发表于 2008-3-20 20:52:49 | 显示全部楼层
掩码=0的时候,无意义啊!
Mask存在的意义就是:和value进行“与”操作,如果Mask为全“0”,不论value为多少,结果必然全“0",这个结果是没有意义的,记住,你不能以此为依据要求报文在该offset位置也为”0“——因为你提供的value没有意义。

我解释清楚了没?
回复

使用道具 举报

发表于 2008-3-20 21:22:24 | 显示全部楼层
论坛本身就是大家交流的地方,有交流,才会进步,既然是交流,当然就允许有错误了。
支持楼主。
回复

使用道具 举报

 楼主| 发表于 2008-3-20 22:29:31 | 显示全部楼层
原帖由 lvfengg 于 2008-3-20 20:52 发表
掩码=0的时候,无意义啊!
Mask存在的意义就是:和value进行“与”操作,如果Mask为全“0”,不论value为多少,结果必然全“0",这个结果是没有意义的,记住,你不能以此为依据要求报文在该offset位置也为”0“—— ...

给你看一个大师级人物写防火墙规则图。

数据和掩码作“与”运算决定最后的数据对吗?数值2掩码3结果等不等于数值3掩码2的结果?如果不等于,真想知道各自的意义?

有劳Lvfengg兄,谢谢先。

[ 本帖最后由 hudeg632 于 2008-3-20 23:24 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×
回复

使用道具 举报

发表于 2008-3-21 07:45:11 | 显示全部楼层
代码由人写,不同的软件,作者不同,当然可能制定不同的规则,这与大师没有多大关系。
比如掩码与value进行与操作,这个,在ixia的trigger捕获中,规矩就倒过来了,变成了掩码为异或操作,所以掩码通常是全0。
所以,看楼主的贴图,是防火墙的,在这里是没有可比性的。

另外,我说的规则是针对通常情况下的,比较流行的规则。看到lz对一个问题这么严谨的态度,我也深感自己语气的不妥,专么下载了科来软件,研究了下(我基本不用科来的,工作需要,它却没有扩展可能,只有放弃),发现他的掩码规则,也不是完全按照我之前说的,补充如下:
掩码 & value,这个操作没问题,但是,仅要求掩码中,bit位是“1”的位,报文对应的位,必须和value相同,至于掩码为0的位,报文可以任意。
回复

使用道具 举报

 楼主| 发表于 2008-3-21 08:27:13 | 显示全部楼层
谢谢Lvfengg兄为了这个对你来说很简单的问题,专门下科来来研究,担误你宝贵的时间,真不好意思。

我现在明白一点点了 ,还是希望你能就“V=2,M=3”和“V=3,M=2”的各自结果作个详细的说明,(在科来中)不胜感激。
回复

使用道具 举报

发表于 2008-3-21 10:28:10 | 显示全部楼层
mask= 3,二进制:0000 0011
value=2,二进制: 0000 0010
与结果:                   0000 0010
则,掩码要求,后两位必须匹配,故,能够捕获到报文最后两位必须是10,其他位,无要求。

mask= 2,二进制:0000 0010
value=3,二进制:  0000 0011
与结果:                    0000 0010
但是这里的设置基本无意义,因为,你的掩码只有一位,你value反而多了1位,其捕获结果,没多大意义,因为这不是一个合法的设置。

综上,其实本质还是与操作,对于掩码设置,大家记住,将你必须匹配的位,掩码对应是“1”即可!~

BTW:对于lz的学习精神,我深深敬佩,决没有针对你的意思,只是看到你的长篇大论后,觉得一个只需要掌握一个小技巧就可以应对的东西,我们不需要投入太多精力。计算机的世界异常丰富,我们要学的东西太多,如果已经够用了,没有必要在一些不重要的角落深挖下去。正如我们学会了english,但是我们没有必要硬是学会每一个俚语,这是无关紧要的东西,不是吗?

个人觉得,这个帖子,可以到此为此了~
如果lz还有问题,可以与我私聊,如何?msn我站内短信了。
回复

使用道具 举报

 楼主| 发表于 2008-3-21 11:21:13 | 显示全部楼层
原帖由 lvfengg 于 2008-3-21 10:28 发表
mask= 2,二进制:0000 0010
value=3,二进制:  0000 0011
与结果:                    0000 0010
但是这里的设置基本无意义,因为,你的掩码只有一位,你value反而多了1位,其捕获结果,没多大意义,因为这不是一个合法的设置。


谢谢Lvengg大大,你的说法,使我对掩码有了更深的理解了.

最后问一个问题,怎样判断掩码没有意义,不合法的设置?
回复

使用道具 举报

发表于 2008-3-21 12:26:04 | 显示全部楼层
个人判断合法的依据:
       如果value某位为1,则掩码对应位一定要为1。
另外,在上面的基础上,我们还可以有一个推论:掩码中1的个数,一定大于value中1的个数。

此种设置下,才能够很清晰理解你的规则。不然,你设置一个value,却不让掩码去匹配,岂不是没有意义?因此,也可以建议科来,对这种设置,直接报错,这样就最好了~
回复

使用道具 举报

 楼主| 发表于 2008-3-23 18:25:11 | 显示全部楼层
送几张科来实验图给Lvfengg兄,以示感谢。
  
  

[ 本帖最后由 hudeg632 于 2008-3-23 18:29 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表