prefix-list 字首列表
Prefix-list路由字首列表
其實說白話講,和ACL 的做用是一樣的,就是能夠更加精準的,更加方便的匹配路由條目
它同樣可以和distribute-list 以及route-map ,做路由重分發策略時使用,
角色也是相同的,和distribute-list相結合使用時,prefix佔有決定權
而和route-map結合使用時,由route-map決定是生是死,
再有就是prefix-list相對於acl而言,只有當出現很多很多條路由時,才會顯得那麼出眾,如果一兩條而言,完全沒有必要的。
從這一點看出來,route-map在不管是路由策略,還是策略路由中,都佔有很重要的一席之地
命令解釋
(conifg)#ip prefix-list xx permit\deny x.x.x.x/x ge x le x
不支援數字編號,只可以命名,預設以5遞增
x.x.x.x/x 的意思就是要求去匹配的字首 以及相同的掩碼位。什麼意思?
比如 192.168.0.0 /24
192.168.1.0 /24
這兩個條目有哪些字首部份是肯定相同的?
192.168部份相同,不相同的我都用0來代替。
那麼我就可以這樣寫
192.168.0.0/16 ge 24 le 24
抓取路由字首為192.168.0.0的條目,/16的意思是前面16位必須相同,
Ge/le 標記為掩碼位的長度,GE是≥,LE是≤,此時我寫的是大於等於24,且小於等於24,其意思就是我只匹配為/24長度掩碼的條目。
這條命令的意思就是
我要匹配帶有192.168.0.0前16位一模一樣的條目,並且掩碼為24位的。
幾種常用的prefix-list命令,適用於抓取不同型別的路由條目字首
#ip prefix-list wfy permit 192.168.0.0/24 ge 24
// 匹配某一條特定的路由條目 //掩碼大於等於24位
#ip prefix-list wfy permit 0.0.0.0/0
//匹配預設路由條目全0
#ip prefix-list wfy permit 0.0.0.0/0 ge 32
// 匹配所有主機條目,因為主機條目都是255.255.255.255,掩碼大於32位
#ip prefix-list wfy permit 0.0.0.0/0 le 32
// 匹配所有條目,因為條件是小於等於32,這是所有路由條目都能滿足的
Ok
來看個例項
如圖中所示,
R1—R2執行eigrp
R2—R3執行ospf
由R2負責將兩端的協議進行重分發
但是要應用路由策略
要求1 ,在R2上拒收來自於/24網段的條目,使用+prefix-list+distribute
ACL可以實現嗎?
Access-list 1 per 192.168.0.0 ????完了,沒有了?//至此1條
那這樣兒的話,
你說,是192.168.0.0---192.168.6.0以 /16的形式抓取的,還是以/24的形式抓取的?
如果是/24的型別抓取,請問,我是不是隻抓取了192.168.0.1這一個地址?
如果是/16的型別抓取,請問,我是不是把0.0-6.0的所有網段都抓取了?
當然也不是不能分著寫,也可以針對於精確的掩碼輸入,但是不要忘了,如果路由條目很多呢?幾百條,你也要一條一條的寫嗎?我們是幹什麼的?能省事兒,絕對不費事兒,幹完就走......
所以,這個時候,一個針對於路由字首的列表,出現了,
對於抓取路由條目方面,它要強ACL幾條街。
我們來具體的看一下它的一個命令格式,來分析一下為什麼
(實驗一會兒再說)
(config)# ip prefix-list xx permit/deny x.x.x.x/x ge x le x
名稱抓取/拒絕 具體的網段和掩碼
最後ge 大於等於le 小於等於
回到例項中
要求1 ,在EIGRP重分佈到ospf時,只保留4.0/5.0/6.0三個條目,
思路,先要將0.0 1.0 2.0 3.0 這三個網段進行彙總,此時用到的就是cidr
4個子網,那就是2的2次方,也就是上兩位,原24 變成了22
那麼在prefix-list中,後面還有一個選項,就是大於等於, 和小於等於,
我們該用哪個呢~
由於其它網段都是/24的,為了不擴大範圍而影響其它網段,那麼我們就限制在24嘍~
具體配置
R2(config)#ip prefix-list 22 permit 192.168.0.0/22 ge 24 le 24
//名字為22 網段為/22 掩碼控制在24(必須=24)
(192.168.0.0/24 192.168.1.0/24 192.168.2.0/24 192.168.3.0/24)這4個地址如果彙總成/22的,是一個超網,如果有/25的條目我不管,當然這裡可以寫成le 32,有可能會更好理解一些.
R2(config)#route-map 22 deny 10 //route-map定義確認還是拒絕條目 R2(config-route-map)#match ip add prefix-list 22 //關聯prefix字首列表 R2(config-route-map)#exit R2(config)#route-map 22 permit 20 //允許其它所有 R2(config-router)#redistribute eigrp 1 subnets route-map 22 //重分佈呼叫route-map
OK ,到R3上看一下具體的條目變化
可以看到,只有4.0/5.0/6.0這三個條目了,其它的全部幹掉了
這些條目在R2上可都是有的,是在分發的過程中被幹掉的。
要求2 在R3 上配置分發列表,不要4.0、5.0只保留6.0條目,使用prefix-list來實現
要求一條命令抓取條目
分析,4.0 5.0 兩個條目,可以看做是兩個子網,2的1次方=2,那麼就等於是借了1位,
由原來的/24 變成了/23也就是192.168.4.0 /23,包含了這兩個子網,那麼配置如下
R3(config)#ip prefix-list r1 deny 192.168.4.0/23 le 24
//定義拒絕條目/23超網,但是要求 只能小於等於/24的條目
R3(config)#ip prefix-list r1 per 0.0.0.0/0 le 32 //允許其它小於等於/32的條目 R3(config)#router ospf 1 R3(config-router)#distribute-list prefix r1 in //distribute,掛接prefix-list
再次提醒,prefix-list 和acl,這兩者與distribute-list的組合使用效果是一樣的,起到決策權的都不是distribute-list, 而是acl 和prefix-list,只有當這兩個技術遇到route-map 之後才變成小弟,因為確實沒有人家牛。Route-map永遠是佔據主導地位。不可撼動
OK ,再反過來,
要求3
Ospf進入eigrp 後,只保留172.16.1.0/24、2.0、3.0、6.0 但是4.0和5.0不要
分析,
0.0/1.0/2.0/3.0/22為一組,
繼續走,
C 172.16.4.0/25is directly connected, Loopback4
C 172.16.5.0/26is directly connected, Loopback5
C 172.16.6.0/24is directly connected, Loopback6
我擦嘞,什麼情況,這兩個掩碼長度不一樣啊~
不一樣又能怎麼樣呢?幹就完了,
分析
4.0/25 5.0/26
如果寫成這樣行不行
Ip prefix-list r3 permit 172.16.4.0/24 ge 25
不行,為什麼?
因為條件無法滿足,172.16.4.0/24裡面無法包含172.16.5.0 明白?
那麼就只能這樣兒了,
Ip prefix-list r3 permit 172.16.4.0/23 ge 24
抓取/23的掩碼,然後別外條件就是大於等於/24,這樣其它網段就不受影響了,
只有/26的那條5.0會受影響,6.0是/24的,不會受到影響
配置如下
R2(config)#ip prefix-list r2 permit 172.16.4.0/23 ge 24 le 32 //其實最後的LE 32 寫不寫都無所謂的,不過這是一個好習慣 ,可以規定範圍 R2(config)#route-map r2 deny 10 R2(config-route-map)#match ip address prefix-list r2 R2(config-route-map)#exit R2(config)#route-map R2(config)#route-map r2 per 20 R2(config-router)#$e ospf 1 metric 10000 100 255 1 1500 route-map r2 //重分佈呼叫route-map
看到了吧
其實並不難,只是你如何去計算更為準確的子網cidr地址,以及它的範圍
最後再提問一下,
像上面最後一個要求,可以有幾種實現的方法?
1 acl+distribute-list
2 acl+route-map
3 prefix-list+distribute-list
4 prefix-list+route-map
而且有時也完全沒有必須要進行CIDR,只要你匹配前面一樣的,知道多少位就可以了,最主要的是在/X後面的這個/上,以及合理使用GE和LE
這一塊兒如果有不明白的,我這裡還有自己錄製的視訊,視訊看起來更加直觀
----------------------------------------
CCIE成長之路 ---梅利