...
Шаг | Описание | Команда | Ключи |
---|---|---|---|
1 | В контексте настройки параметров MPLS указать интерфейсы, участвующие в процессе MPLS-коммутации. | esr(config-mpls)# forwarding interface { <IF> | <TUN> } | <IF> – имя интерфейса устройства, задаётся в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора; <TUN> – имя туннеля устройства, задаётся в виде, описанном в разделе Типы и порядок именования туннелей маршрутизатора. |
2 | Задать router-id для LDP (не обязательно, если указан transport-address). | esr(config-ldp)# router-id <ID> | <ID> – идентификатор маршрутизатора, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
3 | В контексте настройки address family ipv4 указать transport-address (не обязательно, если указан router-id). | esr(config-ldp-af-ipv4)# transport-address <ADDR> | <ADDR> - задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
3 | В контексте настройки address family ipv4 указать интерфейсы для включение на них процесса LDP. | esr(config-ldp-af-ipv4)# interface { <IF> | <TUN> } | <IF> – имя интерфейса устройства, задаётся в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора; <TUN> – имя туннеля устройства, задаётся в виде, описанном в разделе Типы и порядок именования туннелей маршрутизатора. |
4 | Включить процесс LDP. | esr(config-ldp)# enable | |
5 | Включить функционал explicit-null (не обязательно). | esr(config-ldp)# egress-label-type explicit-null | |
6 | В режиме конфигурирования соседа LDP задать пароль командой password (не обязательно). | esr(config-ldp-neig)# password {<TEXT> | ENCRYPTED-TEXT>} | <CLEAR-TEXT> – пароль, задаётся строкой, длинной [8..16] символов; <ENCRYPTED-TEXT> – зашифрованный пароль размером [8..16] байт ([16..32] символа) в шестнадцатеричном формате (0xYYYY...) или (YYYY...). |
В рамках настройки протокола LDP также доступен следующий функционал:
|
Пример настройки
Задача:
Настроить взаимодействие по протоколу LDP между пирами.
...
Hold timer является согласуемым параметром - параметром – выбирается наименьший. В данном примере показано, что ESR после согласования Hold timer равен 10 секундам.
...
Блок кода |
---|
ESR# show running-config mpls mpls ldp router-id 4.4.4.4 discovery hello holdtime 50 discovery hello interval 10 address-family ipv4 interface gigabitethernet 1/0/1 discovery hello holdtime 60 discovery hello interval 20 exit interface gigabitethernet 1/0/4 discovery hello holdtime 30 discovery hello interval 10 exit exit enable exit |
Для TCP-сессии , Keepalive holdtime является также согласуемым параметром по аналогии с Hold timer. Keepalive interval рассчитывается автоматически , и равен Keepalive holdtime /3. Keepalive holdtime можно задать как глобально, так и для каждого соседа. Таймер, заданный для определенного соседа, является более приоритетным.
...
Шаг | Описание | Команда | Ключи |
---|---|---|---|
1 | Настроить протокол LDP (см. раздел Управление технологией MPLS#Конфигурирование Конфигурирование протокола LDP) | ||
2 | В режиме конфигурации протокола LDP задать Hello holdtime | esr(config-ldp)# discovery hello holdtime <TIME> | <TIME> - Время в секундах в интервале [3..65535] |
3 | В режиме конфигурации протокола LDP задать Hello interval | esr(config-ldp)# discovery hello interval <TIME> | <TIME> - Время в секундах в интервале [3..65535] |
...
Шаг | Описание | Команда | Ключи |
---|---|---|---|
1 | Настроить протокол LDP (см. раздел Управление технологией MPLS#Конфигурирование Конфигурирование протокола LDP) | ||
2 | В режиме конфигурации address familly протокола LDP установить Hello holdtime на нужном интерфейсе | esr(config-ldp-af-ipv4-if)# discovery hello holdtime <TIME> | <TIME> - Время в секундах в интервале [3..65535] Значение по умолчанию: 15 |
3 | В режиме конфигурации address familly протокола LDP установить Hello interval на нужном интерфейсе | esr(config-ldp-af-ipv4-if)# discovery hello interval <TIME> | <TIME> - Время в секундах в интервале [3..65535] Значение по умолчанию: 5 |
...
Шаг | Описание | Команда | Ключи |
---|---|---|---|
1 | Настроить протокол LDP (см. раздел Управление технологией MPLS#Конфигурирование Конфигурирование протокола LDP) | ||
2 | В режиме конфигурации LDP задать параметр Keepalive | esr(config-ldp)# keepalive <TIME> | <TIME> - Время в секундах в интервале [3..65535] Значение по умолчанию: 180 |
...
Шаг | Описание | Команда | Ключи |
---|---|---|---|
1 | Настроить протокол LDP (см. раздел Управление технологией MPLS#Конфигурирование Конфигурирование протокола LDP) | ||
2 | В режиме конфигурации соседа задать параметр Keepalive holdtime | esr(config-ldp-neig)# keepalive <TIME> | <TIME> - Время в секундах в интервале [3..65535] Значение по умолчанию: 180 |
...
1 | Настроить протокол LDP (см. раздел Управление технологией MPLS#Конфигурирование Конфигурирование протокола LDP) | ||
2 | В режиме конфигурации протокола LDP задать Hello holdtime | esr(config-ldp)# discovery targeted-hello holdtime <TIME> | <TIME> - Время в секундах в интервале [3..65535] Значение по умолчанию: 45 |
3 | В режиме конфигурации протокола LDP задать Hello interval | esr(config-ldp)# discovery targeted- hello interval <TIME> | <TIME> - Время в секундах в интервале [1..65535] Значение по умолчанию: 5 |
4 | В режиме конфигурации протокола LDP задать Keepalive holdtime | esr(config-ldp)# keepalive <TIME> | <TIME> - Время в секундах в интервале [3..65535] Значение по умолчанию: 180 |
...
1 | Настроить протокол LDP (см. раздел Управление технологией MPLS#Конфигурирование Конфигурирование протокола LDP) | ||
2 | В режиме конфигурации LDP-соседа задать Hello holdtime | esr(config-ldp-neig)# discovery targeted-hello holdtime <TIME> | <TIME> - Время в секундах в интервале [3..65535] Значение по умолчанию: 45 |
3 | В режиме конфигурации LDP-соседа задать Hello interval | esr(config-ldp-neig)# discovery targeted- hello interval <TIME> | <TIME> - Время в секундах в интервале [1..65535] Значение по умолчанию: 5 |
4 | В режиме конфигурации LDP-соседа задать Keepalive holdtime | esr(config-ldp-neig)# keepalive <TIME> | <TIME> - Время в секундах в интервале [3..65535] Значение по умолчанию: 180 |
...
Шаг | Описание | Команда | Ключи |
---|---|---|---|
1 | Настроить протокол LDP (см. раздел Управление технологией MPLS#Конфигурирование Конфигурирование протокола LDP). | ||
2 | Создать object-group типа network. | esr(config)# object-group network <NAME> | <NAME> – имя конфигурируемого списка подсетей, задаётся строкой до 31 символа. |
3 | Описать префиксы, для которых будут назначаться метки. | esr(config-object-group-network)# ip prefix <ADDR/LEN> | <ADDR/LEN> – IP-адрес и маска подсети, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32]; |
4 | В контексте настройки LDP применить созданную object-group. | esr(config-ldp)# advertise-labels <NAME> | <NAME> – имя конфигурируемого списка подсетей, задаётся строкой до 31 символа. |
...
Шаг | Описание | Команда | Ключи |
---|---|---|---|
1 | Настроить протокол LDP (см. раздел Управление технологией MPLS#Конфигурирование Конфигурирование протокола LDP). | ||
2 | Создать pw-class в системе и осуществить переход в режим настройки параметров pw-class. | esr(config-l2vpn)# pw-class <WORD> | <WORD> – имя pw-class длинной [1..31] символов. |
3 | Добавить описание для pw-class (не обязательно). | esr(config-l2vpn-pw-class)# description <LINE> | <LINE> – описание. Задается в виде строки длинной [1..255] символов |
4 | Установить значение MTU для pseudo-wire входящих в pw-class (не обязательно). | esr(config-l2vpn-pw-class)# encapsulation | <MTU> – значение MTU, принимает значение в диапазоне [552..10000] Значение по умолчанию: 1500. |
5 | Отключить обмен status-tlv сообщениями (не обязательно). | esr(config-l2vpn-pw-class)# encapsulation | Значение по умолчанию: status-tlv enable |
6 | Создать p2p-туннель в системе и осуществить переход в режим настройки параметров p2p-туннеля. | esr(config-l2vpn)# p2p <NAME> | <NAME> – имя p2p-сервиса, задается строкой до 31 символа. |
7 | Задать Attached Circuit интерфейс. | esr(config-l2vpn-p2p)# interface | <IF> – имя интерфейса устройства, задаётся в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора; <TUN> – имя туннеля устройства, задаётся в виде, описанном в разделе Типы и порядок именования туннелей маршрутизатора. |
8 | Включить p2p-туннель. | esr(config-l2vpn-p2p)# enable | |
9 | Задать транспортный режим (не обязательно). | esr(config-l2vpn-p2p)# transport-mode | <ethernet> – режим при котором при входе в pseudo-wire из заголовка удаляется 802.1Q тэг ; <vlan> – режим при котором 802.1Q тэг может быть сохранен при передаче через pseudo-wire. Значение по умолчанию: ethernet |
10 | Создать pseudo-wire и осуществить переход в режим настройки его параметров. | esr(config-l2vpn-p2p)# pw <PW_ID> <LSR_ID> | <PW_ID> – идентификатор psewdowire, задается в виде числа в диапазоне [1..4294967295 ] <LSR_ID> – идентификатор LSR до которого строится pseudo-wire, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255] |
11 | Добавить описание для pseudo-wire (не обязательно). | esr(config-l2vpn-pw)# description <LINE> | <LINE> – описание. Задается в виде строки длинной [1..255] символов |
12 | Задать pw-class для pseudo-wire. | esr(config-l2vpn-pw)# pw-class <WORD> | <WORD> – имя pw-class длинной [1..31] символов. |
13 | Задать адрес LSR до которого устанавливается pseudo-wire (Не обязательно если neighbor address совпадает с LSR_ID). | esr(config-l2vpn-pw)# neighbor-address <ADDR> | <ADDR> – IP-адрес маршрутизатора, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
14 | Включить pseudo-wire. | esr(config-l2vpn-pw)# enable | |
В случае если необходимо изменить параметры по умолчанию для targeted LDP-сессии, обратитесь к разделу Управление технологией MPLS#Конфигурирование Конфигурирование параметров сессии в протоколе targeted-LDP. |
...
Настроить l2vpn таким образом, чтобы интерфейс ge1/0/2.100 маршрутизатора CE1 и интерфейс ge1/0/2.100 маршрутизатора CE2 работали в рамках одного широковещательного домена.
...
Включить поддержку Jumbo-фреймов с помощью команды "system jumbo-frames" (для вступления изменений в силу требуется перезагрузка устройства);
- Настроить IP-адреса на интерфейсах согласно схеме сети, приведенной на рисунке выше;
- Организовать обмен маршрутами между PE1 и PE2 при помощи IGP-протокола (OSPF, IS-IS, RIP).
...
Выставим на интерфейсе в сторону PE2 значение MTU равным 9600, для того чтобы избежать ситуации с превышением MTU после инкапсуляции MPLS-заголовка, а также отключим межсетевой экран:
...
Убедимся в установлении соседства по протоколу LDP и выведем информацию по статусу виртуального канала (pseudowire) между PE1 и PE2:
Блок кода |
---|
PE2# show mpls ldp neighbor Peer LDP ID: 1.1.1.1; Local LDP ID 2.2.2.2 State: Operational TCP connection: 1.1.1.1:646 - 2.2.2.2:34625 Messages sent/received: 12/12 Uptime: 00:03:50 LDP discovery sources: 2.2.2.2 -> 1.1.1.1 |
...
Алгоритм настройки L2VPN VPLS
Шаг | Описание | Команда | Ключи |
---|---|---|---|
1 | Настроить протокол LDP (см. раздел |
Конфигурирование протокола LDP). | |||
2 | Создать сетевой мост в системе без указания IP-адреса (см. раздел Настройка Bridge). | ||
3 | Создать pw-class в системе и осуществить переход в режим настройки параметров pw-class. | esr(config-l2vpn)# pw-class <WORD> | <WORD> - |
имя pw-class длинной [1..31] символов. | |||
4 | Добавить описание для pw-class (не обязательно). | esr(config-l2vpn-pw-class)# description <LINE> | <LINE> - |
описание. Задается в виде строки длинной [1..255] символов | |||
5 | Установить значение MTU для pseudo-wire входящих в pw-class (не обязательно). | esr(config-l2vpn-pw-class)# encapsulation | <MTU> - значение MTU, принимает значение в диапазоне [552..10000] Значение по умолчанию: 1500. |
6 | Отключить обмен status-tlv сообщениями (не обязательно). | esr(config-l2vpn-pw-class)# encapsulation | Значение по умолчанию: status-tlv enable |
7 | Создать VPLS-домен в системе и осуществить переход в режим настройки параметров VPLS-домена. | esr(config-l2vpn)# vpls <NAME> | <NAME> - |
имя p2p-сервиса, задается строкой до 31 символа. | |||
8 | Включить VPLS-туннель. | esr(config-l2vpn-vpls)# enable | |
9 | Добавить бридж-домен. | esr (config-l2vpn-vpls)# bridge-group <ID> | <ID> - идентификатор бридж -домена , задается в виде числа в диапазоне [1..250 ] |
10 | Задать транспортный режим (не обязательно). | esr(config-l2vpn-vpls)# transport-mode | <ethernet> - Режим при котором при входе в pseudo-wire из заголовка удаляется 802.1Q тэг; |
тег может быть сохранен при передаче через pseudo-wire. | |||
11 | Создать pseudo-wire и осуществить переход в режим настройки его параметров | esr(config-l2vpn-vpls)# pw <PW_ID> <LSR_ID> | <PW_ID> - идентификатор psewdowire, задается в виде числа в диапазоне [1..4294967295 ] <LSR_ID> - идентификатор LSR до которого строится pseudo-wire, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255] |
12 | Добавить описание для pseudo-wire (не обязательно). | esr(config-l2vpn-pw)# description <LINE> | <LINE> - |
описание. Задается в виде строки длинной [1..255] символов | |||
13 | Задать pw-class для pseudo-wire | esr(config-l2vpn-pw)# pw-class <WORD> | <WORD> - |
имя pw-class длинной [1..31] символов. | |||
14 | Задать адрес LSR до которого устанавливается pseudo-wire(Не обязательно если neighbor address совпадает с LSR_ID). | esr(config-l2vpn-pw)# neighbor-address <ADDR> | <ADDR> – IP-адрес маршрутизатора, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
15 | Включить pseudo-wire. | esr(config-l2vpn-pw)# enable | |
16 | В случае если топология создаваемого VPLS-домена требует установить более одного pseudo-wire, повторить шаги с 10 по 14. | ||
17 | В случае если необходимо изменить параметры по умолчанию для targeted LDP-сессии, обратитесь к разделу |
Конфигурирование параметров сессии в протоколе targeted-LDP . |
Пример настройки L2VPN VPLS
...
Настроить l2vpn таким образом, чтобы маршрутизаторы CE1, CE2, CE3 имели L2 связность через интерфейсы gi1/0/2.100 и gi1/0/4 (CE2).
...
Выставим на интерфейсе в сторону PE2 значение MTU равным 9600, для того чтобы избежать ситуации с превышением MTU после инкапсуляции MPLS-заголовка, а также отключим межсетевой экран:
Блок кода |
---|
PE1#(config)# interface gigabitethernet 1/0/1 PE1(config-if-gi)# mtu 9600 PE1(config-if-gi)# ip firewall disable PE1(config-if-gi)# exit |
...
Алгоритм настройки L2VPN VPLS
Шаг | Описание | Команда | Ключи |
---|---|---|---|
1 | Настроить протокол LDP (см. раздел |
Конфигурирование протокола LDP). | |||
2 | Создать сетевой мост в системе без указания IP-адреса (см. раздел Настройка Bridge). | ||
3 | Создать VPLS-домен в системе и осуществить переход в режим настройки параметров vpls-домена. | esr(config-l2vpn)# vpls <NAME> | <NAME> – |
имя p2p-сервиса, задается строкой до 31 символа. | |||
4 | Включить VPLS-туннель. | esr(config-l2vpn-vpls)# enable | |
5 | Добавить бридж-домен. | esr(config-l2vpn-vpls)# bridge-group <ID> | <ID> – идентификатор бридж-домена, задается в виде числа в диапазоне [1..250]. |
6 | Перейти в контекст настройки autodiscovery bgp. | esr(config-l2vpn-vpls)# autodiscovery bgp | |
7 | Указать route distinguisher для данного экземпляра VPLS. | esr(config-bgp)# rd <RD> | <RD> – значение Route distinguisher, задается в одном из следующем виде:
|
8 | Указать route target import для данного экземпляра VPLS. | esr(config-bgp)# route-target import <RT> | <RT> – значение route-target, задается в одном из следующих видов:
|
9 | Указать route target export для данного экземпляра VPLS. | esr(config-bgp)# route-target export <RT> | <RT> – значение route-target, задается в одном из следующих видов:
|
10 | Указать ve id. | esr(config-bgp)# ve id <ID> | <ID> – идентификатор экземпляра VPLS, задается в виде числа в диапазоне [1..16384]. |
11 | Указать vpn id. | esr (config-bgp)# vpn id <ID> | <ID> – идентификатор VPN, задается в виде числа в диапазоне [1..4294967295]. |
12 | Указать ve range (не обязательно). | esr (config-bgp)# ve range <RANGE> | <RANGE> – диапазон идентификаторов пограничных устройств VPLS [8..100]. |
13 | Указать mtu (не обязательно). | esr (config-bgp)# mtu <VALUE> | <VALUE> – значение MTU [552..10000]. |
14 | Включить игнорирование типа инкапсуляции (не обязательно). | esr(config-bgp)# ignore encapsulation-mismatch | |
15 | Включить игнорирование значений MTU (не обязательно). | esr(config-bgp)# ignore mtu-mismatch | |
16 | В контексте настройки address-family l2vpn vpls протокола BGP включить передачу расширенных атрибутов. | esr(config-bgp-neighbor-af)# send-community extended |
Пример настройки L2VPN VPLS
...
Настроить L2VPN-сервис: все CE устройства должны работать в рамках одного широковещательного домена.
Scroll Pagebreak |
---|
Решение:
Предварительно необходимо:
Включить поддержку Jumbo-фреймов с помощью команды "system jumbo-frames" (для вступления изменений в силу требуется перезагрузка устройства);
- Настроить IP-адреса на интерфейсах согласно схеме сети, приведенной на рисунке выше;
- Организовать обмен маршрутами между PE1, PE2, PE3 и RR при помощи IGP протокола (OSPF, IS-IS).
Scroll Pagebreak |
---|
Первым делом настроим маршрутизатор RR:
Блок кода |
---|
hostname RR system jumbo-frames router ospf 1 area 0.0.0.0 enable exit enable exit interface gigabitethernet 1/0/2 mtu 9500 ip firewall disable ip address 10.30.0.2/30 ip ospf instance 1 ip ospf exit interface gigabitethernet 1/0/3 mtu 9500 ip firewall disable ip address 10.31.0.2/30 ip ospf instance 1 ip ospf exit interface loopback 1 ip address 10.10.0.4/32 ip ospf instance 1 ip ospf exit mpls ldp router-id 10.10.0.4 address-family ipv4 interface gigabitethernet 1/0/2 exit interface gigabitethernet 1/0/3 exit exit enable exit forwarding interface gigabitethernet 1/0/2 forwarding interface gigabitethernet 1/0/3 exit |
Scroll Pagebreak |
---|
Настроим BGP Route Reflector для address family l2vpn:
...
Блок кода | ||
---|---|---|
| ||
ip firewall disable ip address 10.20.0.1/30 ip ospf instance 1 ip ospfexit interface gigabitethernet 1/0/2 mtu 9500 ip firewall disable ip address 10.30.0.1/30 ip ospf instance 1 ip ospf exitinterface gigabitethernet 1/0/3 mtu 9500 ip firewall disable ip address 10.22.0.1/30 ip ospf instance 1 ip ospf exit interface loopback 1 ip address 10.10.0.1/32 ip ospf instance 1 ip ospf exit mpls ldp router-id 10.10.0.1 address-family ipv4 interface gigabitethernet 1/0/1 exit interface gigabitethernet 1/0/2 exit interface gigabitethernet 1/0/3 exit exit enable exit forwarding interface gigabitethernet 1/0/1 forwarding interface gigabitethernet 1/0/2 forwarding interface gigabitethernet 1/0/3 exit |
Scroll Pagebreak |
---|
Настройка протокола BGP:
Блок кода |
---|
PE1(config)# router bgp 65500 PE1(config-bgp)# neighbor 10.10.0.4 PE2(config-bgp)# router-id 10.10.0.1 PE1(config-bgp-neighbor)# remote-as 65500 PE1(config-bgp-neighbor)# update-source 10.10.0.1 PE1(config-bgp-neighbor)# address-family l2vpn vpls PE1(config-bgp-neighbor-af)# send-community extended PE1(config-bgp-neighbor-af)# enable PE1(config-bgp-neighbor-af)# exit PE1(config-bgp-neighbor)# enable PE1(config-bgp-neighbor)# exit PE1(config-bgp)# enable PE1(config-bgp)# exit |
...
Блок кода |
---|
PE1(config)# bridge 1 PE1(config-bridge)# enable PE1(config-bridge)# exit PE1(config)# interface gigabitethernet 1/0/4 PE1(config-if-gi)# mode switchport PE1(config-if-gi)# bridge-group 1 |
Scroll Pagebreak |
---|
Проверим, что интерфейс включен в бридж-домен:
...
Блок кода |
---|
PE1(config)# mpls PE1(config-mpls)# l2vpn PE1(config-l2vpn)# vpls l2vpn PE1(config-l2vpn-vpls)# bridge-group 1 |
Scroll Pagebreak |
---|
...
Блок кода |
---|
PE1# show bgp l2vpn vpls all Status codes: * - valid, > - best, i - internal, S - stale Origin codes: i - IGP, e - EGP, ? - incomplete Codes Route Distinguisher VID VBO VBS Next hop Metric LocPrf Weight Path ----- --------------------- ----- ----- ----- --------------- ---------- ---------- ------ ------------------- *> 65500:100 1 1 10 -- -- -- -- PE1# show bgp l2vpn vpls all neighbor 10.10.0.4 advertise-routes Origin codes: i - IGP, e - EGP, ? - incomplete Route Distinguisher VID VBO VBS Next hop Metric LocPrf Path --------------------- ----- ----- ----- --------------- ---------- ---------- ---------------------- 65500:100 1 1 10 10.10.0.1 -- 100 i * Подробный вывод анонсированного маршрута * PE1# show bgp l2vpn vpls all neighbor 10.10.0.4 advertise-routes ve-id 1 block -offset 1 BGP routing table entry for 65500:100 VE ID 1 VE Block Offset 1 VE Block Size: 10 Label Base: 86 Next hop: 10.10.0.1 AS path: -- Origin: IGP Local preference: 100 Extended Community: RT:65500:100 Layer2-info: encaps (VPLS), control flags(0x00), MTU (1500) |
Scroll Pagebreak |
---|
...
Блок кода |
---|
PE2(config-bgp)# route-target export 65500:100 PE2(config-bgp)# route-target import 65500:100 PE2(config-bgp)# vpn id 2 PE2(config-bgp)# ve id 2 PE2(config-bgp)# exit PE2(config-l2vpn-vpls)# enable |
Scroll Pagebreak |
---|
Проверяем, что PE2 анонсирует маршрутную информацию на RR:
...
Блок кода |
---|
PE2# show mpls l2vpn vpls l2vpn VPLS: l2vpn bridge 1: MTU: 1500 Status: Up ACs: gigabitethernet 1/0/4: MTU: 1500 Status: Up PWs: PW ID 2, Neighbor 10.10.0.1: MTU: 1500 Last change: 00:21:33 Status: Up |
Scroll Pagebreak |
---|
...
Блок кода |
---|
PE3# show bgp l2vpn vpls all neighbor 10.10.0.4 advertise-routes Origin codes: i - IGP, e - EGP, ? - incomplete Route Distinguisher VID VBO VBS Next hop Metric LocPrf Path --------------------- ----- ----- ----- --------------- ---------- ---------- ---------------------- 65500:100 3 1 10 10.10.0.3 -- 100 i |
Scroll Pagebreak |
---|
...
Шаг | Описание | Команда | Ключи |
---|---|---|---|
1 | Настроить адресацию и один из протоколов IGP на всех P и PE-маршрутизаторах. | ||
2 | Настроить распространение транспортных меток по протоколу LDP. | ||
3 | Создать VRF. | esr(config)# ip vrf <VRF> | <VRF> – имя экземпляра VRF, задается строкой до 31 символа. |
4 | Указать route distinguisher для данного VRF. | esr(config-vrf)# rd <RD> | <RD> – значение Route distinguisher, задается в одном из следующем виде:
|
5 | Указать route target import для данного VRF. | esr(config-vrf)# route-target import <RT> | <RT> – значение route-target, задается в одном из следующих видов:
|
6 | Указать route target export для данного VRF. | esr(config-vrf)# route-target export <RT> | <RT> – значение route-target, задается в одном из следующем виде:
|
7 | Указать разрешенное количество маршрутов для данного VRF. | esr(config-vrf)# ip protocols <PROTOCOLS> max-routes <VALUE> | <PROTOCOL> – вид протокола, принимает значения: rip (только в глобальном режиме), ospf, isis, bgp; <VALUE> – количество маршрутов в маршрутной таблице, принимает значения в диапазоне:
|
8 | В рамках настройки address-family VPNv4 протокола BGP включить передачу расширенный атрибутов. | esr(config-bgp-neighbor-af)# send-community extended |
...
Настроить L3VPN на базе технологии MPLS между ESR1 и ESR3. Конечным результатом настройки является появление связности между узлами, подключенными к VRF на различных маршрутизаторах сети (то есть объединение VRF на разных маршрутизаторах через MPLS-транспорт). При этом должна быть обеспечена передача сервисных MPLS-меток для сервиса L3VPN посредством MP-BGP и передача транспортных меток для достижения nexthop-адресов полученных BGP-маршрутов.
Решение:
Настройка адресации и включение IGP на P/PE-маршрутизаторах:
Блок кода | ||
---|---|---|
| ||
ESR1(config)# router ospf log-adjacency-changes ESR1(config)# router ospf 1 ESR1(config-ospf)# router-id 1.1.1.1 ESR1(config-ospf)# area 0.0.0.0 ESR1(config-ospf-area)# enable ESR1(config-ospf-area)# exit ESR1(config-ospf)# enable ESR1(config-ospf)# exit ESR1(config)# ESR1(config)# interface loopback 1 ESR1(config-loopback)# ip address 1.1.1.1/32 ESR1(config-loopback)# ip ospf instance 1 ESR1(config-loopback)# ip ospf ESR1(config-loopback)# exit ESR1(config)# ESR1(config)# interface gigabitethernet 1/0/1.10 ESR1(config-subif)# ip firewall disable ESR1(config-subif)# ip address 10.10.10.1/30 ESR1(config-subif)# ip ospf instance 1 ESR1(config-subif)# ip ospf ESR1(config-subif)# exit ESR1(config)# ESR1(config)# interface gigabitethernet 1/0/1.40 ESR1(config-subif)# ip firewall disable ESR1(config-subif)# ip address 40.40.40.1/30 ESR1(config-subif)# ip ospf instance 1 ESR1(config-subif)# ip ospf ESR1(config-subif)# exit ESR1(config)# ESR1(config)# system jumbo-frames ESR1(config)# do commit ESR1(config)# do confirm |
...
Блок кода |
---|
ESR1# show ip ospf neighbors Router ID Pri State DTime Interface Router IP --------- --- ----- ----- ------------- --------- 2.2.2.2 128 Full/BDR 00:39 gi1/0/1.10 10.10.10.2 4.4.4.4 128 Full/BDR 00:32 gi1/0/1.40 40.40.40.2 ESR1# show ip ospf O 40.40.40.0/30 [150/10] dev gi1/0/1.40 [ospf1 1970-01-08] (1.1.1.1) O * 30.30.30.0/30 [150/20] via 40.40.40.2 on gi1/0/1.40 [ospf1 1970-01-08] (3.3.3.3) O 1.1.1.1/32 [150/0] dev lo1 [ospf1 1970-01-08] (1.1.1.1) O * 4.4.4.4/32 [150/10] via 40.40.40.2 on gi1/0/1.40 [ospf1 1970-01-08] (4.4.4.4) O * 20.20.20.0/30 [150/20] via 10.10.10.2 on gi1/0/1.10 [ospf1 22:05:45] (3.3.3.3) O 10.10.10.0/30 [150/10] dev gi1/0/1.10 [ospf1 22:05:33] (1.1.1.1) O * 3.3.3.3/32 [150/20] multipath [ospf1 22:05:45] (3.3.3.3) via 40.40.40.2 on gi1/0/1.40 weight 1 O * 2.2.2.2/32 [150/10] via 10.10.10.2 on gi1/0/1.10 [ospf1 22:05:45] (2.2.2.2) |
Настройка LDP на P/PE-маршрутизаторах:
Блок кода | ||
---|---|---|
| ||
ESR1# config ESR1(config)# mpls ESR1(config-mpls)# ldp ESR1(config-ldp)# address-family ipv4 ESR1(config-ldp-af-ipv4)# transport-address 1.1.1.1 ESR1(config-ldp-af-ipv4)# interface gigabitethernet 1/0/1.10 ESR1(config-ldp-af-ipv4-if)# exit ESR1(config-ldp-af-ipv4)# interface gigabitethernet 1/0/1.40 ESR1(config-ldp-af-ipv4-if)# exit ESR1(config-ldp-af-ipv4)# exit ESR1(config-ldp)# enable ESR1(config-ldp)# exit ESR1(config-mpls)# forwarding interface gigabitethernet 1/0/1.10 ESR1(config-mpls)# forwarding interface gigabitethernet 1/0/1.40 ESR1(config-mpls)# exit ESR1(config)# do commit ESR1(config)# do confirm |
...
Блок кода | ||
---|---|---|
| ||
ESR4# config ESR4(config)# mpls ESR4(config-mpls)# ldp ESR4(config-ldp)# address-family ipv4 ESR4(config-ldp-af-ipv4)# transport-address 4.4.4.4 ESR4(config-ldp-af-ipv4)# interface gigabitethernet 1/0/1.30 ESR4(config-ldp-af-ipv4-if)# exit ESR4(config-ldp-af-ipv4)# interface gigabitethernet 1/0/1.40 ESR4(config-ldp-af-ipv4-if)# exit ESR4(config-ldp-af-ipv4)# exit ESR4(config-ldp)# enable ESR4(config-ldp)# exit ESR4(config-mpls)# forwarding interface gigabitethernet 1/0/1.30 ESR4(config-mpls)# forwarding interface gigabitethernet 1/0/1.40 ESR4(config-mpls)# exit ESR4(config)# do commit ESR4(config)# do confirm |
Scroll Pagebreak |
---|
...
Блок кода | ||
---|---|---|
| ||
router bgp 65500 ESR3(config)# router bgp 65500 ESR3(config-bgp)# vrf Customer1 ESR3(config-bgp-vrf)# router-id 192.168.32.5 ESR3(config-bgp-vrf)# neighbor 192.168.32.6 ESR3(config-bgp-vrf-neighbor)# remote-as 65505 ESR3(config-bgp-vrf-neighbor)# update-source 192.168.32.5 ESR3(config-bgp-vrf-neighbor)# address-family ipv4 unicast ESR3(config-bgp-neighbor-af-vrf)# route-map OUTPUT out ESR3(config-bgp-neighbor-af-vrf)# enable ESR3(config-bgp-neighbor-af-vrf)# exit ESR3(config-bgp-vrf-neighbor)# enable ESR3(config-bgp-vrf-neighbor)# exit ESR3(config-bgp-vrf)# address-family ipv4 unicast ESR3(config-bgp-vrf-af)# redistribute connected ESR3(config-bgp-vrf-af)# redistribute bgp 65500 ESR3(config-bgp-vrf-af)# exit ESR3(config-bgp-vrf)# enable ESR3(config-bgp-vrf)# exit ESR3(config-bgp)# exit ESR3(config)# do commit ESR3(config)# do confirm |
Scroll Pagebreak |
---|
...
Информация |
---|
cpu load-balance mpls passenger ip Включает возможность "заглядывать" дальше MPLS-заголовка для поиска IP-заголовка, и добавления ip-src и ip-dst в расчет хэша: Для L3VPN: Идет поиск пары ip-src и ip-dst в ip-заголовке, находящимся за mpls заголовком.
Для L2VPN: ESR попытается "заглянуть" в ethernet-фрейм (который находится за mpls заголовком) и получить ip-src и ip-dst в ip-заголовке для добавления в расчет хеша.
|
Информация |
---|
cpu load-balance mpls passenger ip-over-ethernet-pseudowire-with-cw cpu load-balance mpls passenger ip-over-ethernet-pseudowire-without-cw Позволяет явно указать, используется ли при построении L2VPN функционал Control Word. Позволяет Это позволяет исключить возникновение ошибки, когда пакет с наличием Сontrol word может быть ошибочно распознан как пакет без Сontrol Word.него. |
При хэшировании MPLS-меток действуют следующие ограничения:
- В расчет не добавляются метки 0-15 (Special-Purpose Labels) - см. RFC 7274;
- В расчет не добавляется метка, если непосредственно перед ней следует метка 15 (Extension Label) - см. RFC 7274;
- В расчет хэша добавляется не более трёх меток.
Примечание |
---|
Во избежание падения LDP-сессии при большой нагрузке на СPU маршрутизатора на моделях: ESR-200, ESR-1000, ESR-1200, ESR-1500, ESR-1700 после включения функционала все пакеты протокола LDP будут обрабатываться управляющим управляющими CPU (Management CPU), который которые не участвуют в обработке трафика. Для ESR-200, ESR-1000, ESR-1200, ESR-1500 – это СPU 0, ESR-1700 – CPU 0-1. |
...
Информация |
---|
Для point-to-point бридж-домен создается автоматически. |
Между элементами бридж – -домена осуществляется коммутация трафика на основании перечисленных правил :
...
Предположим, PE1 и PE2 cконфигурированы в ethernet mode (Рисунок 2). Со стороны PE1 в бридж-домен включен cабинтерфейс gigabitethernet 1/0/4.100, соответственно vlan-тег (vlan id 100) с входящего трафика будет удален перед помещением в Pseudowire 10 (соответственно, восстановлен при трафике в сторону АС). С другой стороны, AC на PE2, является интерфейсом, а значит, трафик будет проходить без модификаций в обоих направлениях.
...
- Если AC является сабинтерфейсом, то vlan-тег перед помещением в бридж сохраняется. При выходе из бриджа vlavlan-тег может быть сохранен или перезаписан в зависимости от конфигурации.
- Если АС является интерфейсом, то модификация трафика не происходит в обоих направлениях.
...
Прежде всего, значение MTU участвует в сигнализации при построении псевдо провода как в LDP-signaling, так и в BGP-signaling. В LDP-signaling MTU задается в рамках настройки pw - pw – class:
Подсказка |
---|
Для сигнализации (LDP, BGP) значение MTU по умолчанию – 1500. |
...
На рисунке выше, РЕ1 поднимает два псевдо проводапсевдопровода: Pseudowire 10 до PE2, и Pseudowire 20 до PE3 соответственно. Для сигнализации с PE2 будет выбрано MTU равным 2000 (pw-class TO_PE2), для PE3 - PE3 – MTU 3000 (pw-class TO_PE3).
...
Если при согласовании значение MTU оказалось разным, то cтатус псевдо провода будет - будет – "DOWN", " Reason: MTU mismatch"
...
СE1 посылает пакеты размером 1500 байт, CE2 - CE2 – 1800 байт соответственно. Так как MTU бридж-домена меньше, чем MTU пакета от CE2, то пакет от CE2 будет отброшен перед попаданием в бридж-домен. Аналогичные действия будут, если MTU-интерфейса, смотрящего в сторону mpls-core (gi1/0/1), меньше чем MTU, приходящих от СE-пакетов (с учетом mpls-заголовка).
...