CCIE學習筆記 1---BGP

內容簡介:

    概述

    鄰居建立

    配置,水平分割,更新源

    路由黑洞

    RR

    聯邦

    認證,刷新

    路由彙總


#################################################################################

BGP的自制系統 

    RFC對AS的定義:一組被統一管理的路由器,他們使用相同的內部網關協議和統一的度量值在AS內部路由分組,使用外部路由網關協議將分組路由器到其他AS。


    IGP  運行在自治系統內,優化最佳路由

    BGP  運作與自治系統之間,利用路由策略選路和提供安全控制

    必須交換物環路的路由信息。


    自治系統之間運行BGP原因

            AS之間的路由條目龐大

            選路機制需求


                  BGP

分類            EGP,距離(路徑)矢量,無類

封裝            TCP 179

更新目標(3層) 單播  

更新方式        增量更新,觸發更新

AD              iBGP:200  eBGP:20

度量方法        無 


路徑矢量協議

    記錄沿途的AS號

放環機制:丟掉帶自己AS號的路由 


特性 增強的距離矢量協議

    可靠的路由更新:使用TCP179

    增量更新,觸發更新

    利用keepalive來提供保活和驗證連接

    豐富的度量方法(路徑矢量或是屬性)

    支持超大規模的網絡


    最適合使用與下列情況

        一個AS允許數據包通過他透傳到其他自治系統(ISP)

        有多個連接到其他自治系統,在流量進入或離開AS時必須實施路由策略以及路由選擇


BGP數據庫  

    鄰居表:bgp永遠要手工建立

    BGP表:列出了從每一個鄰居學習到的網絡

           到一個目的網絡可以包含多個路徑

           每個路徑包含BGP屬性

    IP表 :列出到    達目的最好的路徑


####################### 以上對 BGP 的概述 ###############################################


BGP鄰居的建立  


BGP消息類型:(5種)

        open :建立鄰居用

             包含 hold time 180s;BGP routerID

            協商的信息包含:

                        版本 (ipv4)

                        AS號(AS號一致才能建立鄰居)

                        hold time

                        router ID

                        能力值(ipv4/6;***v4/6等)

        keepalive:保持鄰居 60s 因連接建立時協商大量的屬性,所以保持時不需要一一保持,所以用                   keepalive包來保持鄰居

        update:發送如何到達目的網絡的路由更新

                包含路徑屬性以及網絡

        notification:檢測到錯誤關閉連接用

                因爲BGP是在TCP上的,所以會先建立TCP連接,然後在open協商,當協商不通過,就使                 用notification斷開BGP連接

        router-refresh message:

                

BGP建立鄰居狀態

    1,idle(空閒):路由器搜索路由表,看是否有路由到達鄰居

    2,connect(連接):路由器發現了去往鄰居的路由並準備TCP的3次握手

                        建立成功就進入open sent,否則變爲active等待重新建TCP連接

    3,open sent(發送):發送open消息,然後等待一個open的到來

    4,open confirm(確認):路由器收到一個open,檢查BGP回話參數,匹配後發送keepalive確認,                            然後進入到openconfirm,開始等待自己的open報文被確認

           注意confirm狀態是在在收到對方的open後就進入了,不是收到keepalive才進入confirm狀態的。

    5,established(建立):收到了對自己open報文的keepalive確認,對等體建立;準備交換路由

                        如果收到一個notification消息,則說明自己的open不被認可,則斷開TCP連                         接,遷移到idle狀態

    6,active:該狀態正常不會出現,只有當參數不匹配,TCP建立不成功等。BGP進程會初始化與鄰居的TCP連接嘗試重新建立時纔會進入的狀態。

            卡在idle:情況

                      1,沒有路由表

                      2,EBGP鄰居,用loopback建立,沒有敲ttl的多跳

            卡在active 情況

                      思路:1,TCP建立不成功     

                            2,參數不匹配

                    TCP建立不成功:數據包有去無回,可以用帶源ping測試

                                   鄰居之間指鄰居配置錯誤

                    參數不匹配:可以sho run 查看


#########################################################################################

