CCIE實驗備考之BGP(1)

版權聲明:原創作品,謝絕轉載!否則將追究法律責任。
 
    3.對bgp不夠了解
    4.as間帶寬太小
----------------------------------------------------------------------------------
bgp的防環機制:bgp是通過as-path來做路由策略,到達目標網絡時每經過一個AS,就把AS號記錄到它的path中,如果路由器收到一個路徑中含有他本地的AS號,這就出現了環路。
----------------------------------------------------------------------------------
bgp表只能看到AS樹,也就是到達目的網段所經過的AS號,以及下一跳等信息,而IGP表是顯示域內拓撲結構,可以通過命令show ip bgp命令查看,*表示這條路由可得,>表示這是最佳的,i是域內的網段
----------------------------------------------------------------------------------
bgp可以支持負載均衡,一般情況下,當某個特殊目的網絡有並列的,等開銷的路徑時,cisco缺省執行ebgp只選擇一條路徑,可以使用命令 maximum-paths 改變,注意只能對ebgp有效
---------------------------------------------------------------------------------
bgp表:
     鄰居表:列出周圍的鄰居,可以是直連也可以不直連
     轉發表:從鄰居那學習到的,包含到達某個目的的多條路徑
     路由表:最好的路徑
----------------------------------------------------------------------------------
bgp具有4種包的類型:
open:hello,是我
                   keepalive: 我還活着,
                   update: 有新東西了,
                   notification:我不和你玩了
bgp的open包:發送bgp版本(默認爲V4),as號,holdtime(180s),router-id(最高的loopback ip值), 其它的操作特性
keepalive:保持時間,默認位60秒,是不可靠傳輸
update:包括到達目標網絡的路徑和屬性network layer reachability information(NLRI)網絡層可靠信息,公佈ip前綴和前綴的字節數
       path attribute:屬性:起點,as路徑,鄰居,as間的度等
       withdrawn routes:不可達的路由撤消的目的地址字節組(長度和前綴)
notification:出現錯誤,監測到後斷開連接併發送通知給對方
----------------------------------------------------------------------------------
bgp和isis一樣以鏈路爲邊界,ebgp的peer鄰居在不同的as之間的路由器,必須要求直連,ibgp的鄰居peer要求在同一as中的路由器,不要求直連的,但必須建立tcp連接bgp路由一般不會再發布到igp中去,因爲bgp的內容太龐大,但可以使用靜態路由或默認路由,但igp會再發布
到bgp中,以便告訴外部如何進入內部網絡
----------------------------------------------------------------------------------
bgp的啓動機制:
1,idle states:開始狀態
2,connect state:連接狀態,如果建立連接成功,向鄰居發open消息,轉入open狀態。如果不成功,繼續監聽發出的連接,重置計時器並轉移到active狀態。如果在連接狀態下,連接計時器超時後將重新開始,並再次與鄰居建鄰居
3,active激活狀態:試圖與鄰居建立tcp連接的過程
4,open send狀態:open消息發送狀態,發送open消息,bgp等待鄰居發來的open消息
                 收到open消息,發現差錯,將發notification消息並轉入idle狀態
                 收到open消息,沒有發現差錯,將發送keepalive消息並將此計時器清零
                 收到tcp斷開消息,本地斷開bgp連接,重置connect計時器,轉入active狀態
5,open confirm狀態:open消息確認狀態,等待一個keepalive消息或notification消息
                 收到一個keepalive消息,轉移到establish狀態
                 收到一個notification消息,轉入idle狀態,斷開tcp連接
                 holdtime超時,發送notification並斷開連接,轉入idle狀態
