RFC4271 MULTI_EXIT_DISC 정의

The MULTI_EXIT_DISC is an optional non-transitive attribute that is intended to
be used on external (inter-AS) links to discriminate among multiple exit or entry
points to the same neighboring AS. The value of the MULTI_EXIT_DISC attribute is
a four-octet unsigned number, called a metric. All other factors being equal, 
the exit point with the lower metric SHOULD be preferred. If received over EBGP, 
the MULTI_EXIT_DISC attribute MAY be propagated over IBGP to other BGP speakers 
within the same AS. The MULTI_EXIT_DISC attribute received from a neighboring AS 
MUST NOT be propagated to other neighboring ASes.

  MULTI_EXIT_DISC(MED) attribute는 Optional non-transitive이다. ‘Optional’ attribute란 처음 BGP가 만들어질 당시에는 없었던 attribute 였는데, BGP가 발전하면서 필요에 의해 새롭게 생긴 attribute이다. 그렇기 때문에 BGP가 구동되는 전세계 장비 중 일부 장비에서는 인식하지 못할 수 있는 attribute이다.

  그런데, 사실 MED는 BGPv3에서 ‘INTER-AS METRIC’이라는 이름으로 처음 생성된 attribute이기 때문에 BGPv4가 동작하는 모든 장비가 알고 있는 attribute이다. 그래서, ‘Well-known’ attribute로 구분해도 되지만, BGPv3의 optional attribute인 ‘INTER-AS METRIC’을 16bit에서 32bit로 변경하고, 이름도 ‘MULTI_EXIT_DISC’로 변경하면서 ‘Optional’ attribute로 유지시켰다.

  그리고, BGP에서는 bestpath를 선출하기 위해 사용하는 optional attribute는 non-transitive로 만들어 중간에 해당 attribute를 인식하지 못하는 장비가 있는 경우, 해당 attribute를 전달하지 못 하도록 하였다. 자신은 그 값을 사용하지 않고 bestpath를 선출하는데, 다른 장비에서 사용하게 되면 Routing loop이 발생할 수 있기 때문이다. MED는 BGPv3부터 bestpath를 선출하는데 사용되었기 때문에 ‘Optional non-transitive’ attribute로 구분되어 왔다.

  그런가하면, 그냥 information에 지나지 않는 optional attribute는 transitive로 만들어 자신이 인식하지 못하는 attribute라도 다음 장비에게 그대로 전달할 수 있도록 하였다.

  그리고, MED는 다양한 특징을 가지고 있는데, 이 특징을 이해하는 것이 그리 만만치 않다. 그 특징들에 대해 하나씩 살펴보도록 하자.

MED는 최초 BGP로 광고될 당시 IGP의 metric 값으로 설정된다

  Cisco IOS에서는 MED라는 단어를 사용하지 않고 ‘metric’이라는 단어를 사용한다. 이는 MED 값이 BGP로 광고될 당시 IGP의 metric 값으로 설정되기 때문이다.

R3(config-router)#do show ip route
Codes: L - local, 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, su - IS-IS summary, 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, H - NHRP, l - LISP
       + - replicated route, % - next hop override

Gateway of last resort is not set

      1.0.0.0/32 is subnetted, 1 subnets
O        1.1.1.1 [110/3] via 10.10.23.2, 00:00:00, FastEthernet0/0
      2.0.0.0/32 is subnetted, 1 subnets
D        2.2.2.2 [90/156160] via 10.10.23.2, 00:03:48, FastEthernet0/0
      3.0.0.0/32 is subnetted, 1 subnets
C        3.3.3.3 is directly connected, Loopback0
      10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
O        10.10.12.0/24 [110/2] via 10.10.23.2, 00:01:06, FastEthernet0/0
C        10.10.23.0/24 is directly connected, FastEthernet0/0
L        10.10.23.3/32 is directly connected, FastEthernet0/0

  먼저 위 Routing table에 있는 ‘1.1.1.1/32’, ‘2.2.2.2/32’, ‘3.3.3.3/32’ Network을 BGP로 광고한 후 MED 값이 확인해 보도록 하자.

R3(config)#router bgp 10
R3(config-router)#network 1.1.1.1 mask 255.255.255.255
R3(config-router)#network 2.2.2.2 mask 255.255.255.255
R3(config-router)#network 3.3.3.3 mask 255.255.255.255
R3#show ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 2
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Refresh Epoch 1
  Local
    10.10.23.2 from 0.0.0.0 (3.3.3.3)
      Origin IGP, metric 3, localpref 100, weight 32768, valid, sourced, local, best
      rx pathid: 0, tx pathid: 0x0
R3#show ip bgp 2.2.2.2
BGP routing table entry for 2.2.2.2/32, version 3
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Refresh Epoch 1
  Local
    10.10.23.2 from 0.0.0.0 (3.3.3.3)
      Origin IGP, metric 156160, localpref 100, weight 32768, valid, sourced, local, best
      rx pathid: 0, tx pathid: 0x0
R3#show ip bgp 3.3.3.3
BGP routing table entry for 3.3.3.3/32, version 4
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Refresh Epoch 1
  Local
    0.0.0.0 from 0.0.0.0 (3.3.3.3)
      Origin IGP, metric 0, localpref 100, weight 32768, valid, sourced, local, best
      rx pathid: 0, tx pathid: 0x0

  IGP의 metric 값으로 MED 값이 설정된 것을 확인할 수 있다. 이번에는 redistribute를 통하여 IGP 정보를 가져온 경우 MED 값을 확인해 보자.

R3(config)#router bgp 10
R3(config-router)#redistribute ospf 1
R3(config-router)#redistribute eigrp 100
R3(config-router)#redistribute connected 
R3#show ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 2
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Refresh Epoch 1
  Local
    10.10.23.2 from 0.0.0.0 (3.3.3.3)
      Origin incomplete, metric 3, localpref 100, weight 32768, valid, sourced, best
      rx pathid: 0, tx pathid: 0x0
R3#show ip bgp 2.2.2.2
BGP routing table entry for 2.2.2.2/32, version 3
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Refresh Epoch 1
  Local
    10.10.23.2 from 0.0.0.0 (3.3.3.3)
      Origin incomplete, metric 156160, localpref 100, weight 32768, valid, sourced, best
      rx pathid: 0, tx pathid: 0x0
R3#show ip bgp 3.3.3.3
BGP routing table entry for 3.3.3.3/32, version 4
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Refresh Epoch 1
  Local
    0.0.0.0 from 0.0.0.0 (3.3.3.3)
      Origin incomplete, metric 0, localpref 100, weight 32768, valid, sourced, best
      rx pathid: 0, tx pathid: 0x0

  역시 마찬가지로 IGP의 metric 값으로 MED 값이 설정된 것을 확인할 수 있다. 이렇게 BGP로 최초 광고할 당시 IGP의 metric 값을 복사해서 가져오는 특징 외에도 AS-PATH attribute가 empty일때만 전달하는 특징, 서로 다른 AS에서 Update를 받은 Network에 대해서는 MED를 비교하지 않는 특징 등 다양한 특징을 가지고 있는 것이 MED이다.

  이러한 MED의 특징을 4회에 거쳐 자세히 알아보기로 하자.

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.