Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Scroll Pagebreak
Hold timer является согласуемым параметром - выбирается наименьший. В данном примере показано, что ESR после согласования установил 30 секунд:

Блок кода
ESR1# sh mpls ldp discovery detailed

...
Targeted hellos:
1.1.1.1 -> 4.4.4.4:
Hello interval: 2 seconds
Transport IP address: 1.1.1.1
LDP ID: 4.4.4.4
Source IP address: 4.4.4.4
Transport IP address: 4.4.4.4
Hold time: 30 seconds
Proposed hold time: 30/45 (local/peer) seconds

Если после согласования , Hello interval стал больше, чем Hold timer, то Hello interval будет равным Hold timer/3.

...

ШагОписаниеКомандаКлючи
1Настроить протокол LDP (см. раздел Конфигурирование протокола 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
mpls mtu <MTU>

<MTU> – значение MTU, принимает значение в диапазоне [552..10000]

Значение по умолчанию: 1500.

5Отключить обмен status-tlv сообщениями (не обязательно).

esr(config-l2vpn-pw-class)# encapsulation
mpls status-tlv disable

Значение по умолчанию: status-tlv enable
6Создать p2p-туннель в системе и осуществить переход в режим настройки параметров p2p-туннеля.

esr(config-l2vpn)# p2p <NAME>

<NAME> – имя p2p-сервиса, задается строкой до 31 символа.

7Задать Attached Circuit интерфейс.

esr(config-l2vpn-p2p)# interface
 { <IF> | <TUN> }

<IF> – имя интерфейса устройства, задаётся в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора;

<TUN> – имя туннеля устройства, задаётся в виде, описанном в разделе Типы и порядок именования туннелей маршрутизатора.

8Включить p2p-туннель.

esr(config-l2vpn-p2p)# enable


9Задать транспортный режим (не обязательно).

esr(config-l2vpn-p2p)# transport-mode
{ ethenet | vlan }

<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-сессии, обратитесь к разделу Конфигурирование параметров сессии в протоколе targeted-LDP.

...

Scroll Pagebreak
На маршрутизаторе PE1 создадим саб-интерфейс, на который будем принимать трафик от CE1:

...

Разрешим прием пакетов с MPLS-заголовком на интерфейсе в сторону MPLS-сети (В в данном примере интерфейс в сторону PE2):

...

Блок кода
PE1(config-mpls)# ldp
PE1(config-ldp)# router-id 1.1.1.1
PE1(config-ldp)# address-family ipv4
PE1(config-ldp-af-ipv4)# interface gigabitethernet 1/0/1
PE1(config-ldp-af-ipv4-if)# exit
PE1(config-ldp-af-ipv4)# transport-address 1.1.1.1
PE1(config-ldp-af-ipv4)# exit
PE1(config-ldp)# enable
PE1(config-ldp)# exit

Создадим pw-class, на основе которого в дальнейшем будет создан виртуальный канал (pw). Так как в данном примере на pw будут применяться параметры по умолчанию, достаточно будет указать имя класса:

...

ШагОписаниеКомандаКлючи
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
mpls mtu <MTU>

<MTU> - значение MTU, принимает значение в диапазоне [552..10000]

Значение по умолчанию: 1500.

6Отключить обмен status-tlv сообщениями (не обязательно).

esr(config-l2vpn-pw-class)# encapsulation
mpls status-tlv disable

Значение по умолчанию: 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
{ ethenet | vlan }

<ethernet> - Режим при котором при входе в pseudo-wire из заголовка удаляется 802.1Q тэг;
<vlan> - Режим при котором 802.1Q тег может быть сохранен при передаче через pseudo-wire.
Значение по умолчанию: ethernet

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 таким образом, чтобы маршрутизаторы CE1, CE2, CE3 имели L2-связность через интерфейсы gi1/0/2.100 и gi1/0/4 (CE2).

...

Scroll Pagebreak
Разрешим прием пакетов с MPLS-заголовком на интерфейсе в сторону MPLS-сети (В в данном примере интерфейс в сторону PE2):

...

Блок кода
PE1(config-mpls)# ldp
PE1(config-ldp)# router-id 1.1.1.1
PE1(config-ldp)# address-family ipv4
PE1(config-ldp-af-ipv4)# interface gigabitethernet 1/0/1
PE1(config-ldp-af-ipv4-if)# exit
PE1(config-ldp-af-ipv4)# transport-address 1.1.1.1
PE1(config-ldp-af-ipv4)# exit
PE1(config-ldp)# enable
PE1(config-ldp)# exit

Создадим pw-class, на основе которого в дальнейшем будет созданы виртуальные каналы (pw). Так как в данном примере на pw будут применяться параметры по умолчанию, достаточно будет указать имя класса:

...

Убедимся в установлении соседства по протоколу LDP , и выведем информацию по статусу виртуального канала (pseudowire) между PE1, PE2 и PE3:

...

ШагОписаниеКомандаКлючи
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, задается в одном из следующем виде:

  • <ASN>:<nn> – где <ASN> – принимает значение [1..65535], nn - принимает – принимает значение [1..65535];
  • <ADDR>:<nn> – где <ADDR> имеет вид – AAA.BBB.CCC.DDD/EE и AAA-DDD принимают значения [0..255], а nn – принимает значение [1..65535];
  • <4ASN>:<nn> – где <4ASN> – принимает значение [1..4294967295], nn - принимает – принимает значение [1..65535];
8Указать route target import для данного экземпляра VPLS.

esr(config-bgp)# route-target import <RT>

<RT> – значение route-target, задается в одном из следующих видов:

  • <ASN>:<nn> – где <ASN> – принимает значение [1..65535], nn - принимает – принимает значение [1..65535];
  • <ADDR>:<nn> – где <ADDR> имеет вид – AAA.BBB.CCC.DDD/EE и AAA-DDD принимают значения [0..255], а nn – принимает значение [1..65535];
  • <4BASN>:<nn> – где <4ASN> – принимает значение [1..4294967295], nn - принимает – принимает значение [1..65535];
9Указать route target export для данного экземпляра VPLS.

esr(config-bgp)# route-target export <RT>

<RT> – значение route-target, задается в одном из следующих видов:

  • <ASN>:<nn> – где <ASN> – принимает значение [1..65535], nn – принимает значение [1..65535];
  • <ADDR>:<nn> – где <ADDR> имеет вид – AAA.BBB.CCC.DDD/EE и AAA-DDD принимают значения [0..255], а nn – принимает значение [1..65535];
  • <4BASN>:<nn> – где <4ASN> – принимает значение [1..4294967295], nn – принимает значение [1..65535];
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

...

Подсказка

В некоторых случаях можно отказаться от ввода таких параметров, как RD и RT: если указать только VPN ID, то они будут сформированы следующим образом:  <номер AS> : <vpn-id>.

Например, у нас есть номер автономной системы AS 65550, vpn-id мы указали указан 10, тогда cгенерируются следующие параметры:

RD - 65550: 10.

RT import/export - 65550:10.

...

После активации сервиса проверим, что в таблице l2vpn появилась маршрутная информация , и она анонсируется на RR:

...

Настройка маршрутизации PE-CE

Согласно нашей топологии, Customer1 анонсирует по BGP (AS65505) подсеть 10.100.0.0/24. Необходимо настроить соответствующие интерфейсы, eBGP между ESR1 и CE_SiteA. Также необходимо разрешить анонсирование маршрутов в сторону PE. 

Предупреждение

По умолчанию : для eBGP анонсирование маршрутов запрещено, необходимо настроить разрешающее правило. Для iBGP анонсирование маршрутов разрешено.

...

Примечание

При передаче маршрутов из VRF в таблицу VPNv4 ТОЛЬКО connected- и/или  или static сетей  -сетей указывать команду enable не нужно! . Включение необходимо только при наличии BGP пиров в VRF.

Пример конфигурации передачи в VPNv4 таблицу connected и static сетей:

Блок кода
ESR1(config)# router bgp 65500
ESR1(config-bgp)# router-id 1.1.1.1 
ESR1(config-bgp)# neighbor 3.3.3.3
ESR1(config-bgp-neighbor)# remote-as 65500
ESR1(config-bgp-neighbor)# update-source 1.1.1.1
ESR1(config-bgp-neighbor)# enable 
ESR1(config-bgp-neighbor)# address-family vpnv4 unicast 
ESR1(config-bgp-neighbor-af)# send-community extended 
ESR1(config-bgp-neighbor-af)# enable 
ESR1(config-bgp-neighbor-af)# exit
ESR1(config-bgp-neighbor)# exit
ESR1(config-bgp)# enable 
EESR1(config-bgp)# vrf Customer1 
ESR1(config-bgp-vrf)# address-family ipv4 unicast 
ESR1(config-bgp-vrf-af)# redistribute connected 
ESR1(config-bgp-vrf-af)# redistribute static 
ESR1(config-bgp-vrf-af)# exit
ESR1(config-bgp-vrf)# exit
ESR1(config-bgp)# exit
ESR1(config)# do commit
ESR1(config)# do confirm


...

Выводит все принятые VPNv4-маршруты после применения фильтрации.

...

По умолчанию, lbd использует только MPLS-метки для вычисления хэша хеша и дальнейшего распределения нагрузки на различные CPU. Данное поведение не всегда дает преимущество, особенное когда существует "большие" однородные потоки MPLS трафика. Для добавление энтропии в хэш хеш можно включить дополнительный функционал:

Информация

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 может быть ошибочно распознан как пакет без него.

При хэшировании хешировании MPLS-меток действуют следующие ограничения:

  • В расчет не добавляются метки 0-15 (Special-Purpose Labels) - см. RFC 7274;
  • В расчет не добавляется метка, если непосредственно перед ней следует метка 15 (Extension Label) - см. RFC 7274;
  • В расчет хэша хеша добавляется не более трёх меток.

...

Предположим, PE1 и PE2 cконфигурированы в ethernet mode. Со стороны PE1 в бридж-домен включен cабинтерфейс gigabitethernet 1/0/4.100,  соответственно поэтому vlan-тег (vlan id 100) с входящего трафика будет удален перед помещением в Pseudowire 10 (соответственно, восстановлен при трафике в сторону АС). С другой стороны, AC на PE2, является интерфейсом, а значит , трафик будет проходить без модификаций в обоих направлениях.

...

Назначение MTU при работе с MPLS

Очень важно правильно настроить  настроить MTU на интерфейсах, участвующих в передаче трафика.   Отметим два ключевых момента:

  1.   Размер Ethernet-заголовка (18 байт), inner tag (4 байта), outer tag (4 байта) не учитываются на AC интерфейсах;
  2.   На интерфейсах, принимающих участие в пересылке mpls-трафика, необходимо увеличить MTU на количество  количество меток (каждая метка равна 4 байтам).

...

Scroll Pagebreak
Для BGP-signaling MTU  MTU указывается в рамках конфигурации l2vpn-сервиса:

Блок кода
titleBGP -signaling. Настройка MTU для согласования
PE1(config)# mpls 
PE1(config-mpls)# l2vpn 
PE1(config-l2vpn)# vpls l2vpn_MTU 
PE1(config-l2vpn-vpls)# autodiscovery bgp 
PE1(config-bgp)# mtu 1500
 
PE2# sh mpls l2vpn vpls  l2vpn_MTU
VPLS: l2vpn_MTU
...
    PWs:
      PW ID 2, Neighbor 10.10.0.1:
        MTU:         1500
        Last change: 01:27:42
        Status:      Up

* Для сигнализации всех псевдо-проводов данного VPLS будет выбрано MTU 1500 *

Если при согласовании значение MTU не совпадает, то  статус  то статус псевдо-провода будет - "DOWN", " Reason: MTU mismatch":

...

Примечание

В BGP-signaling можно отключить проверку MTU для сервиса:

Блок кода
PE1(config)# mpls
PE1(config-mpls)# l2vpn
PE1(config-l2vpn)# vpls l2vpn _MTU
PE1(config-l2vpn-vpls)# autodiscovery bgp
PE1(config-bgp)# ignore mtu-mismatch

Теперь при согласовании  значение MTU будет игнорироваться.

По умолчанию , бридж-домен имеет MTU равным 1500 байт. Стоит отметить, что bridge-domain автоматически выбирает наименьшее значение MTU, исходя из собственного MTU , и MTU-интерфейсов, включенных в бридж-домен.

...

Рассмотрим примеры настройки на базе построения сервисов  сервисов l3vpn и l2vpn.   Главная особенность  особенность inter-AS option A  - отсутствие mpls  A – отсутствие mpls -меток в трафике при передаче между ABSR. Для разделения трафика клиентских сервисов между ASBR обычно используют VRF  VRF для l3vpn  l3vpn или тегирование (dot1q, q-in-q)  для сервисов  сервисов l2vpn. 

L2VPN

Cхема





Настроим  СE:

Блок кода
titleСE1
ESR# config
ESR(config)# hostname CE1
ESR(config)# interface gigabitethernet 1/0/1.100
ESR(config-if-gi)# ip firewall disable 
ESR(config-if-gi)# ip address 192.168.1.1/24
ESR(config-if-gi)# do com
ESR(config-if-gi)# do conf

...

Произведем настройку PE1 и PE2.   Анонсирование  Анонсирование сервисных меток возложим на протокол BGP (Kompella mode):

...

Настроим ASBR1 и ASBR2. Для разделение трафика  разделения трафика от CE1 и CE2 в сторону ASBR2 сделаем  сделаем интерфейс gi1/0/1 транковым.   Vlan 100 и 200  будут  200 будут предназначены для трафика от CE1 и СE2 соответственно.

...

Проверим назначение меток,   статус сервисов, а также сетевую доступность между CE.

...

Блок кода
titleПроверка сетевой доступности
CE1# ping 192.168.1.2 detailed 
PING 192.168.1.2 (192.168.1.2) 56 bytes of data.
64 bytes from 192.168.1.2: icmp_seq=1 ttl=0 time=1.08 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=0 time=1.06 ms
64 bytes from 192.168.1.2: icmp_seq=3 ttl=0 time=1.01 ms
64 bytes from 192.168.1.2: icmp_seq=4 ttl=0 time=0.971 ms
64 bytes from 192.168.1.2: icmp_seq=5 ttl=0 time=0.972 ms

CE2# ping 192.168.2.2 detailed  packets
PING 192.168.2.2 (192.168.2.2) 56 bytes of data.
64 bytes from 192.168.2.2: icmp_seq=1 ttl=0 time=1.17 ms
64 bytes from 192.168.2.2: icmp_seq=2 ttl=0 time=0.972 ms
64 bytes from 192.168.2.2: icmp_seq=3 ttl=0 time=0.960 ms
64 bytes from 192.168.2.2: icmp_seq=4 ttl=0 time=1.04 ms
64 bytes from 192.168.2.2: icmp_seq=5 ttl=0 time=0.976 ms

ASBR2# sh mac address-table bridge 10
VID     MAC Address          Interface                        Type      
-----   ------------------   ------------------------------   -------   
--      e4:5a:d4:01:b9:73    vlan 100                         Dynamic   
--      e4:5a:d4:a1:34:61    dypseudowire 1_10.11.1.1         Dynamic   
2 valid mac entries
ASBR2# sh mac address-table bridge 20
VID     MAC Address          Interface                        Type      
-----   ------------------   ------------------------------   -------   
--      e4:5a:d4:01:c1:80    vlan 200                         Dynamic   
--      e4:5a:d4:a1:34:61    dypseudowire 2_10.11.1.1         Dynamic   
2 valid mac entries


L3VPN

Схема


 Настроим СЕ:

Блок кода
titleСE1
ESR(config)# hostname CE1
ESR(config)# 
ESR(config)# route-map BGP
ESR(config-route-map)#   rule 1
ESR(config-route-map-rule)#   exit
ESR(config-route-map)# exit
ESR(config)# router bgp 65501
ESR(config-bgp)#   neighbor 192.168.1.2
ESR(config-bgp-neighbor)#     remote-as 65500
ESR(config-bgp-neighbor)#     address-family ipv4 unicast
ESR(config-bgp-neighbor-af)#       route-map BGP out
ESR(config-bgp-neighbor-af)#       enable
ESR(config-bgp-neighbor-af)#     exit
ESR(config-bgp-neighbor)#     enable
ESR(config-bgp-neighbor)#   exit
ESR(config-bgp)#   address-family ipv4 unicast
ESR(config-bgp-af)#     network 10.110.0.1/32
ESR(config-bgp-af)#   exit
ESR(config-bgp)#   enable
ESR(config-bgp)# exit
ESR(config)# interface gigabitethernet 1/0/1.100
ESR(config-subif)#   ip firewall disable
ESR(config-subif)#   ip address 192.168.1.1/30
ESR(config-subif)# exit
ESR(config)# 
ESR(config)# interface loopback 1
ESR(config-loopback)#   ip address 10.110.0.1/32
ESR(config-loopback)# exit
ESR(config)# do com 
ESR(config)# do conf

...

Настроим ASBR1 и ASBR2. Для передачи маршрутной информации между ними воспользуемся протоколов OSPF в соответствующих VRF.:

Блок кода
titleASBR1
ESR(config)# hostname ASBR1
ESR(config)# 
ESR(config)# ip vrf CE1
ESR(config-vrf)#   ip protocols ospf max-routes 100
ESR(config-vrf)#   rd 65500:1
ESR(config-vrf)#   route-target export 65500:1
ESR(config-vrf)#   route-target import 65500:1
ESR(config-vrf)# exit
ESR(config)# ip vrf CE2
ESR(config-vrf)#   ip protocols ospf max-routes 100
ESR(config-vrf)#   rd 65500:2
ESR(config-vrf)#   route-target export 65500:2
ESR(config-vrf)#   route-target import 65500:2
ESR(config-vrf)# exit
ESR(config)# 
ESR(config)# system jumbo-frames
ESR(config)# 
ESR(config)# vlan 100,200
ESR(config-vlan)# exit
ESR(config)# 
ESR(config)# router bgp 65500
ESR(config-bgp)#   router-id 10.10.1.2
ESR(config-bgp)#   neighbor 10.10.1.1
ESR(config-bgp-neighbor)#     remote-as 65500
ESR(config-bgp-neighbor)#     update-source 10.10.1.2
ESR(config-bgp-neighbor)#     address-family vpnv4 unicast
ESR(config-bgp-neighbor-af)#       send-community extended
ESR(config-bgp-neighbor-af)#       enable
ESR(config-bgp-neighbor-af)#     exit
ESR(config-bgp-neighbor)#     enable
ESR(config-bgp-neighbor)#   exit
ESR(config-bgp)#   enable
ESR(config-bgp)#   vrf CE1
ESR(config-bgp-vrf)#     address-family ipv4 unicast
ESR(config-bgp-vrf-af)#       redistribute ospf 1 intra-area inter-area external1 external2
ESR(config-bgp-vrf-af)#     exit
ESR(config-bgp-vrf)#   exit
ESR(config-bgp)#   vrf CE2
ESR(config-bgp-vrf)#     address-family ipv4 unicast
ESR(config-bgp-vrf-af)#       redistribute ospf 1 intra-area inter-area external1 external2
ESR(config-bgp-vrf-af)#     exit
ESR(config-bgp-vrf)#   exit
ESR(config-bgp)# exit
ESR(config)# 
ESR(config)# router ospf log-adjacency-changes
ESR(config)# router ospf 1
ESR(config-ospf)#   area 0.0.0.0
ESR(config-ospf-area)#     enable
ESR(config-ospf-area)#   exit
ESR(config-ospf)#   enable
ESR(config-ospf)# exit
ESR(config)# router ospf 1 vrf CE1
ESR(config-ospf)#   redistribute bgp 65500
ESR(config-ospf)#   area 0.0.0.0
ESR(config-ospf-area)#     enable
ESR(config-ospf-area)#   exit
ESR(config-ospf)#   enable
ESR(config-ospf)# exit
ESR(config)# router ospf 1 vrf CE2
ESR(config-ospf)#   area 0.0.0.0
ESR(config-ospf-area)#     enable
ESR(config-ospf-area)#   exit
ESR(config-ospf)#   enable
ESR(config-ospf)# exit
ESR(config)# 
ESR(config)# bridge 10
ESR(config-bridge)#   ip vrf forwarding CE1
ESR(config-bridge)#   vlan 100
ESR(config-bridge)#   ip firewall disable
ESR(config-bridge)#   ip address 172.16.32.1/30
ESR(config-bridge)#   ip ospf instance 1
ESR(config-bridge)#   ip ospf
ESR(config-bridge)#   enable
ESR(config-bridge)# exit
ESR(config)# bridge 20
ESR(config-bridge)#   ip vrf forwarding CE2
ESR(config-bridge)#   vlan 200
ESR(config-bridge)#   ip firewall disable
ESR(config-bridge)#   ip address 172.16.32.5/30
ESR(config-bridge)#   ip ospf instance 1
ESR(config-bridge)#   ip ospf
ESR(config-bridge)#   enable
ESR(config-bridge)# exit
ESR(config)# 
ESR(config)# interface gigabitethernet 1/0/1
ESR(config-if-gi)#   description "to ASBR2"
ESR(config-if-gi)#   mode switchport
ESR(config-if-gi)#   spanning-tree disable
ESR(config-if-gi)#   switchport forbidden default-vlan
ESR(config-if-gi)#   switchport mode trunk
ESR(config-if-gi)#   switchport trunk allowed vlan add 100,200
ESR(config-if-gi)# exit
ESR(config)# interface gigabitethernet 1/0/2
ESR(config-if-gi)#   description "to PE1"
ESR(config-if-gi)#   mtu 1522
ESR(config-if-gi)#   ip firewall disable
ESR(config-if-gi)#   ip address 10.100.0.2/30
ESR(config-if-gi)#   ip ospf instance 1
ESR(config-if-gi)#   ip ospf
ESR(config-if-gi)# exit
ESR(config)# interface loopback 1
ESR(config-loopback)#   ip address 10.10.1.2/32
ESR(config-loopback)#   ip ospf instance 1
ESR(config-loopback)#   ip ospf
ESR(config-loopback)# exit
ESR(config)# mpls
ESR(config-mpls)#   ldp
ESR(config-ldp)#     router-id 10.10.1.2
ESR(config-ldp)#     address-family ipv4
ESR(config-ldp-af-ipv4)#       interface gigabitethernet 1/0/2
ESR(config-ldp-af-ipv4-if)#       exit
ESR(config-ldp-af-ipv4)#     exit
ESR(config-ldp)#     enable
ESR(config-ldp)#   exit
ESR(config-mpls)#   forwarding interface gigabitethernet 1/0/2
ESR(config-mpls)# exit
ESR(config)# do com
ESR(config)# do conf

...