设为首页收藏本站language 语言切换
查看: 2463|回复: 3
收起左侧

[求助] 关于一个前缀列表匹配的问题?

[复制链接]
发表于 2016-4-27 17:47:44 | 显示全部楼层 |阅读模式
10鸿鹄币
我自己都发现问题太多了,有时因为书上的东西吃不透

像B这个前缀列表,是否可以匹配129.0.0.0/16这个网络?如果按照我的理解那就可以,因为/2代表第一个十进制位转换成2进制位必须为10,而129也是10打头:1000001,,而后面的Ge17,就是说子网掩码只要大于等于17就可以。我分析的对吗?



52B208E55F0F47628FEF7A7BF39656F7.jpg

最佳答案

查看完整内容

不可以匹配129.0.0.0/16。你分析的很对,但问题是16小于17哈
发表于 2016-4-27 17:47:45 | 显示全部楼层
不可以匹配129.0.0.0/16。你分析的很对,但问题是16小于17哈
沙发 2016-4-27 17:47:45 回复 收起回复
回复

使用道具 举报

 楼主| 发表于 2016-4-27 19:39:23 | 显示全部楼层
lzq8663457 发表于 2016-4-27 19:17
不可以匹配129.0.0.0/16。你分析的很对,但问题是16小于17哈

恩恩,那意思就是说,如果是129.0.0.0/16就不匹配,如果是/17、/14、/28就匹配了,对吗?
板凳 2016-4-27 19:39:23 回复 收起回复
回复

使用道具 举报

发表于 2016-4-27 20:29:36 | 显示全部楼层
说问题之前先给你讲一下     现有前缀 、 ge、 le和 32   四个地关系。  

现有前缀 〈 ge〈 le〈 32    并且一定会同时有两个(当然不一定会显式的写在哪里) :前2个总有一个,后2个中总有一个

比如你的例子   128.0.0.0/2   ge  17   ,现在我们只看见显式的有   现有前缀和ge  那么肯定还有后面中的一个,既然没有明明白白的写le  那么一定就有一个隐式的 32 ,或者也可以理解为现在  le=32 。 并且前面两个中 既然ge 显式的写在哪里   我们现在就取 ge=17 。  如果没有 显式的ge 的话,你的这个例子中,前面两个就取  现有前缀,或者认为现在 ge=2 。这样。  懂了吗

就你这个例子, 现在 128.0.0.0/2  ge 17    =    128.0.0.0/2   ge 17   le 32
所以,你的例子中,  是说前两bit 为 :10      前缀是17位 到32位的任意网段

当然最后记住,如果ge和le都没有制定的话, 就是完全匹配。
地板 2016-4-27 20:29:36 回复 收起回复
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-5-9 15:07 , Processed in 0.078875 second(s), 26 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

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