配置部分


    router bgp AS號

        這個命令只是進入路由配置模式;必須配置子命令激活BGP(默認激活ipv4)

        一個路由器只能配置一個BGP實例

        自治系統號確定了本地路由器屬於的自治系統

      nei  x.x.x.x mask remote AS

      no bgp default ipv4-unicast 關閉IPV4

      router-id x.x.x.x

      address-family ipv4 unicast 開啓ipv4

        nei x.x.x.x remote-as 100

        nei x.x.x.x active

    sho ip bgp summary

    sho bgp ipv4 unicast summary

    sho bgp ipv4 unicast neighbors


BGP更新源

    IBGP 建議用loopback口建鄰居

    nei x.x.x.x update-source lo0 //手工指定更新源


    EBGP 通常使用物理口建鄰居,'mt6但是如果使用了loopback口建立。要注意:

        1,靜態路由

        2,EBGP鄰居的TTL值默認是 1。所以要修改ttl>=2

        3,設置更新源

    例子:

        router bgp 200

            nei 6.1.1.1 remot 300

            nei 6.1.1.1 up lo0

            nei 6.1.1.1 ebgp-multihop 2 (不打數字默認255)


  注意:如果兩端都是用默認路由的話,默認是不主動發起建立TCP連接的。所以也就不能建立BGP鄰居


宣告網絡

network:但不能激活,激活需要neighbor

任何路由表的路由都能network,不一定要直連。


當一條路由不優的結果:

            1,自己不用

             2,不傳給其他鄰居


不優原因:  1,下一跳不可達

             2,同步被開啓,同時IGP沒有學到這個路由


◆ next-hop行爲 

    從eBGP學到的路由的下一跳,在AS內傳遞時,下一跳也是eBGP鄰居。只有在離開本AS時,下一跳才變。

    下一跳指我

        nei x.x.x.x next-hop-self


sho ip bgp summ 顯示 r //加載失敗

sho ip bgp rip-failure 

原因 AD值太高

    sho ip bgp rib-failure 通常發生在IBGP之間 同時從IGP和IBGP學到的路由,IBGP的AD=200


sho ip bgp 

    s suppressed 彙總時被抑制

    d damped     此路由總是up/down 被懲罰

    h history    路由曾經存在

    > best       優化路由

    i interna    



BGP建鄰居 

    EBGP之間用物理口建立,一條命令 neighbor xxxx remote xxx

    EBGP之間用loopback口建鄰居,3條命令 neighbor xxx remote xxx

                                        neighbor xxx update-source lox

                                        neighbor xxx ebgp-multihop 2

    IBGP之間用物理口建鄰居,1條命令 neighbor xxx remote xxx

    IBGP之間用loopback口建鄰居,3條命令 neighbor xxx remote xxx

                                        neighbor xxx update-source lox

                                        neighbor xxx next-hop-self





###########################################################################

路由黑洞    


wKiom1aoK-zTaMmGAABQ9UncpVI467.png

如圖,R1 R2建立eBGP。AS200運行ospf,R2 R5運行iBGP。R5 R6運行eBGP

      R1 network 1.1.1.1 mask 255.255.255.255

      R6 network 6.1.1.1 mask 255.255.255.255

      R2 R5 nei xxx next-hop-self

      R1 R6 sho ip ro bgp 可以看到1.1.1.1 6.1.1.1

   但是,R1 R6是ping不通的。ping 6.1.1.1 source 1.1.1.1 路由黑洞現象。

IGP中是hop-by-hop的,所以不會出現路由黑洞現象。BGP中,是AS-BY-AS的。上圖,R4沒有R1 R6的路由。

控制層面,路由R1 R6是通過eBGP和iBGG以及IGP使得iBGP的IP可達,使得路由可達;但在數據層面上,數據包回包時,源、目IP是R1 R6 而R4不知道R1 R6的ip的路由,所以丟包。


路由黑洞解決辦法 (3種)

      路由反射器 RR:

          可以打破iBGP的水平分割

      聯邦:

          BGP聯邦會修改AS-PATH屬性值

      MPLS

