BGP 路由過濾
?
R1: bgp?100 roruter-id?1.1.1.1 peer?192.168.13.3?as-n?200 peer?192.168.14.4?as-n?300 peer?192.168.12.2?as-n?100 peer?192.168.12.2?next-hop-local net?1.1.1.0?24 R2: bgp?100 router-id?2.2.2.2 peer?192.168.25.5?as-n?400 peer?192.168.26.6?as-n?500 peer?192.168.12.1?as-n?100 peer?192.168.12.1?next-hop-local net?2.2.2.0?24 R3: bgp?200 router-id?3.3.3.3 peer?192.168.13.1?as-n?100 net?3.3.3.0?24 R4: bgp?300 router-id?4.4.4.4 peer?192.168.14.1?as-n?100 net?4.4.4.0?24 R5: bgp?400 router-id?5.5.5.5 peer?192.168.25.2?as-n?100 net?5.5.5.0?24 R6: bgp?500 router-id?6.6.6.6 peer?192.168.26.2?as-n?100 net?6.6.6.0?24
?
?
沒做過濾前,dis bgp routing-table
第一個用 AS-Path進行路由過濾
利用 AS-Path 進行路由過濾
讓R3只接收來自AS 100的
做正則表達式
R3:
ip as-path-filter 1 permit 100$ 匹配始發AS 100
bgp 200
peer 192.168.13.1 as-path-filter 1 import
做完過濾后再R3上, dis bgp routing-table
正則表達式
第二個用 Community 屬性進行路由過濾
R4環回接口 4.4.4.4 只發給R1和R2,其他都收不到。community no-export
沒做過濾前,先在R6查看 bgp路由表,有4.4.4.4
R1:
[R1]bgp 100
peer 192.168.12.2 advertise-community
R4:
[R4]route-policy 10 permit node 1 不寫if-match,默認是所有
apply community no-export
[R4]bgp 300
peer 192.168.14.1 route-policy 10 export
peer 192.168.14.1 advertise-community 為了讓這個屬性值能被識別到
R1上dis bgp communtiy
R6查看 dis bgp routing-table
第三個用 Next Hop 屬性進行路由過濾
R6不接收R5發過來的路由條目
沒過濾前,在R6 dis bgp routing-table
R2在發給R6的時候,把下一跳是R5的地址,做拒絕后 發送給R6
R2收到5.5.5.5的路由條目,然后發送給R6。如果想拒絕就要在R2上匹配到5.5.5.5,即下一跳是 192.168.25.5
R2:
ip ip-prefix 1 permit 192.168.25.5 32
route-policy 10 deny node 1
if-match ip next-hop ip-prefix 1
route-policy 10 permit node 2
bgp 100
peer 192.168.26.6 route-policy 10 export
配置完成后,在R6上查看,等一會 或者直接 [R6]refresh bgp all import
BGP 路由引入
在多協議混合的網絡環境中,不同的路由協議使用的協議報文各不相同,就好比說著不同的語言。如果一種路由協議需要從別的路由協議那里獲取路由信息,則可以使用路由引入技術。
希望1.1.1.1能和5.5.5.5互通
R2和R4間采用靜態路由
[R2]ip route-static 192.168.34.0 24 192.168.23.3
[R4]ip route-static 192.168.23.0 24 192.168.34.3
建立BGP鄰居
[R2]bgp 100
router-id 2.2.2.2
peer 192.168.23.3 as-n 100
peer 192.168.34.4 as-n 100
[R3]bgp 100
router-id 3.3.3.3
peer 192.168.23.2 as-n 100
peer 192.168.34.4 as-n 100
[R4]bgp 100
router-id 4.4.4.4
peer 192.168.34.3 as-n 100
peer 192.168.23.2 as-n 100
R2和R1運行的是RIP
[R2]rip
version 2
net 192.168.12.0
[R1]rip
version 2
net 192.168.12.0
net 1.0.0.0
R4和R5運行的是OSPF
[R4]ospf router-id 4.4.4.4
area 0
net 192.168.45.4 0.0.0.0
[R5]ospf router-id 5.5.5.5
area 0
net 192.168.45.5 0.0.0.0
net 5.5.5.5 0.0.0.0
為了能互通,rip引入bgp,ospf引入bgp,在bgp的路由上做
[R2]bgp 100
import-route rip 1
[R3]bgp 100
import-route ospf 1
會發現除了1.1.1.1和5.5.5.5需要的外, 12和45網段的也引進來了
如果想精確引入呢?
[R2]acl 2000
rule permit source 1.1.1.0 0.0.0.255
route-policy 10 permit node 10
if-match acl 2000
[R2]bgp 100
import-route rip 1 route-policy 10
[R4]ip ip-prefix 10 permit 5.5.5.5 32
route-policy 10 permit node 1
if-match ip-prefix 10
[R4]bgp 100
import-route ospf 1 route-policy 10
[R3]dis brp routing-table
這樣做好之后,R1并不能ping通R5
因為R1沒有R5的路由,只做了單向引入, bgp不適合引入到rip,可以通過下放默認路由。bgp的路由條目要下放默認路由。
[R2]rip
default-route originate
[R4]ospf
default-route-advertise always
因為R4沒有一個缺省路由,只能采用強制下放
BGP 缺省路由
這個環境是直接用物理接口建立IBGP鄰居。主要是為了說缺省路由有這么幾種方式
R1
bgp 100
peer 192.168.12.2 as-n 100
peer 192.168.13.3 as-n 100
peer 192.168.14.4 as-n 100
net 1.1.1.0 255.255.255.0
R2
bgp 100
router-id 2.2.2.2
peer 192.168.12.1 as-n 100
peer 192.168.12.1 next-hop-local
peer 192.168.25.5 as-n 200
R3
bgp 100
router-id 3.3.3.3
peer 192.168.13.1 as-n 100
peer 192.168.13.1 next-hop-local
peer 192.168.35.5 as-n 200
R4
bgp 100
router-id 4.4.4.4
peer 192.168.14.1 as-n 100
peer 192.168.14.1 next-hop-local
peer 192.168.45.5 as-n 200
R5
bgp 200
router-id 5.5.5.5
peer 192.168.25.2 as-n 100
peer 192.168.35.3 as-n 100
peer 192.168.45.4 as-n 100
net 5.5.5.0 255.255.255.0
讓R1收不到R5的環回口。為了驗證缺省路由
這個配置就是告訴R2R3R4,你們不要把我5.5.5.5的條目告訴其他設備。
第一種方式(比較好)
[R4]bgp 100
[R4-bgp]peer 192.168.14.1 default-route-advertise
發一條缺省路由給R1
第二種方式
[R3]ip route-static 0.0.0.0 0 NULL 0
[R3]bgp 100
net 0.0.0.0 0 要宣告前必須存在路由條目
就可以下放到整個AS
第三種方式
[R1]ip route-static 0.0.0.0 0 192.168.12.2
最后在R1上dis ip routing-table
審核編輯:黃飛
?
評論
查看更多