CNick Опубликовано 21 октября, 2013 Решил немного поднатаскать себя в 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 не работает. :-/ Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
config Опубликовано 21 октября, 2013 А показали бы вы show IP BGP с нерабочей схемы. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
config Опубликовано 21 октября, 2013 И в роут мап может поставит set MPLS-label. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
applx Опубликовано 21 октября, 2013 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 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
agr Опубликовано 21 октября, 2013 в таком варианте все отлично работает, loopback'и роутеров с соседней AS приходят с метками, но вот если вместо network на ASBR использовать редистрибюцию с IGP в BGP то префиксы приходят без лейблов. Метки по OSPF не распространяются, очевидно поэтому и не попали в BGP при редистрибьюции. Когда использовали network, то bgp процесс взял метки из "меточного" протокола(скорее всего LDP в вашем случае). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
CNick Опубликовано 21 октября, 2013 Метки по 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" и отпишусь :) Еще раз спасибо всем за подсказки :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
agr Опубликовано 21 октября, 2013 До этого момента я думал что команда 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 конечно. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
artmc Опубликовано 21 октября, 2013 Ну то что внутри одной AS это понятно, у меня LDP и по нему все ходит. А вот почему BGP + label не выдает метки для маршрутов которые попали через редистрибюцию. До этого момента я думал что команда neighbor x.x.x.x send-label говорит BGP выдавать всем префиксам MPLS метки если обратное не указанно в route-map и на практике с префиксами которые объявлялись через network это действительно было так. LDP раздает метки для IGP протоколов, а BGP ляпает сам метки для префиксов которые в BGP крутятся, у циски там конкретно нужно указывать что у нас BGP с mpls, и на таком то интерфейсе. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
CNick Опубликовано 21 октября, 2013 циски там конкретно нужно указывать что у нас BGP с mpls, и на таком то интерфейсе. Для этого на интерфейсе нужно указать "mpls bgp forwarding" вопрос был не совсем в этом. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
artmc Опубликовано 21 октября, 2013 Для этого на интерфейсе нужно указать "mpls bgp forwarding" вопрос был не совсем в этом. Как вы проверяете отсутствие меток тогда ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
CNick Опубликовано 21 октября, 2013 Как вы проверяете отсутствие меток тогда ? как-то так show ip bgp labels show ip bgp x.x.x.x show mpls forwarding Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
config Опубликовано 21 октября, 2013 (изменено) Проверяете таблицу меток, по идее не важно откуда вы в бгп кидаете маршруты, главные чтоб у вас на asbr были метки для next-hop этих маршрутов. Изменено 21 октября, 2013 пользователем config Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
CNick Опубликовано 21 октября, 2013 И в роут мап может поставит 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 в продакшине не видел :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
config Опубликовано 22 октября, 2013 В cisco тоже можно указать через rout-map, отправлять label или не label routes. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...