匹配ABC3类地址的办法
ip prefix a 10 permit 0.0.0.0 /1 1 32 此为匹配的范围是 所有的A类地址,因为匹配了第一位因此是0 ,头个1是参考的匹配,后头的1到32是范围随即的。
ip prefix B 10 permit 128.0.0.0 /2 2 32 11000000 11xxxxxx 128 01000000
ip prefix C 10 permit 192.0.0.0 /3 3 32
ip prefix aBC 10 permit 0.0.0.0 /0 0 32
ip prefix a 10 permit 0.0.0.0 /1 1 32 此为匹配的范围是 所有的A类地址,因为匹配了第一位因此是0 ,头个1是参考的匹配,后头的1到32是范围随即的。
ip prefix B 10 permit 128.0.0.0 /2 2 32 11000000 11xxxxxx 128 01000000
ip prefix C 10 permit 192.0.0.0 /3 3 32
ip prefix aBC 10 permit 0.0.0.0 /0 0 32
定义一条名称为p1的地址前缀列表,只允许10.0.192.0 8网段的,掩码长度为17或18的路由通过。
[Quidway] ip ip-prefix p1 permit 10.0.192.0 8 ge 16 less 20
前缀 为10.x.x.x/8
在10.x.x.x/8的路由内找。
10.x.x.x 路由的掩码长度是16----20的路由
前缀 为10.x.x.x/8
在10.x.x.x/8的路由内找。
10.x.x.x 路由的掩码长度是16----20的路由
ip ip-prefix
前缀列表的意思是
1.1.1.1/8 ge 16 le 32
意义是 /8表示必须从参考的IP中匹配前8个2进位,因此所匹配的路由是1开头实际匹配的是00000001,刚好8位。但是后头定义的是路由前缀的范围,意义是,如果有路由是1.1.1.0/8 那这样的情况是不符合定义的,为什么因为他的前缀 是8,而不是大于16 小于32 的范围。所以它不能通过,那1.1.1.0/9呢?一样也不是范围内的,那1.1.1.0/17呢?这条路由可以pass理由是他的前缀大于了16,小于32,再来1.2.2.2/17 呢?这样的情况我们看他的头8位是否是00000001结果发现确实是1(00000001)然后检查前缀长度是17,刚好ge16 le 32,但是第2个字段是1.2的2,那会有影响吗?回答是NO,因为你的第2个字段和我没关系,我只是匹配1.x.x.x只要前缀长度满足GE16 LE32,同时是以00000001开头那就可以了。那如果是2.2.2.0/17呢,这样的情况虽然你的前缀符合了定义,但是你的路由是2.x.x.x的不符合我的参考IP,前8个2进,必须以00000001,即等于1.x.x.x,然后才有资格看前缀是否符合了,因此总结:前缀列表由2个部分组成,1是参考的IP,以及匹配参考IP位数的掩码,比如刚才你要想匹配住2.x.x.x 那我们只需要
写1.1.1.0/6 ge 7 le 32这样的话,就是匹配了,参考IP1.1.1.0中的前6个2进即,00000001中的000000xx.x.x 即可以是00000000,00000001,00000002,00000003开头的IP路由。再来就是前缀范围,这次的前缀范围也变大了,是大于7,这样的话。很多路由都会被匹配如2.2.2.2/8 这个路由也会PASS了。
转载于:https://blog.51cto.com/840422/242851