◆ RR重點:

        RR的防環 ----- clusterD(默認routerID)

                                    Ooignator-ID(默認routerID)        

                    只有通過RR被反射的路由纔會攜帶clusterID和origintID                           

        RR如何反射路由
              從client過來的路由器會傳給所有IBGP鄰居

              從非client過來的路由,只傳給client

 

◆ 如何部署RR

            client路由器只與他的RR建立IBGP鄰居關係

            RR要與同一個簇的client建立IBGP鄰居關係,同時也要與不同簇的RR和普通路由器建立IBGP鄰居關係(RR要全互聯)

 

 wKioL1bEEpHR9UEMAALHr7pIQ58229.png

 

 show ip bgp neighbor 顯示client鄰居關係

 show ip bgp 11.0.0.0 顯示 “received from a RR-client”

 被反射的路由會顯示 originator:x.x.x.x ,cluster list :x.x.x.x

 

總結:起源ID由RR打的,打的是client的routerID。

      RR把路由傳給client,client遵循IBGP只傳一次,EBGP隨便傳,所以client不會再把路由傳回RR,不管誰傳給client路由,client都遵循IBGP只傳一次,EBGP隨便傳


#########################################################################################


聯邦

wKioL1bERN-DqYTNAAMN0UwgUpU577.png

 小的AS號在內部傳,出了大AS號後還是標記的最外大的AS號 

 wKioL1bES3ezZnoWAAPkchzp77A873.png

IBGP------- AS-PATH不被改變

內部EBGP--- 內部聯邦的AS號被放到AS-PATH中

EBGP------- 內部聯邦AS號被移出AS-PATH

            外部AS號被放到AS-path中

小的AS號在內部傳,出了大AS號後還是標記的最外大的AS號 


內部小AS之間建立鄰居注意,如果用loopback口建立,類似與EBGP,要配置ebgp多跳

路由更新類似於IBGP:BGP屬性不變

                    整個聯邦跑一個IGP,保證下一跳最佳路徑可達

在聯邦內部的IBGP 鄰居關係必須是full mesh。可以在一個聯邦內部啓用RR以再減少TCP連接

聯邦內部的EBGP連接不受物理拓撲的限制


注意:在現網中配置聯邦,需要所有配置都必須重配,因爲聯邦內部使用小AS號啓進程

        現網中 要先no掉原有BGP 

            no router bgp as-num   ----- 去掉原有bgp

            router bgp member-as-number -配置小AS號

            bgp confederation identifier external-as-number ---配置屬於哪個大AS

            bgp confederation peers list-of-intra-confederation-as  --打上聯邦的其他小AS         例子:

wKiom1bEVReBFjPYAAKpFI5Ij3w427.png          

 聯邦內ebgp查看:

wKioL1bEVpCB_2vCAAM3lETvCus588.png         

wKiom1bEVqjhjtg6AASeTfWNZKY797.png

confed-internal--聯邦內部

confed-external--聯邦外部

external---------真正ebgp


#########################################################################################


認證

一條命令---配置密碼

router(config-router)#

        neighbor {ip-address | peer-group-name} password string

例:router bgp 100

        neighbor 12.1.1.2 password cisco

利用TCP擴展包頭完成的認證

###########################################################################################


刷新BGP路由

    

    清除BGP會話

        當策略,入ACL或屬性的變化,這種變化並不立即生效。並在未來的時間裏,一個前綴或路由使         用新的策略,這可能要較長時間使得策略生效於所有網絡。

        必須觸發策略的更新,以確保策略是立即生效於所有英雄的前綴和路由。


如何觸發策略的更新:

    硬清除 (把所有BGP鄰居down-up不要使用,會導致整個網絡down)

             clear ip bgp *

    軟清除   相對硬清 比較安全的 不會導致down鄰居,也不會影響bgp鄰居

             clear ip bgp * soft out

             clear ip bgp {*| 鄰居IP} soft in  (利用type5報文 refresh 觸發對方update)

    路由刷新


