BGP(Border Gateway Protocol )邊界網關協議03

  無IGP的IBGP

 

R1,R2,R3使用物理口去建立鄰居,底層不需要IGP,只需要R1將直連的兩條路由宣告進BGP進程使R2,R3可以學到路由,發送TCP連接即可。

 

將IGP注入BGP

 

 

R3:

router eigrp 90

 network 3.0.0.0

 network 34.0.0.0

 network 172.168.0.0

 network 192.168.3.0

 no auto-summary

 

router bgp 34

 bgp router-id 3.3.3.3

 redistribute eigrp 90 route-map filter

 

access-list 1 permit 34.0.0.0

!

route-map filter deny 10

 match ip address 1

!

route-map filter permit 20

 

在R2上看現象:

   Network          Next Hop            Metric LocPrf Weight Path

*> 3.3.3.0/24       23.0.0.3                 0             0            34 ?

*> 4.4.4.0/24       23.0.0.3           2297856                  0 34 ?  如果是默認的mask則不顯示。

*> 172.168.3.0/24   23.0.0.3                 0                    0 34 ?  

*> 192.168.3.0      23.0.0.3                 0                       0 34 ?

由於重分佈的時候沒有設定METRIC,因此4.4.4.0這條EIGRP路由進入BGP的時候採用默認的METRIC。

使用:default-metric來調整重分佈路由的COST

改動以後,硬清鄰居

   Network          Next Hop            Metric LocPrf Weight Path

*> 3.3.3.0/24       23.0.0.3                 0             0 34 ?

*> 4.4.4.0/24       23.0.0.3               100             0 34 ?

自動彙總:
在將EIGRP重分佈近BGP的R3上,開啓自動彙總,到R2上去看
   Network          Next Hop            Metric LocPrf Weight Path
*> 3.0.0.0          23.0.0.3                 0                 0 34 ?
*> 4.0.0.0          23.0.0.3               100               0 34 ?
*> 172.168.0.0      23.0.0.3                 0             0 34 ?
*> 192.168.3.0      23.0.0.3                 0             0 34 ?
 
因爲是EIGRP,注意在IGP中也要關閉自動彙總纔會有效,否則只關閉BGP的自動彙總是沒有效果的。
 
將IGP重分佈近BGP的好處是在幾乎不改變BGP配置的情況下,將域內路由的變換宣告給BGP,當域內路由發生變的時候,BGP也會感知到。如果想僅將某些內部路由通告給EBGP的時候,就要使用路由過濾。另一種可選方案就是BGP進程中的network。BGP中的network命令前綴需要和IP路由表完全匹配,這條路由纔會進入BGP表並被向外宣告。(其實需要說明,IGP中的network始終是network接口,BGP的則是路由)network最多可以指定200個地址,如果需要更多,就要使用重分發。
 
將BGP注入IGP

R5的BGP中通告幾條路由,如果我需要使整個AS34學到AS5的路由,可以將BGP路由注入到AS34的IGP中。

R5環回口:

100.1.0.0

100.1.1.0

100.1.2.0

100.1.3.0

R3:

R3(config-router)#redistribute bgp 34 metric 1000 100 255 1 1500 

爲什麼不將BGP重分佈進IGP中,1.重分佈會將每條BGP路由宣告給IGP,如果需要有選擇的去重分發,仍然需要路由過濾。2.目前BGP路由表過大,IGP承受不了。面臨網絡崩潰

 

也可以在R3上寫靜態路由,指向外面,然後將靜態重分佈進EIGRP,因爲R4上沒路由,只需要將包扔給R3或其他路由器,其他路由器上有相應路由,就可以處理轉發

R3:

ip route 100.1.0.0 255.255.252.0 Null0

router eigrp 90

 redistribute static metric 1000 100 255 1 1500

 

R4上看:

     100.0.0.0/22 is subnetted, 1 subnets

D EX    100.1.0.0 [170/2588160] via 34.0.0.3, 00:04:51, FastEthernet0/0

 

在R3上將R4的路由通告出去。有去有回。

這種方法,如若需要有針對性的去通告路由,也需要做過濾,常用:1.distribute-list 2.route-map

BackDoor

