BGP協議與策略路由
B GP(邊界閘道器協議)
BGP基本概念:
1、路由協議分為兩大類IGP(內部閘道器協議),如RIP ,IGRP,EIGRP,OSPF,ISIS和EGP(外部閘道器協議),BGP是最常用的EGP協議。
自治系統(AS)之外執行的路由選擇協議稱為外部閘道器協議(EGP)。
2、BGP分為兩類EBGP 、IBGP
BGP在位於不同自治系統的路由器之間執行時,被稱為EBGP,執行EBGP的路由器通常彼此直接相連。由於大型網路環境EBGP不能直接相連時,使用BGP的多跳屬性進行配置,使EBGP之間形成鄰居關係。
BGP在位於同一個自治系統的路由器之間執行時,被稱為IBGP,要建立IBGP鄰接關係,執行IBGP的路由器無需彼此直接相連,只要TCP可達即可形成鄰居關係。
BGP屬性:
1、AS_PATH 屬性:AS路徑屬性是一種公認強制屬性,每當路由選擇更新通過AS時,該AS的編號都被加入到路徑列表的開頭,然後將其通告給下一個EBGP鄰居。AS路徑越短路徑越優先。
2、本地優先順序屬性:是賦予一條路由的優選程度,用於比較它和其他到達同一目的地的路由,值越高,優選程度就越高。它只用於AS內部,只在IBGP對等體之間交換,不會通告給EBGP對等體。
3、路由反射器的作用:由於IBGP通過鄰居學到的路由條目不會傳遞到下一個路由,即水平分割的原理。
4、NULL0的作用:當做路由彙總時產生的,不管是手動彙總還是自動彙總,彙總的介面都是空介面NULL0,使用此介面能避免路由器轉發分組的時候尋找匹配路由,阻止分組在網路內形成環路。
5、原子彙總屬性:公認自決屬性用匯總地址把一組有類的網路匯聚成一個地址的實際應用。
6、BGP同步實際上是要求bgp路由和igp路由的同步。通過此命令實現同步r1(config-router)#synchronization
管理距離總結表:
管理距離是指一種路由協議的路由可信度。每一種路由協議按可靠性從高到低,依次分配一個信任等級,這個信任等級就叫管理距離,AD值越低,則它的優先順序越高。
特殊重發布:
1、IBGP的管理距離大於EIGRP的管理距離,重發布時IBGP的路由條目,EIGRP獲取不到。通過此命令把IBGP路由條目直接傳遞給EIGRP。
R1(config-router)#bgp redistribute-internal
2、將路由對映表用於重發布(限制性的重發布)
Access-list 1 per 192.168.1.0 0.0.0.255
route-map abc deny 10
match ip add 1
舉例:在ospf中釋出rip
redist rip subnets route-map abc
策略路由以及BGP配置、策略路由配置
1、本地優先順序屬性(local preference)只在本AS內部有效,AS內進行比較出口優先路徑。
要說明一下:只有兩條或多條路徑可選擇的情況下才會顯示出本地優先順序。只有一條路徑可選的話,不會顯示出本地優先順序。
2、MED屬性是一個任選非傳遞屬性,向外部鄰居路由器指示進入一個有多個入口的AS的優先路徑,路徑的MED值越低,它的優先順序越高。它與本地優先順序屬性不同,MED屬性是在自治系統之間交換的,該屬性通知AS 外的路由器採用哪一條路徑到達AS。MED 屬性在自治系統間交換,但MED屬性不能傳遞到第三方AS 。
BGP的配置
Router(config)#router bgp AS-number
router(config-router)#network
router(config-router)#neighbor ip-address remote-as as-number
註明:ip-address 是鄰居介面的IP地址
Show ip bgp 顯示BGP路由表中的所有條目
Show ip bgp neighbors 顯示每個BGP連線的詳細資訊
no synchronization 關閉同步
neighbor 192.168.2.2 next-hop-self 修改下一跳屬性
將彙總路由條目注入給null0
r1(config)#ip route 192.168.1.0 255.255.252.0 null0
反射器配置 :
r3(config-router)#neighbor 192.168.3.2 route-reflector-client
配置聚合後條目:(具體條目都顯示)aggregate-address 1.1.0.0 255.255.252.0 as-set
通過此命令只顯示聚合之後的條目,抑制具體的條目:aggregate-address 172.16.0.0 255.255.252.0 as-set summary-only
通過路由策略配置本地優先順序:
設定:
r(config)# access-list 1 permit 1.1.1.1 0.0.0.255
r(config)# route-map locprf (名字) per 10 (相當於第一條對映表)
r (config-route-map)# match ip add 1(檢查匹配的ACL條目)
r (config-route-map)# set local-preference 200(路由對映表將前往此路由的優先順序設定為200)
r(config)# route-map locprf per 20(第二條對映表,沒有match、set語句類似於ACL中的permit any語句,允許所有網路,這裡代表沒特指的優先順序,都為預設的)
r (config-route-map)# set local-perference
應用:
r(config)# router bgp 200
r(config-router)# nei 192.168.2.1 route-map locprf in
通過路由策略配置MED:
設定:
r(config)# access-list 1 permit 1.1.1.1 0.0.0.255
r(config)# route-map set50 (名字) per 10 (相當於第一條對映表)
r (config-route-map)# match ip add 1(檢查匹配的ACL條目)
r (config-route-map)# set metric 50(設定值為50)
r(config)# route-map set50 per 20
r (config-route-map)# set metric
r(config)#route-map set100 per 10
r(config-route-map)#match ip add 1
r(config-route-map)#set metric 100
應用:
r(config)# router bgp 200
r(config-router)# nei 192.168.1.2 route-map set50 out
r(config-router)# nei 192.168.4.1 route-map set100 out
通過BGP策略拒絕一條路由條目釋出:
如:拒絕1.1.1.1 255.255.255.0釋出到AS200
配置:
r1(config)#access-list 1 deny 1.1.1.1 0.0.0.255
r1(config)#access-list 1 permit any
應用:
r1(config-router)#neighbor 192.168.1.2 distribute-list 1 out
r1(config-router)#neighbor 192.168.4.1 distribute-list 1 out
過慮整個AS內的路由條目:
如:BGP-AS300的路由條目:
配置:
ip as-path access-list 1 deny ¬¬¬¬300
ip as-path access-list 1 permit .*
應用:
neighbor 192.168.4.1 filter-list 1 out
EBGP多跳配置 :
r(config-router)#neighbor ip地址 ebgp-multihop hops(表示跳數)
基於策略的實際專案例項(共 4個需求)
1、
需求A:兩個地市拉了兩條專線,拉兩條專線主要目的為了控制專線走法,讓193.1.1.1/24 走S口,193.1.2.1/24走E口。
實現方法如下:(應用了基於源地址的策略路由配置)
路由器預設是通過路由表來選路,我們要讓路由不通過路由表選路,先通過策略來選路,必須先這樣配置:
r(config)#ip local policy route-map lab1(名字)
需求A配置:
access-list 1 permit 193.1.1.0 0.0.0.255
access-list 2 permit 193.1.2.0 0.0.0.255
route-map lab1 permit 10
match ip address 1
set interface Serial1/3
route-map lab1 permit 20
match ip address 2
set interface Ethernet2/0
在介面應用:ip policy route-map lab1
測試方法:
通過此命令測試 Traceroute ip
通過抓包 Debug ip policy
需求B:兩條專線,上面跑語音包101-1000位元組,下面跑資料包64-100位元組
需求B配置:
route-map lab1 per 10
match ip add 1
match length 64 100
set ip next-hop 192.168.3.2 (對方下一跳)
route-map lab1 per 20
match ip add 2
match length 101 1000
set ip next-hop 192.168.33.2 (對方下一跳)
通過實驗我們發現,超出包流量的資料可以照常通過,只是不走策略而已,如何徹底限制,通過以下命令將超出包流量的資料扔給NULL0。
Route-map lab1 per 30
Set interface null 0
需求C:應用telnet時走下面路徑,應用www時走上面路徑,應該怎樣?
需求C配置:
access-list 102 permit tcp any any eq telnet
access-list 103 permit tcp any any eq www
route-map lab1 permit 10
match ip address 102
set interface Ethernet1/1
set ip next-hop 192.168.1.2
route-map lab1 permit 20
match ip address 103
set interface Serial2/2
set ip next-hop 192.168.11.2
需求D:如果專用WAN鏈路出現故障,結果將無法訪問總部的e-mail伺服器和internet,我們如何解決?
需求D解決方案:新增一條浮動預設靜態路由,浮動靜態路由是AD比動態路由協議大的靜態路由。
Ip route 0.0.0.0 0.0.0.0 192.168.1.2 100 (注:100為管理距離,此管理的設定決定於你所應用的路由協議)