Атрибут MED (multi-exit discriminator) используется для информирования BGP соседей о том, какой путь в автономную систему более предпочтительный. MED имеет наименьший приоритет среди BGP атрибутов, чтобы он повлиял на выбор маршрута, остальные атрибуты должны быть с одинаковым значением.
1. Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный.
2. Атрибут передается между автономными системами.
3. По умолчанию значение атрибута – 0.
4. Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.
5. Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.
Разберем атрибут MED на примере следующей топологии (Рисунок 1):
Рисунок 1. Архитектура системы
Маршрутизаторы AR1, AR2, AR3 находятся в AS 50. AR4 находится в AS 500. В данном примере, при помощи атрибута MED, мы хотим добиться чтобы трафик с AR4 до AR1 пошел через маршрутизатор AR3.
Настройки устройств выглядят следующим образом:
AR1
interface LoopBack0
ip address 1.1.1.1 32
interface GigabitEthernet 0/0/0
ip address 5.1.1.1 30
interface GigabitEthernet 0/0/1
ip address 5.2.2.1 30
ospf 1
area 0
network 1.1.1.1 0.0.0.0
network 5.1.1.0 0.0.0.3
network 5.2.2.0 0.0.0.3
bgp 50
router-id 1.1.1.1
peer 2.2.2.2 as-number 50
peer 2.2.2.2 connect-interface LoopBack0
peer 3.3.3.3 as-number 50
peer 3.3.3.3 connect-interface LoopBack0
undo synchronization
AR2
interface LoopBack0
ip address 2.2.2.2 32
interface GigabitEthernet 0/0/0
ip address 5.1.1.2 30
interface GigabitEthernet 0/0/1
ip address 10.1.1.2 30
ospf 1
area 0
network 2.2.2.2 0.0.0.0
network 5.1.1.0 0.0.0.3
bgp 50
router-id 2.2.2.2
peer 1.1.1.1 as-number 50
peer 1.1.1.1 connect-interface LoopBack0
peer 3.3.3.3 as-number 50
peer 3.3.3.3 connect-interface LoopBack0
peer 10.1.1.1 as-number 500
peer 1.1.1.1 next-hop-local
peer 3.3.3.3 next-hop-local
undo synchronization
AR3
interface LoopBack0
ip address 3.3.3.3 32
interface GigabitEthernet 0/0/0
ip address 10.2.2.2 30
interface GigabitEthernet 0/0/1
ip address 5.2.2.2 30
ospf 1
area 0
network 3.3.3.3 0.0.0.0
network 5.2.2.0 0.0.0.3
bgp 50
router-id 3.3.3.3
peer 1.1.1.1 as-number 50
peer 1.1.1.1 connect-interface LoopBack0
peer 2.2.2.2 as-number 50
peer 2.2.2.2 connect-interface LoopBack0
peer 10.2.2.1 as-number 500
peer 1.1.1.1 next-hop-local
peer 2.2.2.2 next-hop-local
undo synchronization
AR4
interface LoopBack0
ip address 4.4.4.4 32
interface GigabitEthernet 0/0/0
ip address 10.1.1.1 30
interface GigabitEthernet 0/0/1
ip address 10.2.2.1 30
bgp 500
router-id 4.4.4.4
peer 10.1.1.2 as-number 50
peer 10.2.2.2 as-number 50
undo synchronization
network 4.4.4.4 255.255.255.255
Настроим интерфейс loopback10 на маршрутизаторе AR1 и также добавим его адрес 10.10.10.10/32 в BGP процесс:
[AR1] interface LoopBack 10
[AR1-LoopBack10] ip address 10.10.10.10 32
[AR1] bgp 50
[AR1-bgp] network 10.10.10.10 255.255.255.255
Проверим BGP и IP таблицы маршрутизации на AR4:
[AR4] display bgp routing-table
BGP Local router ID is 4.4.4.4
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 3
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 4.4.4.4/32 0.0.0.0 0 0 i
*> 10.10.10.10/32 10.1.1.2 0 50i
* 10.2.2.2 0 50i
[AR4] display bgp routing-table 10.10.10.10
BGP local router ID : 4.4.4.4
Local AS number : 500
Paths: 2 available, 1 best, 1 select
BGP routing table entry information of 10.10.10.10/32:
From: 10.1.1.2 (2.2.2.2)
Route Duration: 00h00m18s
Direct Out-interface: GigabitEthernet0/0/0
Original nexthop: 10.1.1.2
Qos information : 0x0
AS-path 50, origin igp, pref-val 0, valid, external, best, select, active, pre 255
Advertised to such 2 peers:
10.1.1.2
10.2.2.2
BGP routing table entry information of 10.10.10.10/32:
From: 10.2.2.2 (3.3.3.3)
Route Duration: 00h14m32s
Direct Out-interface: GigabitEthernet0/0/1
Original nexthop: 10.2.2.2
Qos information : 0x0
AS-path 50, origin igp, pref-val 0, valid, external, pre 255, not preferred for router ID
Not advertised to any peer yet Not advertised to any peer yet
Вывод показывает нам два маршрута до сети назначения 10.10.10.10. Маршрут, пролегающий через 10.1.1.2 он считает оптимальным, потому что AR2 имеет меньшее значение router ID. Также видим значение MED равно нулю. Теперь настроим атрибут MED для маршрутов, которые маршрутизатор AR2 объявляет AR4:
[AR2] route-policy MED permit node 10
Info: New Sequence of this List.
[AR2-route-policy] apply cost 200
[AR2] bgp 50
[AR2-bgp] peer 10.1.1.1 route-policy MED export
Взглянем еще раз на IP и BGP таблицы маршрутизации на AR4:
[AR4] display bgp routing-table
BGP Local router ID is 4.4.4.4
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 3
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 4.4.4.4/32 0.0.0.0 0 0 i
*> 10.10.10.10/32 10.2.2.2 0 50i
* 10.1.1.2 200 0 50i
[AR4] display bgp routing-table 10.10.10.10
BGP local router ID : 4.4.4.4
Local AS number : 500
Paths: 2 available, 1 best, 1 select
BGP routing table entry information of 10.10.10.10/32:
From: 10.2.2.2 (3.3.3.3)
Route Duration: 00h18m51s
Direct Out-interface: GigabitEthernet0/0/1
Original nexthop: 10.2.2.2
Qos information : 0x0
AS-path 50, origin igp, pref-val 0, valid, external, best, select, active, pre 255
Advertised to such 2 peers:
10.1.1.2
10.2.2.2
BGP routing table entry information of 10.10.10.10/32:
From: 10.1.1.2 (2.2.2.2)
Route Duration: 00h00m40s
Direct Out-interface: GigabitEthernet0/0/0
Original nexthop: 10.1.1.2
Qos information : 0x0
AS-path 50, origin igp, MED 200, pref-val 0, valid, external, pre 255, not preferred for MED
Not advertised to any peer yet
Как показывает вывод, теперь AR4 считает, что путь до сети 10.10.10.10 через маршрутизатор AR3 (10.2.2.2) является оптимальным. Он был выбран, потому что атрибут MED имеет меньшее значение (меньше MED = лучше маршрут).
Чтобы удостовериться в этом, запустим трассировку с AR4 и посмотрим как пойдет трафик:
[AR4] tracert -a 4.4.4.4 10.10.10.10
traceroute to 10.10.10.10(10.10.10.10), max hops: 30 ,packet length: 40,press CTRL_C to break
1 10.2.2.2 30 ms 30 ms 30 ms
2 5.2.2.1 100 ms 80 ms 60 ms
В обратном же направлении с AR1 до AR4, трафик всё также идет через маршрутизатор AR2:
[AR1] tracert -a 10.10.10.10 4.4.4.4
traceroute to 4.4.4.4(4.4.4.4), max hops: 30 ,packet length: 40,press CTRL_C to break
1 5.1.1.2 50 ms 60 ms 70 ms
2 10.1.1.1 120 ms 90 ms 110 ms