問題提出:

1、R2和R3之間用以太網鏈路相連,R2和R3之間運行一個IGP協議,並將172.16.1.0宣告進IGP。

2、三臺路由器運行BGP,組成3個AS

3、R1與R2建EBGP鄰居,R1和R3建EBGP鄰居。

4、在R2上將172.16.1.0網絡再宣告進BGP。

5、R3通過IGP學到172.16.1.0路由,同時也通過EBGP鄰居學到172.16.1.0路由。它將比較兩條路由的AD值來選最優路由,由於EBGP路由的AD值默認爲20,所以R3選擇EBGP路由爲最優路由,並放入路由表。而實際上這條EBGP路由所連接的是一條T1的鏈路,帶寬是小於R2與R3之間的以太網鏈路的。並非最好的路由。

 

總結:

·通過IGP學到某條路由,又從EBGP學到相同的路由。

 由於EBGP AD=20,小於IGP的AD,所以會優先EBGP的路由,

 但實際路徑可能從IGP走更優。

 

解決:

R3學到兩條相同的路由,用以下方法在BGP進程下改,實際上就是提高了從BGP學到的路由的AD值

 

R3(config-router)#network 172.16.1.0 mask 255.255.255.0 backdoor

                    

通過這樣的宣告將EBGP學到的路由的AD值提高,從20提高到200

 

 

Next-hop-unchange

問題的產生:

1、三臺路由器先運行一個IGP協議,注意,172.16.1.0不用宣告進IGP

2、然後運行BGP,R1與R2建立EBGP鄰居,R2與R3建立IBGP鄰居

3、在R3上將172.16.1.0宣告進BGP

4、觀察R1與R2上的172.16.1.0路由的下一跳,看看有啥問題產生

原理:因爲EBGP的AD小於IGP導致R1選路的時候,IGP的路由被EBGP覆蓋!

 

你將會發現,在R1與R2之間形成了環路。

 

解法1:

在R2上做:

R2:

router bgp 2

  neighbor 1.1.1.1 next-hop-unchanged   //告訴鄰居下一跳不改變,推薦做法

 

這種方法有兩個限制:

1、有的IOS不支持unchaged命令

2、EBGP必須要有多跳

 

R2(config-router)#nei 12.0.0.1 next-hop-unchanged 

%BGP: Can propagate the nexthop only to multi-hop EBGP neighbor  必須要有多跳,也就是說通常要用環回口建EBGP鄰居,如果是用直連接口建EBGP鄰居,也要打上多跳命令才行。否則上面的命令不起作用。

 

解法2:

在R1上修改:

R1:

route-map WOLF

  set ip next-hop 13.1.1.3

 

router bgp 1

  neighbor 12.1.1.2 route-map WOLF in  //將鄰居12.1.1.2傳過來的路由的下一跳改爲13.1.1.3

 

聚合路由:

BGP聚合方法1.靜態路由,然後network靜態路由,2.aggregate-address。

1.R1上:

int lo 1

ip add 192.168.192.1 255.255.255.0

int lo 2

ip add 192.168.193.1 255.255.255.0

int lo 3

ip add 192.168.194.1 255.255.255.0

int lo 4

ip add 192.168.195.1 255.255.255.0

int lo 5

ip add 192.168.196.1 255.255.255.0

int lo 6

ip add 192.168.197.1 255.255.255.0

int lo 7

ip add 192.168.198.1 255.255.255.0

int lo 8

ip add 192.168.199.1 255.255.255.0

 

ip route 192.168.192.0 255.255.248.0 Null0

 

R2上看:

     12.0.0.0/24 is subnetted, 1 subnets

C       12.0.0.0 is directly connected, Serial1/0

B    192.168.192.0/21 [20/0] via 12.0.0.1, 00:00:07

 

2.

R1上:aggregate-address 192.168.192.0 255.255.248.0 summary-only  BGP彙總默認不會抑制明細,除非打上此命令

R2上: aggregate-address 192.168.192.0 255.255.248.0 as-set summary-only 還原此明細路由的AS-PATH屬性,如果不還原,此聚合路由會再通告給R1,加入R1上明細掛了一條以後,會發生環路。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章