00:47:37: BGP: 2.2.2.2 OPEN has ROUTE-REFRESH capability(new) for all address-families
00:47:37: BGP: 2.2.2.2 went from OpenSent to OpenConfirm
00:47:37: BGP: 2.2.2.2 send message type 1, length (incl. header) 45
00:47:37: BGP: 2.2.2.2 send message type 4, length (incl. header) 19
00:47:37: BGP: 2.2.2.2 rcv message type 4, length (excl. header) 0
00:47:37: BGP: 2.2.2.2 went from OpenConfirm to Established
00:47:37: %BGP-5-ADJCHANGE: neighbor 2.2.2.2 Up
----------------------------------------------------------------------------------
ibgp的水平分割:在一個as中,從ibgp學習到的路由絕對不會傳遞給其它的鄰居,igp是基於端口的水平分割,而ibgp是基於鄰居的水平分割
----------------------------------------------------------------------------------
ibgp的全網連接:在一個as中,bgp的鄰居路由器通常要求全互連,但是如果有n個路由器,就必須建立n(n-1)/2個連接,將會加大巨大的成本,如果不建立全互連,將會出現丟包的現象。
解決方法:將bgp重分佈到igp中,但我們一般不建議這麼做。加入到遠端的靜態路由,然後再發布到igp中
----------------------------------------------------------------------------------
bgp的屬性
公認必遵:
 origin:可信度,0-igp學到,1-egp學到,3-incomplete其它手段學到,igp>bgp>重分佈
 as-path:as路徑,逐級逐級的疊加,如果發現有自己的as存在,就有可能出現環路
 next-hop:下一跳路由器的地址,
 如果宣告路由器和接收路由器在不同as中,下一跳爲正在宣告的路由器接口的ip
 如果宣告路由器和接收路由器在同一個as中,並且更新的目的地也在同一as中,下一跳爲宣告路由的鄰居的ip
 如果宣告路由器和接收路由器是內部peer,但更新消息指向不同AS,下一跳爲學習到路由的外部peer的ip
公認可遵:
 local-pref:本地優先級,只在本地有效,不會傳到其他區域,值越高優先級越高,默認爲100,是控制流出區域的
 automic_aggre:警告下游路由器聚合時產生路徑信息丟失,可設置屬性aggregate通告
可選傳輸:
 aggregator:通告匯聚點,採用rid作爲匯聚的地址
 community:團隊,相當於一個模板,一組成員使用相同的策略,由4個字節構成,前面兩個是as號,後面兩個定義表示符,cisco正好反過來,你可以用ip bgpcommuity new-format修改
 NO_EXPORT:允許在鄰居as內公佈但不允許鄰居as在發佈其它的as
 NONE:刪除現有的團隊屬性
 NO_ADVERTISE:不在ibgp鄰居間傳遞帶有該屬性的路由
 DELETE:值刪除匹配特定團隊列表的屬性
可選非傳遞:
 originator_id:由rp使用,一個32比特的值,記錄本地as離路由發起者的rid
 cluster_list:路由反射簇的序號,由rp路由反射器使用,如果一個簇中有多個rp,需要bgp cluster-id手工指定id
 multi_exit_disc:用於影響流入as的數據,它允許一個as將其首選入口通知給另一個as,可以在as間傳輸,最低med值被選擇,默認爲0
cisco專有:weight:權重,離開as的報文,來選擇那一條。它是不傳遞,從peer學到的所有路由器的權重值爲0,由本地路由其產生的所有路由的權重值爲32768,值越高越會被選擇
r5#show ip bgp
BGP table version is 21, local router ID is 5.5.5.5
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network          Next Hop            Metric LocPrf Weight Path
*> 1.1.1.0/24       196.1.1.4                              0 65101 65100 i
*> 2.2.2.0/24       196.1.1.4                              0 65101 i
*> 4.4.4.0/24       196.1.1.4                0             0 65101 i
*> 5.5.5.0/24       0.0.0.0                  0         32768 i            
----------------------------------------------------------------------------------
RIB:BGP路由信息庫
      Adj-RIB-IN                      Loc-RIB                     Adj-RIB-OUT
    ----------------------> |  ------------------------- | ---------------------->
  判斷優先級,做出選擇 進入        最優的路由路徑                適合的路由   出
---------------------------------------------------------------------------------
bgp選路原則:
                         |權重weight(越大越好)
                         |local-pref本地優先級(越大越好)
                         |本地路由優先(0.0.0.0)
                         |as-path(越短越好)
                         | 起源(igp>bgp>重分佈)
                         | MED (越低越好)
                         | ebgp>ibgp
                         | 下一跳igp度量值(越低的)
                         | 越老的路徑會被選擇
                         | bgp鄰居的RouterID(越小越好)
                         > ip地址(最小的)
