Jump to content

Recommended Posts

Posted

Решил немного поднатаскать себя в MPLS и в процессе нашел интересную особенность BGP ipv4 + label.

В чем суть: Inter AS MPLS, на бордерах bgp ipv4 + label следующий конфиг:

 

# R1 ASBR 1
interface FastEthernet0/0.192
encapsulation dot1Q 192
ip address 20.19.20.1 255.255.255.0
ip ospf 1 area 0
mpls ip

router bgp 100
network 2.2.2.2 mask 255.255.255.255
network 5.5.5.5 mask 255.255.255.255
neighbor 12.1.19.19 remote-as 200
neighbor 12.1.19.19 send-label

 

в таком варианте все отлично работает, loopback'и роутеров с соседней AS приходят с метками, но вот если вместо network на ASBR использовать редистрибюцию с IGP в BGP то префиксы приходят без лейблов.

 

Конфиг:

 

# R1 ASBR 1
interface FastEthernet0/0.192
encapsulation dot1Q 192
ip address 20.19.20.1 255.255.255.0
ip ospf 1 area 0
mpls ip

router bgp 100
redistribute ospf 1 match internal
neighbor 12.1.19.19 remote-as 200
neighbor 12.1.19.19 route-map BGP_LABEL out
neighbor 12.1.19.19 send-label

ip prefix-list BGP_LABEL seq 5 permit 5.5.5.5/32
ip prefix-list BGP_LABEL seq 10 permit 2.2.2.2/32
ip prefix-list BGP_LABEL seq 15 deny 0.0.0.0/0 le 32

route-map BGP_LABEL permit 10
match ip address prefix-list BGP_LABEL

 

Так и нужно я просто чего-то не знаю? :) вроде бы разницы никакой быть не должно, но с вариантом 2 не работает. :-/

Posted

в таком варианте все отлично работает, loopback'и роутеров с соседней AS приходят с метками, но вот если вместо network на ASBR использовать редистрибюцию с IGP в BGP то префиксы приходят без лейблов.

 

Метки по OSPF не распространяются, очевидно поэтому и не попали в BGP при редистрибьюции. Когда использовали network, то bgp процесс взял метки из "меточного" протокола(скорее всего LDP в вашем случае).

Posted

Метки по OSPF не распространяются, очевидно поэтому и не попали в BGP при редистрибьюции. Когда использовали network, то bgp процесс взял метки из "меточного" протокола(скорее всего LDP в вашем случае).

Ну то что внутри одной AS это понятно, у меня LDP и по нему все ходит. А вот почему BGP + label не выдает метки для маршрутов которые попали через редистрибюцию.

До этого момента я думал что команда neighbor x.x.x.x send-label говорит BGP выдавать всем префиксам MPLS метки если обратное не указанно в route-map и на практике с префиксами которые объявлялись через network это действительно было так.

 

Вечером попробую с "route-map set MPLS-label" и "redistribute ospf 1 match internal route-map BGP_LABEL" и отпишусь :)

 

Еще раз спасибо всем за подсказки :)

Posted

До этого момента я думал что команда neighbor x.x.x.x send-label говорит BGP выдавать всем префиксам MPLS метки если обратное не указанно в route-map и на практике с префиксами которые объявлялись через network это действительно было так.

 

нет, send-label говорит посылать метки если они уже имеются. В cisco нельзя разделить на уровне протокола отправку labeled и не-labeled маршрутов. (А например в juniper можно строго указать, что нужно посылать только labeled, или только не-labeled, или и те и другие).

 

команда network же, указывает bgp процессу слать соответствующий анонс если маршрут уже известен маршрутизатору, не важно откуда - connected,static или из IGP. Он благодаря LDP у вас был известен с меткой, поэтому и в BGP попал тоже с меткой.

Все IMHO конечно.

Posted

 

Ну то что внутри одной AS это понятно, у меня LDP и по нему все ходит. А вот почему BGP + label не выдает метки для маршрутов которые попали через редистрибюцию.

До этого момента я думал что команда neighbor x.x.x.x send-label говорит BGP выдавать всем префиксам MPLS метки если обратное не указанно в route-map и на практике с префиксами которые объявлялись через network это действительно было так.

 

LDP раздает метки для IGP протоколов, а BGP ляпает сам метки для префиксов которые в BGP крутятся, у циски там конкретно нужно указывать что у нас BGP с mpls, и на таком то интерфейсе.

Posted

циски там конкретно нужно указывать что у нас BGP с mpls, и на таком то интерфейсе.

Для этого на интерфейсе нужно указать "mpls bgp forwarding" вопрос был не совсем в этом.

Posted

Для этого на интерфейсе нужно указать "mpls bgp forwarding" вопрос был не совсем в этом.

 

Как вы проверяете отсутствие меток тогда ?

Posted (edited)

Проверяете таблицу меток, по идее не важно откуда вы в бгп кидаете маршруты, главные чтоб у вас на asbr были метки для next-hop этих маршрутов.

Edited by config
Posted

И в роут мап может поставит set MPLS-label.

Вы были правы, поставил в route-map который был на neighbor x.x.x.x out "set mpls-label" и все заработало.

 

redistribute ospf 1 match internal route-map BGP_LABEL

no neighbor 12.1.19.19 route-map BGP_LABEL out

 

Вы тоже правы так будет работать. И роутер даже дает небольшое объяснение: "% "BGP_LABEL" used as redistribute isis into bgp route-map, set mpls label not supported"

То есть опция set mpls-label работает только в route-map который отдельно на neighbor, в редистрибюции опция игнорируется и route-map работает как "обычный" фильтр.

 

Спасибо всем, что помогли разобраться :) Надеюсь через 3 месяца не забуду и не прийдеться снова спрашивать :D

 

(А например в juniper можно строго указать, что нужно посылать только labeled, или только не-labeled, или и те и другие).

Прикольно, не знал. Нужно будет как-то попробовать, а то пока ничего кроме сетей с cisco в продакшине не видел :)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...