(一) Route Maps特性:
Route Maps相似於access lists,不一樣之處在於Route Maps可以改變Packets/Routes的部分屬性。 用途:
Route Maps主要用於Redistribution和Policy Routing及BGP的實現。 實現:
Policy Routing發送Packets到Route Maps實現策略路由轉發。
Redistribution發送Routes到Route Maps實現路由條目的過濾。 配置說明:
Route Maps若是沒有指定Action及Sequence Number屬性,默認:
Action: permit
Sequence Number: 10
且Sequence Number不會自動增長。
即若是在使用Route Maps語句時不指定Sequence Number,則覆蓋Sequence Number爲10的默認條目。 Route Maps Deny Action:
Redistribution: 特定路由條目不會被重分佈。
Policy Routing: 特定的Packets不會按策略路由轉發,但會梗概正常的路由表條目轉發。 Case Study:Policy Routing注:(1)Policy Routing隻影響入流量。
(2)可以使用Standard及Extended ACL。
(3)全局配置ip local policy route-map sense可將策略路由應用於Router自己發送的Packets.<1> Standard ACL
interface Serial 0
ip address 172.16.5.1 255.255.255.0
ip policy route-map sense
!
access-list 1 permit 172.16.6.0 0.0.0.255
access-list 2 permit 172.16.7.0 0.0.0.255
!
route-map sense permit 10
match ip address 1
set ip next-hop 172.16.4.2
!
route-map sense permit 20
match ip address 2
set ip next-hop 172.16.4.3 <2> Extended ACL
interface Ethernet 0
ip address 172.16.1.4 255.255.255.0
ip policy route-map sense
!
access-list 105 permit tcp 172.16.1.0 0.0.0.255 eq ftp any
access-list 105 permit tcp 172.16.1.0 0.0.0.255 eq ftp-data any
access-list 106 permit tcp 172.16.1.0 0.0.0.255 eq telnet any
!
route-map sense permit 10
match ip address 105
set ip next-hop 172.16.2.1
!
route-map sense permit 20
match ip address 106
set ip next-hop 172.16.3.1 <3> Length of the Packets
interface Ethernet0
ip address 172.16.1.4 255.255.255.0
ip policy route-map sense
!
route-map sense permit 10
match length 1000 1600
set ip next-hop 172.16.2.1
!
route-map sense permit 20
match length 0 400
set ip next-hop 172.16.3.1 <4> Router's Packets
interface Ethernet0
ip address 172.16.1.4 255.255.255.0
ip policy route-map sense
!
ip local policy route-map sense
!
access-list 120 permit ip any 172.16.1.0 0.0.0.255
access-list 120 permit ospf any any
!
route-map sense permit 10
match ip address 120
!
route-map sense permit 20
match length 1000 1600
set ip next-hop 172.16.2.1
!
route-map sense permit 30
match length 0 400
set ip next-hop 172.16.3.1 注:若是沒有第一個route-map條目,router自己的Packets及OSPF的Packets都會因爲後兩個route-map語句被轉發到錯誤的地址。 Case Study: Policy Routing and Quality of Service Routing
Policy Routing結合ip包頭的Precedence和Type of Service(TOS)可以實現基於QOS的策略路由。注:Precedence和TOS的配置既可使用Number字段,也可以使用Keyword。 set ip precedence
-------------------------------------
Bits Number Keyword
000 0 routine
001 1 priority
010 2 immediate
011 3 flash
100 4 flash-override
101 5 critical
110 6 internet
111 7 network
-------------------------------------set ip tos
-------------------------------------
Bits Number Keyword
0000 0 normal
0001 1 min-monetary-cost
0010 2 max-reliability
0100 4 max-throughput
1000 8 min-delay
------------------------------------- interface Serial0
ip address 10.1.18.67 255.255.255.252
ip policy route-map sense
!
interface Serial1
ip address 10.34.16.83.255.255.255.252
ip policy route-map sense
!
access-list 1 permit 172.16.0.0 0.0.255.255
access-list 110 permit tcp any eq www any
!
route-map sense permit 10
match ip address 1 110
set ip precedence critical
!
route-map sense permit 20
set ip tos 10
set ip precedence priority Case Study: Route Tagging用途:
用於雙向重分佈時標識特定Domain的路由,以防路由被重分佈回起源Domain。 使用方案:
通告路由條目的邊緣Router在重分佈時給路由條目加上Tag標識,作爲Transit Network的Domain,不須要使用和識別Tag,僅僅須要將它傳遞到它的外部網絡即可。 路由協議相關:
Support: RIPv2,EIGRP,IS-IS,OSPF,BGP
Not Support: RIPV1,IGRP Packets Format:
RIPv2: 支持16-bit tags 表示爲十進制:0 ~ 65535
EIGRP external route TLVs: 支持32-bit tags 表示爲十進制:0 ~ 4294967295
OSPF type 5 LSAs: 支持32-bit tags 表示爲十進制:0 ~ 4294967295 配置實例:
router ospf 1
redistribute igrp 1 metric 10 subnets tag 1
redistribute rip metric 10 subnets route-map sense
network 10.100.200.1 0.0.0.0 area 0
!
router rip
network 10.0.0.0
!
router igrp 1
network 10.0.0.0
!
access-list 1 permit 10.1.2.3
access-list 2 permit 10.1.2.4
!
route-map sense permit 10
match ip route-source 1
set tag 2
!
route-map sense permit 20
match ip route-source 2
set tag 3 ================================================
(二) Distribute-list做用:
<1> 控制路由條目的分發,及路由的重分佈。
<2> 創建一個"route firewall" 關於路由協議:
Distance Vector Routing Protocol: Route Filtering可以控制其通告/接收及重分佈的路由條目。
Link-State Routing Protocol: Route Filtering只可以控制置入Routing Table的路由條目(該路由條目仍會保存於LSDB內)及重分佈時的路由條目。注:LS Routing Protocol的一個基本的要求就是在一個area內全部Routers的Link State Database必須一致,因此若是Route Filtering能過濾掉LS Routing Protocol的LSA通告,就違背了LS Routing Protocol的規範。 Case Study: Filtering Specific Routesrouter rip
version 2
network 192.168.75.0
distribute-list 1 in Serial1
!
ip classless
access 1 permit 0.0.0.0 Case Study: Route Filtering and Redistribution 注:
distribute-list 命令用於Link-State Routing Protocol時:
與接口聯用: 只能使用in參數
與路由進程聯用: 只能使用out參數兩種方案效果相同。與接口聯用的方案在抑制route feedback上效果比較好;與路由進程聯用的方案在抑制route feedback時,因爲在過濾時,相應的路由條目已經進行了路由表,因此失效。
<1> 與接口聯用router ospf 25
redistribute rip metric 100
network 172.16.1.254 0.0.0.0 area 25
network 172.16.8.254 0.0.0.0 area 25
network 172.16.50.254 0.0.0.0 area 25
distribute-list 3 in Ethernet0/0
distribute-list 3 in Ethernet0/1
distribute-list 3 in Ethernet0/2
!
router rip
redistribute ospf 25 metric 5
passive-interface Ethernet0/0
passive-interface Ethernet0/1
passive-interface Ethernet0/2
network 192.16.0.0
distribute-list 1 in Ethernet0/3
distribute-list 1 in Ethernet2/0
distribute-ilst 1 in Ethernet2.1
!
ip classless
access-list 1 permit 172.16.128.0 0.0.127.255
access-iist 3 permit 172.16.0.0 0.0.127.255 <2> 與路由進程聯用:router ospf 25
redistribute rip metric 100
network 172.16.1.254 0.0.0.0 area 25
network 172.16.8.254 0.0.0.0 area 25
network 172.16.50.254 0.0.0.0 area 25
distribute-list 10 out rip
!
router rip
redistribute ospf 25 metric 5
passive-interface Ethernet0/3
passive-interface Ethernet2/0
passive-interface Ethernet2/1
network 172.16.0.0
distribute-list 20 out ospf 25
!
ip classless
access-list 10 permit 172.16.130.0
access-list 10 permit 172.16.145.0
access-list 10 permit 172.16.240.0
access-list 20 permit 172.16.23.0
access-list 20 permit 172.16.9.0
access-list 20 permit 172.16.75.0 Case Study: distribute-list in (BGP) Syntax:distribute-list {acl-number | prefix list-name} in no distribute-list {acl-number | prefix list-name} in Command Modes:
Router configuration 注:
<1> 在某些Cisco IOS Software上可能會顯示出interface type和number屬性。但不管哪個IOS版本都不支持使用interface type及number屬性。
<2> ACL必須提早定義,不然distribute-list會容許全部流量。
<3> 必須使用clear ip bgp in命令重置路由器的session,distribute-list纔會生效。
<4> 推薦使用ip prefix-list代替distribute-list,從而獲得更多的靈活性,distribute-list也會在之後的IOS版本被剔除。
<5> 在distribute-list命令中,access-list及prefix-list是互不兼容的。Configuration Guide:
<1> distribute-list與prefix-list聯用Router(config)# ip prefix-list RED deny 0.0.0.0/0 le 32
Router(config)# ip prefix-1ist RED permit 10.108.0.0/16
Router(config)# ip prefix-list RED permit 192.168.1.0/24
Router(config)# !
Router(config)# router bgp 50000
Router(config-router)# network 10.108.0.0
Router(config-router)# distribute-list prefix RED in
Router(config-router)# end
Router# clear ip bgp in <2> distribute-list與access-list聯用Router(config)# access-list 1 permit 192.168.1.0
Router(config)# access-list 1 permit 10.108.0.0
Router(config)# access-list 1 deny 0.0.0.0 255.255.255.255
Router(config)# !
Router(config)# router bgp 50000
Router(config-router)# network 10.108.0.0
Router(config-router)# distribute-list 1 in
Router(config-router)# end
Router# clear ip bgp in Case Study: distribute-list in (IP)Syntax:
distribute-list [access-list-number | name] | [route-map map-tag] in [interface-type | interface-number]
no distribute-list [access-list-number | name] | [route-map map-tag] in [interface-type | interface-number] Command Modes:
Address family configuration
Router configuration 注:
<1> route-map屬性只能用於OSPF的過濾。
<2> interface-type及interface-number屬性不能用於address family configuration mode。
<3> distribute-list不能過濾進入LSDB的LSA。若是對OSPF使用distribute-list,只能過濾路由進入路由表。Configuration Guide:
<1> distribute-list用於EIGRP
access-list 1 permit 0.0.0.0
access-list 1 permit 10.108.0.0
access-list 1 deny 0.0.0.0 255.255.255.255
router eigrp
network 10.108.0.0
distribute-list 1 in<2> distribute-list用於OSPF
route-map tag-filter deny 10
match tag 777
route-map tag-filter permit 20
!
router ospf 1
router-id 10.0.0.2
log-adjacency-changes
network 172.16.2.1 0.0.0.255 area 0
distribute-list route-map tag-filter inCase Study: distribute-list in (總結)<1> BGP:有可能在哪些版本的IOS配置或SHOW上顯示出關於distribute-list in使用interface-type及interface-number屬性,但任何版本的IOS都不支持配置這些屬性。<2> 其它IP協議(OSPF):可以在distribute-list in中做用interface-type及interface-number屬性,也可以使用route-map屬性(僅限於OSPF)。<3> OSPF及BGP可以使用access-list-number/access-list-name/prefix-list屬性。
Case Study: distribute-list out (BGP) Syntax:
distribute-list acl-number | prefix list-name out [protocol process-number | connected | static]
no distribute-list acl-number | prefix list-name out [protocol process-number | connected | static] Command Modes:
Router configuration 注:
<1> 在某些Cisco IOS Software上可能會顯示出interface type和number屬性。但不管哪個IOS版本都不支持使用interface type及number屬性。
<2> ACL必須提早定義,不然distribute-list會容許全部流量。
<3> 必須使用clear ip bgp in命令重置路由器的session,distribute-list纔會生效。
<4> 推薦使用ip prefix-list代替distribute-list,從而獲得更多的靈活性,distribute-list也會在之後的IOS版本被剔除。
<5> 在distribute-list命令中,access-list及prefix-list是互不兼容的。
<6> 使用protocol process-number屬性的distribute-list語句,將只會應用從其它路由協議重分佈過來的路由上。
<7> 重分佈時,沒有在distribute-list指定的範圍內的路由將不會被被通告。Configuration Guide:
Router(config)# access-list 1 permit 192.168.0.0 0.0.255.255
Router(config)# access-list 1 deny 0.0.0.0 255.255.255.255
Router(config)# router bgp 50000
Router(config-router)# distribute-list 1 out
Router(config-router)# end
Router# clear ip bgp out
Case Study: distribute-list out (IP) Syntax:
distribute-list {access-list-number | access-list-name} out [interface-name | routing-process | as-number]
no distribute-list {access-list-number | access-list-name} out [interface-name | routing-process | as-number] Command Modes:
Address family configuration
Router configuration 注:
<1> 僅用於Distance Vector Routing Protocols。
<2> interface-name不能用於Address family configuration模式。
<3> 重分佈時,沒有在distribute-list指定的範圍內的路由將不會被被通告。Configuration Guide:
Router(config)# access-list 1 permit 10.108.0.0
Router(config)# access-list 1 deny 0.0.0.0 255.255.255.255
Router(config)# router rip
Router(config-router)# network 10.108.0.0
Router(config-router)# distribute-list 1 outCase Study: distribute-list out (總結)BGP及其它Link State Routing Protocols: 對於distribute-list out的interface-name屬性無效。===============================================
(三) Prefix-list功能:
過濾特定路由協議分發的Routes,主要用與BGP。 特性:
與ACL相比,具備相對較強的靈活性。在掩碼匹配上,也比較容易理解。
Case Study: Standard Syntaxip prefix-list {list-name | list-number} [seq number] {deny network/length | permit network/length} [ge ge-length] [le le-length] no ip prefix-list {list-name | list-number} [seq number] {deny network/length | permit network/length} [ge ge-length] [le le-length]
注:
<1> ip prefix-list使用最長匹配規則。
<2> 若是不指定seq number,則默認爲5,且每增長一個條目自動增長5。
即若是你指定第一條目seq number爲2,則下一個不指定seq number的條目的seq number自動變爲7。
<3>自動增長seq number功能可以用命令:no ip prefix-list sequence-number取消。
<4> length < ge-length < le-length <= 32
<5> ip prefix-list不能與Route Maps的match ip next-hop語句聯用;只以與match ip address語句聯用。
Case Study: ip prefix-list descriptionSyntax:
ip prefix-list list-name description text
Case Study: Configuration Examplerouter bgp 3
no synchronization
neighbor 172.16.1.2 remote-as 3
neighbor 172.16.20.1 remote-as 1
neighbor 172.16.29.1 prefix-list 1 out
no auto-summary
!
ip prefix-list 1 seq 5 deny 192.68.10.0/24
ip prefix-list 1 seq 10 permit 0.0.0.0/32 ==============================================(四) ip as-path access-list功能:
根據BGP的AS-PATH屬性過濾BGP的分發路由條目。 Case Study: Syntaxip as-path access-list acl-number permit | deny regexp no ip as-path access-list acl-number 注:acl-number有效值爲0 ~ 500。 Case Study: Configuration Guide<1> 過濾全部的私有AS的Routes更新ip as-path access-list 1 deny (_64[6-9][0-9][0-9]_|_65[0-9][0-9][0-9]_)
ip as-path access-list 1 permit .* <2> 應用實例router bgp 3
no synchronization
neighbor 172.16.1.2 remote-as 3
neighbor 172.16.20.1 remote-as 1
neighbro 172.16.20.1 filter-list 1 out
no auto-summary
!
ip as-path access-lsit 1 permit ^$ ===============================================(五) 以上過濾命令的執行順序:
<1> inbound
route-map->filter-list->prefix-list,distribute-list
<2> outbound
prefix-list,distribute-list->filter-list-> route-map
prefix-list,distribute-list用於鄰居在一個方向上每次只能用其中的一個 ----------------------------------------總結:其實這些過濾命令都不是太難,關鍵是一個過濾的理念。
它們都是很靈活的東西,運用的好,它會有很大的做用;運用得很差,也有可能會有副作用的。因此說,在配置這些過濾命令的時候,要仔細的斟酌。每個過濾都要思考一下,當安放到現有的網絡會有什麼樣的效用,這樣纔不至於等到安放到路由器上之後才認識到過濾的漏洞,纔不至於引起安全隱患。redis