MED는 IBGP Neighbor로는 무조건 Update되지만, EBGP Neighbor에게는 Local-AS에서 광고된 Route에 대해서만 MED 값을 Update한다. 그렇다면, BGP는 해당 Route가 Local-AS에서 최초로 광고되었는지, 아니면 다른 AS에서 유입되었는지 어떻게 판단할 수 있는가? 그것은 AS_PATH Attribute를 보고 판단한다.

  앞에서 설명했듯이 Local-AS에서 광고된 Route에 대해서는 AS_PATH Attribute 값이 ’empty’ 상태이다. 즉, EBGP로 Update 할 때, AS_PATH Attribute 값을 확인하여 값이 ’empty’로 비어 있으면 EBGP로 MED를 Update하고, 값이 비어있지 않으면 MED를 전달하지 않는 것이다.

  다음 Topology를 통해 결과 값을 확인해 보자.

  R2에서 ‘1.1.1.1/32’를 최초로 BGP로 ‘network’ command로 광고하면 현재까지 우리가 배운 BGP Attribute의 정보는 다음과 같을 것이다.

  • Attribute 1 (ORIGIN) = IGP(i)
  • Attribute 2 (AS_PATH) = empty
  • Attribute 3 (NEXT_HOP) = 10.10.12.2
  • Attribute 4 (MED) = 1
R2#show ip bgp
BGP table version is 2, local router ID is 2.2.2.2
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
 *>  1.1.1.1/32       10.10.12.2               1         32768 i

  R2는 ‘1.1.1.1/32’의 AS_PATH Attribute가 ’empty’이기 떄문에 EBGP로 MED 값을 전달할 수 있다. 그리고, EBGP로 Update 할 때 NEXT_HOP이 변경되고, AS_PATH 내에 AS 정보가 추가되므로 R3에서는 Attribute가 다음과 같이 변경될 것이다.

  • Attribute 1 (ORIGIN) = IGP(i)
  • Attribute 2 (AS_PATH) = ‘1’
  • Attribute 3 (NEXT_HOP) = 10.10.23.2
  • Attribute 4 (MED) = 1
R3#show ip bgp
BGP table version is 1, local router ID is 3.3.3.3
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
*> 1.1.1.1/32       10.10.23.2               1             0 1 i

  그리고, MED는 IBGP로는 항상 전달되기 때문에 R3가 R4에게 IBGP로 Update 하면 R4에서 결과값은 다음과 같을 것이다.

R4#show ip bgp
BGP table version is 1, local router ID is 4.4.4.4
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
*>i 1.1.1.1/32       10.10.23.2               1    100      0 1 i
R4#show ip bgp 1.1.1.1/32
BGP routing table entry for 1.1.1.1/32, version 2
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Flag: 0x820
  Advertised to update-groups:
        2
  1
    10.10.23.2 (metric 1) from 3.3.3.3 (3.3.3.3)
      Origin IGP, metric 1, localpref 100, valid, internal, best

  여기서 BGP Attribute를 살펴보면 다음과 같다.

  • Attribute 1 (ORIGIN) = IGP(i)
  • Attribute 2 (AS_PATH) = ‘1’
  • Attribute 3 (NEXT_HOP) = 10.10.23.2
  • Attribute 4 (MED) = 1

  이제 R4가 R5에게 EBGP로 Update를 해야 하는데, AS_PATH Attribute 값이 ’empty’가 아니다. 그래서, R4는 해당 Route가 Local-AS에서 최초로 광고한 정보가 아니라고 판단하여 MED Attribute를 삭제하고 Update 하게 된다.

  그래서, R5에서 BGP 정보를 보면 MED 값이 사라진 것을 확인할 수 있다.

R5#show ip bgp
BGP table version is 2, local router ID is 10.10.45.5
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
*> 1.1.1.1/32       10.10.45.4                             0 2 1 i
R5#show ip bgp 1.1.1.1/32
BGP routing table entry for 1.1.1.1/32, version 2
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Flag: 0x820
  Not advertised to any peer
  2 1
    10.10.45.4 from 10.10.45.4 (4.4.4.4)
      Origin IGP, localpref 100, valid, external, best

  그래서, MED는 직접 연결되어 있는 AS에게만 Update 할 수 있는 값이다. 그리고, 사라진 MED 값을 다시 Route-map을 이용하여 Update를 보내거나 받을 때 재설정할 수 있는데 이 경우에 어떻게 Update 되는지는 다음시간에 알아보기로 하자.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.