路由策略專題(一)之路由抓取工具(Access-List和Prefix-List)

這是本個專題的第一篇正式文章,這裏咱們將闡述一下路由的抓取工具。網絡

經常使用的路由抓取工具備兩個分別是Access-List和Prefix-list。廢話很少說,咱們直接切入主題。ide



ACL工具

接觸過網絡的小夥伴必定對Access-list很是的熟悉了,更常見的實在接口之下調用,用於作數據層面的控制。可是ACL不只僅侷限在數據層面的控制上,還能夠做爲一個路由抓取的工具,下文中將簡單介紹ACL在兩種不一樣的情景之下的做用。
spa

ACL有兩種用途常見用途:3d

第一種是直接調用在接口上,能夠調用在接口的In或者out方向從而影響到數據的經過性(Deny或Permit)。router

第二種種是做爲路由抓取的工具,與其餘路由策略的工具(Distribute-list,Route-map,filter-list,offset-list搭配使用),等搭配使用。blog


第一種直接做用於數據層面,達到數據層面的進出控制。第二種做用於控制層面,影響發出的路由和路由攜帶的參數等信息,從而在控制層面上達到對路由控制的目的,從而進一步間接的影響到數據的轉發。接口



舉一個簡單的例子幫助你們理解,假如你中了特等獎,有一億的獎金。你將錢存在家裏,爲了防止被盜你能夠採起兩種方式。圖片

方式1:僱傭保安,安裝安防設備等等。ip

方式2:繼續裝窮,僞裝什麼都沒有發生。

方式1,你們已經知道了你頗有錢,你採起了一些方式防止有不法企圖的人進入而使用的方式。這種就像數據層面的ACL控制。

方式2,你們根本就不知道你頗有錢,沒有人惦記你的錢。這種就很像,數據層面的控制,也就是利用ACL和其餘的路由控制工具一塊兒協同達成的。



這裏與在接口調用的ACL不一樣,咱們抓取的不是一個網段的地址,而是抓取的一個路由條目。

例如:

想要抓取一個網段(4.4.4.0/24),在接口下調用的ACL是這麼作的:

access-list 1 permit/deny 4.4.4.0 0.0.0.255

而做爲路由抓取工具時是這樣作的:

access-list 1 permit/deny 4.4.4.0 0.0.0.0


這裏咱們再也不進行討論接口調用的ACL,只討論ACL做爲路由抓取的工具


1.標準的ACL:標準ACL標準ACL只能匹配路由前綴,沒法匹配路由的前綴長度,例如,若是想抓取192.168.1.0/24這條路由,用access-list 1 permit 192.168.1.0,則該條路由被匹配,可是同時,192.168.1.0/2五、/26......也都被匹配了,由於ACL沒法匹配掩碼,或者說,前綴長度。再者,在使用標準ACL抓取路由的時候,建議不加反掩碼,不然被匹配的路由條目範圍將更大更不精確。


2.擴展的ACL:標準ACL有源部分、目的部分,使用源匹配路由前綴,使用目的部分匹配路由掩碼。例如,要抓取192.168.1.0/24這條路由,則access-list 100 permit ip 192.168.1.0 0.0.0.0 255.255.255.0 0.0.0.0。因此其實很簡單,只要把路由的前綴掩碼部分,分別使用ACL的目的部分進行匹配便可。



Prefix-List

對於沒有接觸過路由策略的小夥伴Prefix-List可能比較陌生,這是因爲前綴列表(Prefix-list)一般只有在路由策略中用做路由的抓取工具,它的功能和語法語義相對ACL而言更增強大並貼合天然語言習慣,並且能夠實現精準抓取多個路由條目的功效。話很少說咱們直接進入正題。


Prefix-list抓取流程和特性以下:

  • 可匹配路由前綴中的網絡號及前綴長度,加強了匹配的精確度

  • 前綴列表的可控性比訪問列表高得多,支持增量修改,更爲靈活

  • 前綴列表包含序列號,從最小的開始匹配

  • 若是前綴不與前綴列表中的任何條目匹配,將被拒絕


基本語法以下

router(config)# ip prefix-list {list-name [seq number] {deny | permit} network/length[ge ge-value] [le le-value]

注意要知足一點length<ge-value<=le-value


配置實例以下:


實例1:

ip prefix-list ABC seq 5 permit 10.0.0.0/8

路由前8 bit必須與10.0.0.0匹配,且掩碼必須爲8位掩碼

實例2:

ip prefix-list ABC seq 5 permit 10.0.0.0/8 le 24

實例3:

路由前8 bit必須與10.0.0.0匹配,且掩碼是8-24位之間。這裏表示

實例4:

ip prefix-list ABC seq 5 permit 10.0.0.0/8 ge 24

路由前8 bit必須與10.0.0.0匹配,且掩碼是24-32位之間。注意這裏沒有寫參數le,默認添加缺省le 32

實例5:

