Jump to content
Калькуляторы

MPLS BGP IPv4 + label напанятна

Решил немного поднатаскать себя в 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 не работает. :-/

Share this post


Link to post
Share on other sites

А показали бы вы show IP BGP с нерабочей схемы.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

router bgp 100

redistribute ospf 1 match internal route-map BGP_LABEL

no neighbor 12.1.19.19 route-map BGP_LABEL out

!

clear ip bgp * soft

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

Метки по 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" и отпишусь :)

 

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

Share this post


Link to post
Share on other sites

До этого момента я думал что команда 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 конечно.

Share this post


Link to post
Share on other sites

 

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

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

 

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

как-то так

show ip bgp labels

show ip bgp x.x.x.x

show mpls forwarding

Share this post


Link to post
Share on other sites

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

Edited by config

Share this post


Link to post
Share on other sites

И в роут мап может поставит 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 в продакшине не видел :)

Share this post


Link to post
Share on other sites

В cisco тоже можно указать через rout-map, отправлять label или не label routes.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this