----------------------------------------------------------------------------------
ibgp和igp的同步:一個從ibgp鄰居學習到的路由信息在進入igp表或發佈給其他bgp對等體之前,igp必須知道這條路由信息,否則不會發布
r2#show ip bgp
BGP table version is 7, local router ID is 172.16.3.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network          Next Hop            Metric LocPrf Weight Path
* i100.100.100.0/24 172.16.4.5               0    100      0 300 i
r>i172.16.1.0/24    172.16.2.1               0    100      0 i
* i172.16.2.0/24    172.16.2.1               0    100      0 i
*>                  0.0.0.0                  0         32768 i
* i172.16.3.0/24    172.16.3.3               0    100      0 i
*>                  0.0.0.0                  0         32768 i
r>i172.16.4.0/24    172.16.3.3               0    100      0 i
* i200.200.200.0    172.16.1.4               0    100      0 200 i
r2#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route
Gateway of last resort is not set
     172.16.0.0/24 is subnetted, 4 subnets
R       172.16.4.0 [120/1] via 172.16.3.3, 00:00:20, Serial0
R       172.16.1.0 [120/1] via 172.16.2.1, 00:00:05, Serial1
C       172.16.2.0 is directly connected, Serial1
C       172.16.3.0 is directly connected, Serial0
r2中的bgp表中有100.100.100.0和200.200.200.0網絡,雖然它們都是全網互連,但它的ibgp和igp沒有同步,所以它無法將路由發佈給其他的peer,這樣,r4和r5都沒有學到對方的路由
解決方案:
       1,將bgp重發布到igp中,一般我們不建議
          我們分別在r1和r3上做重發布操作(只需要在邊界上)
          如:
              router rip
                 redistribute bgp 100 metric 5
r2#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route
Gateway of last resort is not set
R    200.200.200.0/24 [120/5] via 172.16.2.1, 00:00:14, Serial1
     100.0.0.0/24 is subnetted, 1 subnets
R       100.100.100.0 [120/5] via 172.16.3.3, 00:00:07, Serial0
     172.16.0.0/24 is subnetted, 4 subnets
R       172.16.4.0 [120/1] via 172.16.3.3, 00:00:07, Serial0
R       172.16.1.0 [120/1] via 172.16.2.1, 00:00:14, Serial1
C       172.16.2.0 is directly connected, Serial1
C       172.16.3.0 is directly connected, Serial0
r5#show ip bgp
BGP table version is 9, local router ID is 100.100.100.100
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network          Next Hop            Metric LocPrf Weight Path
*> 100.100.100.0/24 0.0.0.0                  0         32768 i
*> 172.16.1.0/24    172.16.4.3                             0 100 i
*> 172.16.2.0/24    172.16.4.3                             0 100 i
*> 172.16.3.0/24    172.16.4.3               0             0 100 i
*  172.16.4.0/24    172.16.4.3               0             0 100 i
*>                  0.0.0.0                  0         32768 i
*> 200.200.200.0    172.16.4.3                             0 100 200 i
      
       2.ibgp鄰居全網連接,關閉自動同步的功能
         router bgp 100
            no syn
-------------------------------------------------------------------------------
路由反射器RP:
在大型網絡中,as間要建立一個全互連的關係,一是成本大,二是工作量大,要有n臺路由器,你要建立n*(n-1)/2,當你使用RP技術,提供了C/S機制,建立鄰居的條目是N-1。
規則:
    1,如果路由是從非客戶的 IBGP對等學習到的,只將它反射給客戶
    2,如果路由是從客戶處學習到的,將它反射給除了發起該路由的客戶外所有的客戶以及非客戶
    3,如果路由是從 EBGP鄰居學來的,將它反射給所有的客戶和非客戶
