Доброго времени!
Отпуск закончился, праздники прошли, теперь можно продолжить изучение сетевых технологиях, мы остановились с Вами на MPLS, немного рассмотрели теорию, теперь займемся немного практикой, а именно базовой настройкой MPLS, а именно в режиме Frame-Mode.
Вот топология, с которой мы будем с Вами работать в этой заметке и всех последующих:
Для начала мы настроим базовый MPLS между всему P устройствами:
На всех роутерах прописываем такую конфигурацию:
conf t
mpls ip
mpls label protocol ldp
mpls ldp router-id loopback0
mpls ldp advertise-labels
!
int s1/0
mpls ip
exit
int s1/1
mpls ip
exit
Для удобной и быстрой настройки не забываем пользоваться блокнотом, как мы делали это в BGP.
Так же необходимо включить mpls на интерфейсах f0/0 на роутерах p9-p10 и на интерфейсах E3/0 на роутерах PE4 и PE6.
Теперь давайте рассмотрим команды.
Первое, что необходимо сделать, это включить MPLS глобально. Это делается с помощью mpls ip в режиме глобальной конфигурации.
Далее, необходимо выбрать протокол, в нашем случае мы используем протокол LDP, (cisco протокол TDP уже устарел, сейчас используется везде LDP).
Далее, помним правило, что пиринг лучше всего строить по лупбакам, это так же распространяется и на MPLS, поэтому мы должны сказать роутеру, что router-id у нас будет равен IP адресу лупбеку — mpls ldp router-id loopback0.
mpls ldp advertise-labels — говорит роутеру, что все интерфейсы у нас отсылают mpls метки.
И далее на каждом интерфейсе мы активируем mpls дополнительно.
Вот собственно и вся базовая конфигурация.
После того как мы настроили базовый mpls, давайте собственно посмотрим, как посмотреть, что мы сделали.
Например, посмотрим на каких интерфейсах у нас включен mpls с помощью команды show mpls interface:
Видим задействованные интерфейсы, протокол, используется ли BGP и так далее.
Можно более детально посмотреть информацию о каком-то интерфейсе:
Можно просмотреть параметры LDP :
Далее давайте посмотрим какие же у нас есть соседи mpls:
Из вывода видим, что у нас есть соседство с тремя роутерами, router-id которые равны 10.10.10.10, 8.8.8.8, 4.4.4.4. И соответсвенно интерфейсы, через которые доступны эти роутеры.
Можно вывести информацию более подробно, если это необходимо:
Есть практически аналог этого вывода:
Можно сделать детально для какого-то определенного соседа, в общем как всегда, не буду этого здесь писать, все понятно 🙂
Ну чтож, теперь давайте посмотрим сами метки.
Для начала как посмотреть базу LIB? (Label Information Base)
PE-6#show mpls ldp bindings
lib entry: 2.2.2.2/32, rev 6
local binding: label: 18
remote binding: lsr: 10.10.10.10:0, label: 16
remote binding: lsr: 8.8.8.8:0, label: 16
remote binding: lsr: 4.4.4.4:0, label: 16
lib entry: 4.4.4.4/32, rev 4
local binding: label: 17
remote binding: lsr: 10.10.10.10:0, label: 17
remote binding: lsr: 8.8.8.8:0, label: 17
remote binding: lsr: 4.4.4.4:0, label: imp-null
lib entry: 6.6.6.6/32, rev 26
local binding: label: imp-null
remote binding: lsr: 10.10.10.10:0, label: 24
remote binding: lsr: 8.8.8.8:0, label: 18
remote binding: lsr: 4.4.4.4:0, label: 17
lib entry: 8.8.8.8/32, rev 18
local binding: label: 24
remote binding: lsr: 10.10.10.10:0, label: 25
remote binding: lsr: 8.8.8.8:0, label: imp-null
remote binding: lsr: 4.4.4.4:0, label: 18
lib entry: 9.9.9.9/32, rev 20
local binding: label: 25
remote binding: lsr: 10.10.10.10:0, label: 26
remote binding: lsr: 8.8.8.8:0, label: 19
remote binding: lsr: 4.4.4.4:0, label: 19
lib entry: 10.10.10.10/32, rev 22
local binding: label: 26
remote binding: lsr: 10.10.10.10:0, label: imp-null
remote binding: lsr: 8.8.8.8:0, label: 20
remote binding: lsr: 4.4.4.4:0, label: 20
lib entry: 172.16.34.0/24, rev 34
remote binding: lsr: 4.4.4.4:0, label: imp-null
lib entry: 172.16.43.0/24, rev 35
remote binding: lsr: 4.4.4.4:0, label: imp-null
lib entry: 172.16.56.0/24, rev 28
local binding: label: imp-null
lib entry: 172.16.78.0/24, rev 33
remote binding: lsr: 8.8.8.8:0, label: imp-null
lib entry: 191.66.24.0/24, rev 2
local binding: label: 16
remote binding: lsr: 10.10.10.10:0, label: 23
remote binding: lsr: 8.8.8.8:0, label: 21
remote binding: lsr: 4.4.4.4:0, label: imp-null
lib entry: 191.66.29.0/24, rev 14
local binding: label: 22
remote binding: lsr: 10.10.10.10:0, label: 22
remote binding: lsr: 8.8.8.8:0, label: 22
remote binding: lsr: 4.4.4.4:0, label: 21
lib entry: 191.66.46.0/24, rev 30
local binding: label: imp-null
remote binding: lsr: 10.10.10.10:0, label: 21
remote binding: lsr: 8.8.8.8:0, label: 23
remote binding: lsr: 4.4.4.4:0, label: imp-null
lib entry: 191.66.49.0/24, rev 16
local binding: label: 23
remote binding: lsr: 10.10.10.10:0, label: 20
remote binding: lsr: 8.8.8.8:0, label: 24
remote binding: lsr: 4.4.4.4:0, label: imp-null
lib entry: 191.66.60.0/24, rev 24
local binding: label: imp-null
remote binding: lsr: 10.10.10.10:0, label: imp-null
remote binding: lsr: 8.8.8.8:0, label: 25
remote binding: lsr: 4.4.4.4:0, label: 22
lib entry: 191.66.68.0/24, rev 32
local binding: label: imp-null
remote binding: lsr: 10.10.10.10:0, label: 19
remote binding: lsr: 8.8.8.8:0, label: imp-null
remote binding: lsr: 4.4.4.4:0, label: 23
lib entry: 191.66.80.0/24, rev 12
local binding: label: 21
remote binding: lsr: 10.10.10.10:0, label: imp-null
remote binding: lsr: 8.8.8.8:0, label: imp-null
remote binding: lsr: 4.4.4.4:0, label: 24
lib entry: 191.66.90.0/24, rev 8
local binding: label: 19
remote binding: lsr: 10.10.10.10:0, label: imp-null
remote binding: lsr: 8.8.8.8:0, label: 26
remote binding: lsr: 4.4.4.4:0, label: 25
lib entry: 191.66.91.0/24, rev 10
local binding: label: 20
remote binding: lsr: 10.10.10.10:0, label: 18
remote binding: lsr: 8.8.8.8:0, label: 27
remote binding: lsr: 4.4.4.4:0, label: 26
PE-6#
И базу данных LFIB:
Давайте рассмотрим на примере, например нас интересует сетка 9-ок, начнем с того места, где эта сеть создана:
Видим что меток нет, т.к. тут она пораждается, давайте посмотрим на другом роутере.
Здесь уже есть метка, но в сторону девяток мы ничего не посылаем, тоесть метка вырезается.
Посмотрим еще на PE8:
Видим что локальная метка 19, а отправлять будем на 26-ую.
Можно просмотреть traceroute и увидеть какие LSR мы проходим:
Traceroute это и есть LSP.
Так как у нас работает CEF, а он работает для MPLS всегда, мы можем посмотреть что там в нем происходит:
Здесь мы видим, что локальная метка 19, метка следующего хопа — 26, собственно так будем коммутироваться пакет.