ip prefix-list ABC seq 5 permit 10.0.0.0/8 ge 21 le 24

路由前8 bit必須與10.0.0.0匹配,且掩碼是21-24位之間

實例6:

ip prefix-list ABC seq 5 permit 0.0.0.0/0 le 32

路由前0 bit必須與0.0.0.0匹配,也就是說能夠任意匹配,掩碼爲0-32位。這條也就是表明着permit any的含義。

注意:通acl同樣,若是使用deny的方法過濾路由記得再最後加上這條,不然默認爲deny any





實驗:

咱們結合一個例子,看一下具體的用法。

實驗環境:

R2 R3運行BGP,R1 R2運行任何IGP協議,這裏我用了OSPF。

spacer.gif圖片.png


spacer.gif

這裏是R3收到的全部路由條目

圖片.png


從上面的路由表中看有一條彙總條目:

10.0.0.0/21

若是咱們想要過濾掉這條彙總條目10.0.0.0/21可是要求保留10.0.0.0/24這條明細路由。注意這裏咱們運用了Distribute-List相關的講解將在後續文檔中給出,這裏咱們先看一下路由抓取。

假設使用ACL要怎麼作?

1.若是採用標準的acl:

R2:

access-list 1 deny 10.0.0.0 0.0.0.0

access-list 1 permit any

router bgp 1

neighbor 23.23.23.3 distribute-list 1 out


若是這麼作會出現什麼問題呢,咱們不只過濾了10.0.0.0/21這個路由還過濾掉了10.0.0.0/24這條路由。所以,標準的ACL沒法達到目的。輸出最後以下圖所示,咱們看到不只過濾了10.0.0.0/21還過濾了10.0.0.0/24

spacer.gif圖片.png

2.若是採用擴展的acl怎麼作?

access-list 100 deny ip 10.0.0.0 0.0.0.0 255.255.248.0 0.0.0.0

access-list 100 permit ip any any

router bgp 1

neighbor 23.23.23.3 distribute-list 100 out

這麼作能夠達到目的

spacer.gif圖片.png


咱們再將配置修改一下

spacer.gif在R1上把10.0.0.0/24拆分爲10.0.0.0/25和10.0.0.128/25兩個子網段,而且手動彙總這條路由。

圖片.png


需求改成,僅容許10.0.0.0-10.0.7.0這8條24位的路由條目,且不容許使用deny

這裏若是使用擴展的acl怎麼作?

access-list 100 permit ip 10.0.0.0 0.0.7.0 255.255.255.0 0.0.0.0

router bgp 1

neighbor 23.23.23.3 distribute-list 100 out

這裏能夠經過擴展的ACL得到所需輸出。

spacer.gif圖片.png






咱們看一下若是想要實現上面的例子中的輸出使用Prefix-List怎麼作應該怎麼作


過濾掉10.0.0.0/21

ip prefix-list abc seq 5 deny 10.0.0.0/21

ip prefix-list abc seq 10 permit 0.0.0.0/0 le 32

router bgp 1

nei 23.23.23.3 prefix-list abc out


只permit 10.0.0.0-10.0.7.0的24位路由

ip prefix-list abc seq 5 permit 10.0.0.0/21 ge 24 le 24

router bgp 1

nei 23.23.23.3 prefix-list abc out



小補充:利用prefix-list分別匹配A類B類和C類網絡路由,及CIDR路由


首先咱們要先明確ABC類地址是什麼

A類網絡號:高位以0開頭,且掩碼爲8位。注意0和127不可用。(1.0.0.0-126.0.0.0)

B類網絡號:高位以10開頭,且掩碼爲16位。(128.0.0.0-191.255.0.0)

C類網絡號:高位以110開頭,且掩碼爲24位(192.0.0.0-239.255.255.0)

D類地址:高位以1110開頭,沒有掩碼

E類地址:高位以11110開頭,沒有掩碼


僅匹配主類路由:

A類地址匹配

ip prefix-list seq 5 deny 0.0.0.0/8

ip prefix-list ClassA seq 10 deny 127.0.0.0/8

ip prefix-list ClassA seq 15 permit 0.0.0.0/1 ge 8 le 8


B類地址匹配

ip prefix-list ClassB seq 5 permit 128.0.0.0/2 ge 16 le 16


C類地址匹配

ip prefix-list ClassC seq 5 permit 192.0.0.0/3 ge 24 le 24


匹配無類路由

ip prefix-list seq 5 deny 0.0.0.0/8 le 32

ip prefix-list ClassA seq 10 deny 127.0.0.0/8 le 32

ip prefix-list ClassA seq 15 permit 0.0.0.0/1 ge 8 le 32


B類地址匹配

ip prefix-list ClassB seq 5 permit 128.0.0.0/2 ge 16 le 32


C類地址匹配

ip prefix-list ClassC seq 5 permit 192.0.0.0/3 ge 24 le 32

相關文章
相關標籤/搜索