2016年5月16日 星期一

BGP deterministic-med and BGP always-compare-med

MED屬性典型的常被用於AS間的鏈路上,做為路徑選擇控制,但關於MED的指令分為bgp deterministic-met 及 bgp always-compare-med。一般而言MED是以到達相同的AS而有不同的peer來做MED的比較, 達到選路的效果。而bgp always-compare-med是在IOS中允許在不同的AS之間來比較MED。以低優先。bgp deterministic-met則在下面Lab來說明。



架構說明
lab說明在R1中查看,路由77.1.1.1/32會經過as200as300宣告給as100到達R1
其中r5宣告給r2r3MED值分別為100150
其中r1到達r2, r3, r4igp cost13, 11, 12
BGP在接收一個prefix時,如果有二個以上,必需會選出最優的路徑,放進路由表並宣告給neighbor
但如果收到的是三條prefix以上,BGP的比較方法,這時BGP並不是將三條或是四條拿到一起去比較,為二個二比較從上而下,最優的在跟下一個比較,且新收到的prefix會在最上面,表示最老的路徑(最穩定),會在最下面,但這會導致一些選路上的問題,這也是為何要做這個lab的原因。

LAB說明
查看R1 BGP路由
R1#show ip bgp         
BGP table version is 11, local router ID is 11.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
     Network          Next Hop            Metric LocPrf Weight Path
 * i 77.1.1.1/32      22.1.1.1               100    100      0 200 700 i
 * i                  33.1.1.1               150    100      0 200 700 i
 *>i                  44.1.1.1                 0    100      0 300 700 i
我們來分析一下為何選擇R4來的路由根據選路原則,如何比較的呢?其實IOS是將最上面的r2r3的比較後,最優的在與r4做比較選擇出best route
比較過程:
比較r2r3來的路由
               weight相同
               locpfr相同
               都不是啟源於本地
               As-path相同都是二跳
              都是來至ibgp相同
              比較MED r2優先
在比較r2r4路由
              weight相同
              locpfr相同
              都不是啟源於本地
              As-path相同都是二跳
              都是來至ibgp相同
              比較MED 無法比較,因為來至不同AS,故會跳過
              比較next-hop igp cost r4優先(12優於13)
這樣的比較結果是最合理的,對於MED的控制才能有效的利用上。
但是如果這時,r4中斷了,路由的變化為何呢?
我們去clear 一下r4bgp在查看r1bgp
R1#clear ip bgp 44.1.1.1
R1#
*Jul  6 12:12:07.551: %BGP-5-ADJCHANGE: neighbor 44.1.1.1 Down User reset
*Jul  6 12:12:07.555: %BGP_SESSION-5-ADJCHANGE: neighbor 44.1.1.1 IPv4 
Unicast topology base removed from session  User reset
*Jul  6 12:12:08.399: %BGP-5-ADJCHANGE: neighbor 44.1.1.1 Up
R1#show ip bgp
BGP table version is 13, local router ID is 11.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
     Network          Next Hop            Metric LocPrf Weight Path
 * i 77.1.1.1/32      44.1.1.1                 0    100      0 300 700 i
 * i                  22.1.1.1               100    100      0 200 700 i
 *>i                  33.1.1.1               150    100      0 200 700 i
看到了吧,選擇的結果,並不是r4了,這是為何呢?我們在來分析一下選路的經過你就會了解。由於老的路由會在下面,所以妳clear r4的路由就會在最上面。
比較經過:
這時會先比較r2r4的路由
       weight相同
       locprf相同
       都不是啟源於本地
       As-path相同都是二跳
       MED這時就不比較因為收來的as不相同
       比較next-hop igp cost r4優先(12優於13)
在比較r4r3的路由
       weight相同
       locprf相同
      都不是啟源於本地
      As-path相同都是二跳
      MED這時就不比較因為收來的as不相同
      比較next-hop igp cost r3優先(11優於12)
我們在去做一次將r3的路徑clear一下,在看一次結果?
R1#clear ip bgp 33.1.1.1
R1#
*Jul  6 12:23:03.959: %BGP-5-ADJCHANGE: neighbor 33.1.1.1 Down User reset
*Jul  6 12:23:03.959: %BGP_SESSION-5-ADJCHANGE: neighbor 33.1.1.1 IPv4 Unicast topology
base removed from session  User reset
*Jul  6 12:23:04.783: %BGP-5-ADJCHANGE: neighbor 33.1.1.1 Up
R1#show ip bgp         
BGP table version is 15, local router ID is 11.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found 
     Network          Next Hop            Metric LocPrf Weight Path
 * i 77.1.1.1/32      33.1.1.1               150    100      0 200 700 i
 * i                  44.1.1.1                 0    100      0 300 700 i
 *>i                  22.1.1.1               100    100      0 200 700 i
看到了吧,這時選擇的是r2,這時各位有去比較一下,就會知道為何要選擇r2了,這我就不在細說。
這就是特別要拿出來說明的重點,因為如果網路不穩定,會影響到選路的話,那這就網路設計就不太好,因為網路的流量將無法達到控制,這是需要注意的地方。
這時有沒有辨法決解呢?答應是有的!使用bgp deterministic-med指令用來分組,bgp會將來至同一個as的進行分組,此時MED的比較將一定會運用上。
我們來實驗一下
R1#
*Jul  6 12:23:03.959: %BGP-5-ADJCHANGE: neighbor 33.1.1.1 Down User reset
*Jul  6 12:23:03.959: %BGP_SESSION-5-ADJCHANGE: neighbor 33.1.1.1 IPv4 Unicast topology
base removed from session  User reset
*Jul  6 12:23:04.783: %BGP-5-ADJCHANGE: neighbor 33.1.1.1 Up
R1#show ip bgp         
BGP table version is 15, local router ID is 11.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
     Network          Next Hop            Metric LocPrf Weight Path
 * i 77.1.1.1/32      33.1.1.1               150    100      0 200 700 i
 * i                  44.1.1.1                 0    100      0 300 700 i
 *>i                  22.1.1.1               100    100      0 200 700 i
目前r1選擇的路門為r2,如果我們將bgp deterministic-med指令用上。
R1(config)#router bgp 100
R1(config-router)#bgp deterministic-med
R1#sh ip bgp
BGP table version is 16, local router ID is 11.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found 
     Network          Next Hop            Metric LocPrf Weight Path
 * i 77.1.1.1/32      22.1.1.1               100    100      0 200 700 i
 * i                  33.1.1.1               150    100      0 200 700 i *>i                  44.1.1.1                 0    100      0 300 700 i
結果出來了,因r2r3同面來至as 200所以會被排在同一組,同組內的會先比較,所以r2r3總是會先比較,故MED的比較一定會執行到,這就不會產生我們上面的問題

沒有留言:

張貼留言