◆ BGP排錯,當BGP路由顯示不完整,查看鄰居是否起來,如果沒起來時,使用如下命令

    sho ip bgp neighbor 56.1.1.5 advertised-routes---顯示給鄰居傳了哪些路由

  如果要查看本地收到鄰居的哪些路由使用命令(一般不用)

    show ip bgp neighbors 56.1.1.6 received-routes 此命令需要在配置inbound時才生效

    neighbor 56.1.1.6 soft-reconfiguration inbound



##########################################################################################


BGP路由聚合(彙總)


    自動彙總:只會彙總本地重分佈的,不會彙總本地network的。通常不用自動彙總

wKiom1aoK-zTaMmGAABQ9UncpVI467.png    

    手動彙總(重點)

        思路:

            1,將要被彙總的路由,寫成靜態指向null0

            2,把靜態宣告進BGP

        router(config)#router bgp 123

        router(config-router)# network 192.168.0.0 mask 255.255.0.0

        router(router)#exit

        router(config)# ip route 192.168.0.0 255.255.0.0 null 0


       例: 上圖中R6:

                int lo0 6.1.1.1 255.255.255.255

                int lo1 6.1.1.2 255.255.255.255 secondary

                int lo2 6.1.1.3 255.255.255.255 sec

                int lo3 6.1.1.4 255.255.255.255 sec

                int lo4 6.1.1.5 255.255.255.255 sec

                int lo5 6.1.1.6 255.255.255.255 sec

            ◆  ip route 6.1.1.0 255.255.255.248 null 0

            ◆  router bgp 300

                    network 6.1.1.0 mask 255.255.255.248


    方法二,在任意節點彙總

            R6:

                router bgp 300

                    network 6.1.1.1 mask 255.255.255.255

                    network 6.1.1.2 mask 255.255.255.255

                    network 6.1.1.3 mask 255.255.255.255

                    network 6.1.1.4 mask 255.255.255.255

                    network 6.1.1.5 mask 255.255.255.255

                    network 6.1.1.6 mask 255.255.255.255 

            R5:(彙總R6路由)

                router bgp 200

                 ◆   aggregate-address 6.1.1.0 mask 255.255.255.248 

            sho ip bgp 產生彙總的同時,明細也依然存在

                    使用參數 summary-only 顧慮明細,只傳彙總

                 ◆    aggregate-address 6.1.1.0 mask 255.255.255.248 summary-only


            ◆ 選擇抑制(只彙總部分路由)suppress-map

               以上都是把所有路由全部彙總,實際中可能會只彙總一部分。例如只彙總.1.2.3

            利用route-map匹配要抑制的路由(即要彙總的路由)

                  route-map test permit 10

                    match ip address 4

                  access-list 4 permit 6.1.1.4 0.0.0.3(匹配了4-7)

                  router bgp 200

                    aggregate-address 6.1.1.0 mask 255.255.255.248 suppress-map test

             ◆ 條件通告advertise-map(只有滿足某些條件時,纔會產生彙總)

                例如,R5只有存在6.1.1.1這條路由時,纔會產生彙總(使用route-map)

           router bgp 200

             aggregate-address 6.1.1.0 mask 255.255.255.248 suppress-map test advertise-map test2             

            route-map test2 permit 10

                match ip address 1

            access-list 1 permit 6.1.1.1

                

           ◆ as-set 

              在其他節點產生彙總時,也會把彙總傳回給產生這條路由的源節點,因爲彙總產生時沒               有攜帶AS號

              R6:sho ip bgp 也會看到R5對R6產生的彙總

              R5:

              aggregate-address 6.1.1.0 mask 255.255.255.248 suppress-map test advertise-map test2 as-set

              sho ip bgp 看到彙總帶上AS號了 300

              R6:sho ip bgp 就看到沒有那條彙總了


           ◆ attribute-map     

                通過route-map修改其他屬性值

              route-map test3 permit 10  //通過route-map設置weigh值

                set weight 100   

              router bgp 200

                aggregate-address 6.1.1.0 mask 255.255.255.248 suppress-map test advertise-map test2 as-set attribut-map test3

              sho ip bgp //彙總路由的weight由默認32768變爲100

  









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