舉例:只需要在服務端設置就可以了
    router bgp 100
      no synchronization
      bgp log-neighbor-changes
      network 172.16.2.0 mask 255.255.255.0
      network 172.16.3.0 mask 255.255.255.0
      neighbor 172.16.2.1 remote-as 100
      neighbor 172.16.2.1 route-reflector-client
      neighbor 172.16.3.3 remote-as 100
      neighbor 172.16.3.3 route-reflector-client
      no auto-summary
----------------------------------------------------------------------------------
啓用bgp進程
       router bgp AS號
一個路由器只能啓用一個bgp實例,不會把路由器放入到多個bgp中
----------------------------------------------------------------------------------
建立對等體關係:
1)neighbor 鄰居地址/鄰居組名 remote-as AS號
 ebgp鄰居必須是路由器直連的那個地址,如果是ibgp鄰居,就不一定是直連的,可以是as中任意一個地址,但必須保障tcp連通。
 ibgp一般用loopback端口來作爲鄰居的地址
2)neighbor 鄰居地址/鄰居組名 shutdown
         暫時的鄰居關係不可用,但鄰居關係並沒有刪除,用於維護和策略
3)neighbor 鄰居地址 update-source loopback接口
       如果用物理接口指定爲鄰居的地址,必須要求源地址匹配,如果不匹配會出現數據包丟失的問題,或者網絡出現問題,源地址出現問題,這樣鄰居關係將不穩定,爲了保障鄰居關係穩定,一致不變,最好用loopback接口,對於ebgp鄰居來說,必須還要額外加命令(還必須能夠訪問到,比如使用靜態路由或者路由)
 4)neighbor 鄰居地址 ebgp-multihop 跳數值(默認爲255)
 5)neighbor 鄰居地址 next-hop-self
       ebgp到ibgp,下一跳地址是不會改變的,這樣對於像幀中繼網絡(hub-to-spoke)來說,可能會造成網絡不可達的問題,這時候需要修改下一跳地址
 6)neighbor 對等體組名 peer-group
       創建對等體組
 7)neighbor 鄰居地址 peer-group 對等體組名
       添加成員到對等體組中
----------------------------------------------------------------------------------
宣告網絡:
        network 網絡號 mask 子網掩碼
        bgp支持vlsm和cidr,所以網絡和子網掩碼可以使用VLSM,但是要注意宣告的網絡如果和接口的IP地址掩碼不匹配,將不會進入到BGP表中,如果希望能進入BGP表,需要添加一條命令如:ip route 192.1.1.0 255.255.255.0 null0,這個命令還可以進行網絡的彙總
--------------------------------------------------------------------------------
         bgp log-neighbor-changes
         network 200.200.200.0
         redistribute static
         neighbor 10.1.1.9 remote-as 100
         default-information originate
         no auto-summary
      !
      ip route 0.0.0.0 0.0.0.0 Ethernet0
     
      r4#show ip bgp
      BGP table version is 7, local router ID is 200.200.200.201
      Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
      Origin codes: i - IGP, e - EGP, ? - incomplete
      Network          Next Hop            Metric LocPrf Weight Path
      *> 0.0.0.0          0.0.0.0                  0         32768 ?
      *>i192.168.193.0    10.1.1.9                 0    100      0 50 i
      *>i192.168.194.0    10.1.1.9                 0    100      0 50 i
      *>i192.168.196.0    10.1.1.9                 0    100      0 200 i
      *>i192.168.198.0    10.1.1.9                 0    100      0 200 i
      *> 200.200.200.0    0.0.0.0                  0         32768 i
      r3#show ip route
      Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route
       Gateway of last resort is 10.1.1.10 to network 0.0.0.0
       ......
            10.0.0.0/30 is subnetted, 3 subnets
       C       10.1.1.8 is directly connected, Serial1
       C       10.1.1.0 is directly connected, Serial0
       C       10.1.1.4 is directly connected, Ethernet0
       B*   0.0.0.0/0 [200/0] via 10.1.1.10, 00:03:43
       B    192.168.192.0/21 [200/0] via 0.0.0.0, 02:23:03, Null0
----------------------------------------------------------------------------------
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章