VPLS: различия между версиями
(Новая страница: «VPLS Для клиента сеть будет выглядеть как бродкастовый домен. Для провайдера набор канало…») |
м |
||
(не показаны 72 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
VPLS | {{#description2: VPLS Forwarding. VPLS Signaling. Выделение меток в VPLS. Vlan в VPLS. Multihoming VPLS. Конфигурация VPLS. Траблшутинг VPLS. Информация для подготовки к экзаменам Juniper.}} | ||
В L2VPN используются только каналы точка-точка, и нет возможности обеспечить связность точка-многоточка. Эту проблему решает - VPLS. | |||
Для | Для клиента сеть будет выглядеть как бродкастовый домен. ''Full-mesh'' между точками. | ||
Для провайдера: набор каналов точка-точка. | |||
В vpls соединениях точка-точка принято называть ''pseudo-wire''. | |||
=Forwarding= | |||
В обычном мире, не касаясь MPLS, когда хост посылает фрейм в свитч: свитч ''бродкастит'' и ''лернит''. | |||
VPLS-instance работает как свитч, который тоже ''бродкастит'' и ''лернит''. | VPLS-instance работает как свитч, который тоже ''бродкастит'' и ''лернит''. | ||
* На PE1 в VPLS прилетел фрейм, VPLS: запомнил какой mac, соотнес с портом: A -> int 1. | * На PE1 в VPLS прилетел фрейм, VPLS: запомнил какой mac, соотнес с портом: A -> int 1. | ||
* PE1 флудит его во все интерфейсы. А '''pseudo-wire''', | * PE1 флудит его во все интерфейсы. А '''pseudo-wire''', воспринимаем как интерфейс. Т.о. фрейм долетел до PE2. | ||
* PE2 заучивает mac: A -> pseudo-wire 1. | * PE2 заучивает mac: A -> pseudo-wire 1 (''lsi interface''). | ||
* Фрейм, пришедший с локального интерфейса, должен быть разослан '''всем''' PE. | *Фрейм, пришедший с локального интерфейса, должен быть разослан '''всем''' PE. | ||
{{note|text= | {{note|text=Фрейм, пришедший с локального интерфейса флудится во все локальные интерфейсы и pseudo-wire. | ||
Чтобы не было петли.}} | Фрейм, который пришел от pseudo-wire (''lsi''), флудится только в локальные интерфейсы. Чтобы не было петли.}} | ||
Когда прилетает фрейм с dest-mac уже известным, то он идет по уже заученному для него пути. | Когда прилетает фрейм с dest-mac уже известным, то он идет по уже заученному для него пути. | ||
Строка 24: | Строка 26: | ||
Внутри VPLS происходит lookup по маку => должен быть включен tunnel-services. | Внутри VPLS происходит lookup по маку => должен быть включен tunnel-services. | ||
=Signaling= | |||
Pseudo-wire - строятся по LDP или BGP. В отличие от L2VPN, в VPLS - сигнализация по BGP имеет огромное приемущество. | Pseudo-wire - строятся по LDP или BGP. В отличие от L2VPN, в VPLS - сигнализация по BGP имеет огромное приемущество. | ||
====BGP | ==BGP== | ||
BGP выполняет функцию signaling и auto-discovery. PE ищет какие PE законнектились в тот же VPLS и отправляет им NLRI. | |||
Передается NLRI, аналогичный BGP L2VPN: | Передается NLRI, аналогичный BGP L2VPN: | ||
* label base | * label base | ||
Строка 34: | Строка 39: | ||
* offset | * offset | ||
То есть для работы VPLS в настройках включаем тот же самый l2vpn signaling. | То есть для работы VPLS в настройках BGP включаем тот же самый l2vpn signaling. | ||
L2-circuit - это по сути метки (на выход, вход). В отличие от L2VPN каждому локальному интерфейсу назначать метку нет смысла, ведь внутри VPLS уже есть соответствие ''mac - interface''. Поэтому в VPLS метка должна была бы назначиться целиком на '''RI (per instance, per site)'''. | |||
Но эта логика не правильная. =( | Но эта логика не правильная. =( | ||
Learning mac-адресов! делает эту схему многоточкой! | |||
Блок меток соответствует-выделяется '''удаленному site''', чтобы когда пакет придет на РЕ понимать с какого site он пришел. Это требуется, чтобы сделать правильный learning. | |||
В остальном весь остальной процесс signaling аналогичен L2VPN. | В остальном весь остальной процесс signaling аналогичен L2VPN. | ||
Строка 46: | Строка 53: | ||
Site-ID в данной схеме принципиального значения не имеет. Требуется только для PE для внутренних вычислений, поэтому можно просто выбрать и назначить site-id, или задать ''auto-site-id''. | Site-ID в данной схеме принципиального значения не имеет. Требуется только для PE для внутренних вычислений, поэтому можно просто выбрать и назначить site-id, или задать ''auto-site-id''. | ||
==LDP== | |||
В случае l2circuit указывали удаленный PE. В VPLS, помимо всего прочего, потребуется добавить всех remote-site-id. | Между PE требуется full-mesh. | ||
В случае l2circuit указывали удаленный PE. | |||
В VPLS, помимо всего прочего, потребуется добавить для всех удаленных PE remote-site-id ручками. | |||
=Метки= | |||
Как и у L2VPN в NLRI передается: | |||
* label base (начальная) | |||
* site-ID | |||
* label range | |||
Исходя из полученных данных PE вычисляет свою метку для связи с тем PE, кот переслал блок: | |||
label = label base (remote) + site-ID (local) - 1 (offset) (remote) | |||
=Инкапсуляция= | |||
Ниже описанное касается CE-facing интерфейс. | |||
===+/- | Для обычного Ethernet с vlan должна стоять: '''vlan-vpls'''. Она подходит как для qinq, так и для 802.1q. | ||
Можно ставить ее как на логический интерфейс, так и на физический. | |||
Если это не единственный тип инкапсуляции на физическом интерфейсе, то лучше на нем сразу указать тип инкапсуляции: flexible-ethernet-services. | |||
=Vlan= | |||
В рамках vrf VPLS можно определять vlan для VPLS путем конфигурирования vlan-id | vlan-tags | |||
*''vlan-id <vlan-id>'' - в VPLS будет работать только один указанный vlan-id | |||
*''vlan-id none'' - у приходящего пакета будет сниматься vlan-id tag. У исходящего навешиваться тот vlan-id tag, который указан на исходящем из VPLS интерфейсе. | |||
*''vlan-id all'' - используется с logical interface, на которых настроено двойное теггирование. При этом на выходе из VPLS outer-tag будет навешиваться (push), на входе в VPLS outer-tag будет сниматься (pop). В VPLS будут бегать маки с inner vlan-id. | |||
*''vlan-tags inner <> outer <>'' - позволяет работать VPLS с двумя тегами. | |||
{{note|text= Если в VPLS указывает vlan каким-то из способов, то на interface нельзя использовать input-vlan-map и output-vlan-map }} | |||
Со стороны клиента: влан на разных site должен совпадать. Иначе связности не будет. | |||
=+/-= | |||
VPLS +: | VPLS +: | ||
*удобнее в трабшутинге | |||
*в отличие от L2VPN не требует указания remote-site | |||
*обеспечивает схему коммутации точка-многоточка | |||
VPLS - : | |||
*бродкаст домен => защита от петель между PE<>CE | |||
:*STP на PE<>CE | |||
:*ERP на CE | |||
:*LAG на PE <> CE | |||
:*Active/backup links on PE | |||
:*Multihomed CE with two PEs. | |||
*может передавать только ''ethernet'' | |||
=Configuration= | |||
==BGP based VPLS== | |||
Минимальный рабочий конфиг: | |||
На всех роутерах: | |||
*BGP-family: | |||
[edit protocols bgp] | |||
set family '''l2vpn signaling''' | |||
*encapsulation vlan-vpls (как для LDP signalling, так и для BGP signaling): | |||
[edit interfaces] | |||
ge-0/0/1 { | |||
encapsulation ''vlan-vpls|flexible-ethernet-services'' | |||
[edit interfaces ge-0/0/1 unit 804] | |||
encapsulation '''vlan-vpls'''; | |||
vlan-id 804; | |||
'''Lagavulin:''' | |||
[edit routing-instances oak] | |||
instance-type vpls; | |||
vlan-id 804; | |||
interface ge-0/0/0.804; | |||
route-distinguisher 10.200.86.7:1313; | |||
vrf-target target:1111:1313; | |||
protocols { | |||
vpls { | |||
no-tunnel-services; | |||
site ce4 { | |||
site-identifier 1; | |||
Дополнительные часто используемые параметры: | |||
*'''connectivity-type permanent''' - вне зависимости от состояния интерфейсов - поднимет VPLS. | |||
*'''mac-table-size 6000 packet-action drop''' - ограничение по макам в VPLS. | |||
*'''site-range 8''' - ограничение по количеству site в рамках одного VPLS. | |||
===Multihoming (BGP signaling)=== | |||
Используется для подключения одного site клиента к нескольким PE. | |||
Только один PE будет активным и выбран в качестве designated forwarder, т.е. передавать трафик. Такой PE будет устанавливать с удаленным PE pseudo-wire. | |||
Если что-то произойдет с активным PE, второй multihomed PE установит pseudo-wire до удаленного PE. | |||
Удаленные PE, чтобы определить куда им все-таки нужно передавать трафик, используют процесс ''VPLS path-selection'': | |||
#Если advertisement bit = 0, то эта NLRI отбрасывается. | |||
#Далее выбор идет по наибольшему site-preference приоритету. | |||
#Далее по меньшему RID. | |||
#Далее по меньшему ip адресу BGP Peer. | |||
Удаленный PE выбрал активный multihomed PE, назначив его designated VE (VPLS edge). И стал использовать только 1 NLRI. До такого designated VE удаленный PE и построит pseudo-wire. | |||
{{note|text=Если требуется использовать multihoming для VPLS, то нужно учесть, что это будет работать только с BGP сигнализацией. '''Не LDP'''.}} | |||
Настраиваем: | |||
#Одинаковый site-id для multi homed PE. | |||
#Разный RD для multi homed PE. | |||
#Указать интерфейсы в VPLS. | |||
#Включить multihoming. | |||
#Если на сети используется схема, где один и тот же site растянут на 2 PE, оба PE имеют линки в сторону одного CE, то можно определять активный PE с помощью ''site-preference backup|primary''. Либо руками задавать site-preference. Backup-PE поднимет connections с удаленными PE только в случае отвала primary PE того же site. | |||
#[В случае, если на одной PE несколько линков к CE]. Задаем active-interface. Если указываем ''any'', то будет выбран один из перечисленных ниже интерфейсов. Если указываем ''primary'', то активным сразу будет выбран явно заданный интерфейс. А остальные интерфейсы в порядке очереди будут использоваться при падении primary. | |||
[edit routing-instances] | |||
+ oak { | |||
+ instance-type vpls; | |||
+ vlan-id 200; | |||
+ interface ge-0/0/0.200; | |||
+ interface ge-0/0/1.200; | |||
+ route-distinguisher 10.200.86.1:100; | |||
+ vrf-target target:1111:100; | |||
+ protocols { | |||
+ vpls { | |||
+ no-tunnel-services; | |||
+ site blair | |||
+ site-identifier 1; | |||
+ '''multi-homing'''; | |||
+ '''site-preference primary''''; | |||
+ '''active-interface primary''' ge-0/0/0.200; | |||
+ interface ge-0/0/1.200;}}}} | |||
==LDP based VPLS== | |||
Также обязательным: | |||
* instance-type vpls | |||
* lo должен быть добавлен в ldp | |||
* !!'''rt, rd - не обязательны'''!! | |||
Есть несколько отличий: | |||
* Вводится ''vpls-id''. Это просто идентификатор vpls. Аналогично virtual-circuit-id для l2vpn LDP signaling. То есть просто любое уникальное число. | |||
* Вручную указываются соседи - удаленные PE. | |||
- | oban> show configuration routing-instances fox | ||
instance-type vpls; | |||
interface ge-0/0/2.10; | |||
vlan-id {all | vlan-id | none} | |||
protocols { | |||
vpls { | |||
encapsulation-type ethernet; | |||
no-tunnel-services; | |||
vpls-id 9876; | |||
neighbor 10.200.86.8; }} | |||
VPLS - : | Дополнительные часто используемые параметры: | ||
*'''connectivity-type permanent''' - вне зависимости от состояния интерфейсов - поднимет VPLS. | |||
*'''mac-table-size 6000 packet-action drop'''- ограничение по макам в VPLS. | |||
*'''site-range 8''' - ограничение по количеству site в рамках одного VPLS. | |||
===Multihoming (LDP signaling)=== | |||
Когда два PE, смотрят в сторону одного и того же CE, без настройки дополнительных протоколов можно настроить VPLS таким образом => один из PE настраиваем как primary, второй backup. | |||
Настройки делаются на '''удаленных PE'''. К neighbor добавляется backup PE: | |||
... | |||
protocols { | |||
vpls { | |||
neighbor 10.200.86.8; | |||
backup-neighbor 10.200.86.13 | |||
''revert-timer 100'' }} | |||
На удаленном PE backup роутер будет находиться в статусе: ''BK -- Backup connection''. | |||
А если в конфиг к backup-neighbor добавить еще и ''standby'', то на удаленных PE он будет болтаться в статусе: ''ST -- Standby connection''. | |||
А сам backup роутер будет устанавливать сессию с удаленным PE (State = Up) | |||
=Troubleshooting= | |||
lagavulin> show vpls connections | |||
Instance: oak | |||
Local site: '''ce4 (1)''' | |||
connection-site Type St Time last up # Up trans | |||
'''2''' rmt '''Up''' Nov 10 03:21:50 2016 1 | |||
Remote PE: 10.200.86.3, Negotiated control-word: No | |||
''Incoming label: '''262146''', Outgoing label: '''262145''' '' | |||
Local interface: '''lsi.1049088''', Status: Up, Encapsulation: VPLS | |||
Description: Intf - vpls oak local site 1 remote site 2 | |||
'''3''' rmt '''Up''' Nov 10 03:27:12 2016 1 | |||
Remote PE: 10.200.86.9, Negotiated control-word: No | |||
''Incoming label: '''262147''', Outgoing label: '''262145''' '' | |||
Local interface: '''lsi.1049089''', Status: Up, Encapsulation: VPLS | |||
Description: Intf - vpls oak local site 1 remote site 3 | |||
lagavulin> show route table oak.l2vpn.0 detail | |||
oak.l2vpn.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden) | |||
10.200.86.3:1313:2:1/96 (1 entry, 1 announced) | |||
*BGP Preference: 170/-101 | |||
Route Distinguisher: 10.200.86.3:1313 | |||
Source: 10.200.86.3 | |||
Protocol next hop: 10.200.86.3 | |||
Age: 15:30 Metric2: 1 | |||
Task: BGP_1111.10.200.86.3+50784 | |||
Communities: target:1111:1313 Layer2-info: encaps:VPLS, control flags:, mtu: 0, site preference: 100 | |||
Label-base: 262145, range: 8 | |||
Localpref: 100 | |||
Router ID: 10.200.86.3 | |||
Primary Routing Table bgp.l2vpn.0 | |||
10.200.86.7:1313:1:1/96 (1 entry, 1 announced) | |||
*L2VPN Preference: 170/-101 | |||
Next hop type: Indirect | |||
Next-hop reference count: 2 | |||
Protocol next hop: 10.200.86.7 | |||
Indirect next hop: 0 - | |||
Age: 27:51 Metric2: 1 | |||
Task: oak-l2vpn | |||
Communities: Layer2-info: encaps:VPLS, control flags:, mtu: 0, site preference: 100 | |||
Label-base: 262145, range: 8, status-vector: 0x18 | |||
10.200.86.9:1313:3:1/96 (1 entry, 1 announced) | |||
*BGP Preference: 170/-101 | |||
Route Distinguisher: 10.200.86.9:1313 | |||
Source: 10.200.86.9 | |||
Protocol next hop: 10.200.86.9 | |||
Local AS: 1111 Peer AS: 1111 | |||
Age: 10:08 Metric2: 1 | |||
Task: BGP_1111.10.200.86.9+59111 | |||
Communities: target:1111:1313 Layer2-info: encaps:VPLS, control flags:, mtu: 0, site preference: 100 | |||
Label-base: 262145, range: 8 | |||
Localpref: 100 | |||
Router ID: 10.200.86.9 | |||
Primary Routing Table bgp.l2vpn.0 | |||
- | Как посмотреть маки: | ||
lagavulin> show route forwarding-table vpn oak | |||
lagavulin> show vpls mac-table instance oak | |||
== | =Дополнительная информация= | ||
*[[L2VPN]] | |||
*[[EVPN]] | |||
*[[Реализация MPLS в ядре сети]] |
Текущая версия на 18:32, 15 июля 2021
В L2VPN используются только каналы точка-точка, и нет возможности обеспечить связность точка-многоточка. Эту проблему решает - VPLS.
Для клиента сеть будет выглядеть как бродкастовый домен. Full-mesh между точками.
Для провайдера: набор каналов точка-точка.
В vpls соединениях точка-точка принято называть pseudo-wire.
Forwarding
В обычном мире, не касаясь MPLS, когда хост посылает фрейм в свитч: свитч бродкастит и лернит.
VPLS-instance работает как свитч, который тоже бродкастит и лернит.
- На PE1 в VPLS прилетел фрейм, VPLS: запомнил какой mac, соотнес с портом: A -> int 1.
- PE1 флудит его во все интерфейсы. А pseudo-wire, воспринимаем как интерфейс. Т.о. фрейм долетел до PE2.
- PE2 заучивает mac: A -> pseudo-wire 1 (lsi interface).
- Фрейм, пришедший с локального интерфейса, должен быть разослан всем PE.
Фрейм, пришедший с локального интерфейса флудится во все локальные интерфейсы и pseudo-wire. Фрейм, который пришел от pseudo-wire (lsi), флудится только в локальные интерфейсы. Чтобы не было петли.
Когда прилетает фрейм с dest-mac уже известным, то он идет по уже заученному для него пути.
То есть с точки зрения форвардинга VPLS - один большой свитч!
Внутри VPLS происходит lookup по маку => должен быть включен tunnel-services.
Signaling
Pseudo-wire - строятся по LDP или BGP. В отличие от L2VPN, в VPLS - сигнализация по BGP имеет огромное приемущество.
BGP
BGP выполняет функцию signaling и auto-discovery. PE ищет какие PE законнектились в тот же VPLS и отправляет им NLRI.
Передается NLRI, аналогичный BGP L2VPN:
- label base
- label range
- site-id
- offset
То есть для работы VPLS в настройках BGP включаем тот же самый l2vpn signaling.
L2-circuit - это по сути метки (на выход, вход). В отличие от L2VPN каждому локальному интерфейсу назначать метку нет смысла, ведь внутри VPLS уже есть соответствие mac - interface. Поэтому в VPLS метка должна была бы назначиться целиком на RI (per instance, per site).
Но эта логика не правильная. =(
Learning mac-адресов! делает эту схему многоточкой!
Блок меток соответствует-выделяется удаленному site, чтобы когда пакет придет на РЕ понимать с какого site он пришел. Это требуется, чтобы сделать правильный learning.
В остальном весь остальной процесс signaling аналогичен L2VPN.
Site-ID в данной схеме принципиального значения не имеет. Требуется только для PE для внутренних вычислений, поэтому можно просто выбрать и назначить site-id, или задать auto-site-id.
LDP
Между PE требуется full-mesh.
В случае l2circuit указывали удаленный PE.
В VPLS, помимо всего прочего, потребуется добавить для всех удаленных PE remote-site-id ручками.
Метки
Как и у L2VPN в NLRI передается:
- label base (начальная)
- site-ID
- label range
Исходя из полученных данных PE вычисляет свою метку для связи с тем PE, кот переслал блок:
label = label base (remote) + site-ID (local) - 1 (offset) (remote)
Инкапсуляция
Ниже описанное касается CE-facing интерфейс.
Для обычного Ethernet с vlan должна стоять: vlan-vpls. Она подходит как для qinq, так и для 802.1q.
Можно ставить ее как на логический интерфейс, так и на физический.
Если это не единственный тип инкапсуляции на физическом интерфейсе, то лучше на нем сразу указать тип инкапсуляции: flexible-ethernet-services.
Vlan
В рамках vrf VPLS можно определять vlan для VPLS путем конфигурирования vlan-id | vlan-tags
- vlan-id <vlan-id> - в VPLS будет работать только один указанный vlan-id
- vlan-id none - у приходящего пакета будет сниматься vlan-id tag. У исходящего навешиваться тот vlan-id tag, который указан на исходящем из VPLS интерфейсе.
- vlan-id all - используется с logical interface, на которых настроено двойное теггирование. При этом на выходе из VPLS outer-tag будет навешиваться (push), на входе в VPLS outer-tag будет сниматься (pop). В VPLS будут бегать маки с inner vlan-id.
- vlan-tags inner <> outer <> - позволяет работать VPLS с двумя тегами.
Если в VPLS указывает vlan каким-то из способов, то на interface нельзя использовать input-vlan-map и output-vlan-map
Со стороны клиента: влан на разных site должен совпадать. Иначе связности не будет.
+/-
VPLS +:
- удобнее в трабшутинге
- в отличие от L2VPN не требует указания remote-site
- обеспечивает схему коммутации точка-многоточка
VPLS - :
- бродкаст домен => защита от петель между PE<>CE
- STP на PE<>CE
- ERP на CE
- LAG на PE <> CE
- Active/backup links on PE
- Multihomed CE with two PEs.
- может передавать только ethernet
Configuration
BGP based VPLS
Минимальный рабочий конфиг:
На всех роутерах:
- BGP-family:
[edit protocols bgp] set family l2vpn signaling
- encapsulation vlan-vpls (как для LDP signalling, так и для BGP signaling):
[edit interfaces] ge-0/0/1 { encapsulation vlan-vpls|flexible-ethernet-services [edit interfaces ge-0/0/1 unit 804] encapsulation vlan-vpls; vlan-id 804;
Lagavulin:
[edit routing-instances oak] instance-type vpls; vlan-id 804; interface ge-0/0/0.804; route-distinguisher 10.200.86.7:1313; vrf-target target:1111:1313; protocols { vpls { no-tunnel-services; site ce4 { site-identifier 1;
Дополнительные часто используемые параметры:
- connectivity-type permanent - вне зависимости от состояния интерфейсов - поднимет VPLS.
- mac-table-size 6000 packet-action drop - ограничение по макам в VPLS.
- site-range 8 - ограничение по количеству site в рамках одного VPLS.
Multihoming (BGP signaling)
Используется для подключения одного site клиента к нескольким PE.
Только один PE будет активным и выбран в качестве designated forwarder, т.е. передавать трафик. Такой PE будет устанавливать с удаленным PE pseudo-wire.
Если что-то произойдет с активным PE, второй multihomed PE установит pseudo-wire до удаленного PE.
Удаленные PE, чтобы определить куда им все-таки нужно передавать трафик, используют процесс VPLS path-selection:
- Если advertisement bit = 0, то эта NLRI отбрасывается.
- Далее выбор идет по наибольшему site-preference приоритету.
- Далее по меньшему RID.
- Далее по меньшему ip адресу BGP Peer.
Удаленный PE выбрал активный multihomed PE, назначив его designated VE (VPLS edge). И стал использовать только 1 NLRI. До такого designated VE удаленный PE и построит pseudo-wire.
Если требуется использовать multihoming для VPLS, то нужно учесть, что это будет работать только с BGP сигнализацией. Не LDP.
Настраиваем:
- Одинаковый site-id для multi homed PE.
- Разный RD для multi homed PE.
- Указать интерфейсы в VPLS.
- Включить multihoming.
- Если на сети используется схема, где один и тот же site растянут на 2 PE, оба PE имеют линки в сторону одного CE, то можно определять активный PE с помощью site-preference backup|primary. Либо руками задавать site-preference. Backup-PE поднимет connections с удаленными PE только в случае отвала primary PE того же site.
- [В случае, если на одной PE несколько линков к CE]. Задаем active-interface. Если указываем any, то будет выбран один из перечисленных ниже интерфейсов. Если указываем primary, то активным сразу будет выбран явно заданный интерфейс. А остальные интерфейсы в порядке очереди будут использоваться при падении primary.
[edit routing-instances] + oak { + instance-type vpls; + vlan-id 200; + interface ge-0/0/0.200; + interface ge-0/0/1.200; + route-distinguisher 10.200.86.1:100; + vrf-target target:1111:100; + protocols { + vpls { + no-tunnel-services; + site blair + site-identifier 1; + multi-homing; + site-preference primary'; + active-interface primary ge-0/0/0.200; + interface ge-0/0/1.200;}}}}
LDP based VPLS
Также обязательным:
- instance-type vpls
- lo должен быть добавлен в ldp
- !!rt, rd - не обязательны!!
Есть несколько отличий:
- Вводится vpls-id. Это просто идентификатор vpls. Аналогично virtual-circuit-id для l2vpn LDP signaling. То есть просто любое уникальное число.
- Вручную указываются соседи - удаленные PE.
oban> show configuration routing-instances fox instance-type vpls; interface ge-0/0/2.10; vlan-id {all | vlan-id | none} protocols { vpls { encapsulation-type ethernet; no-tunnel-services; vpls-id 9876; neighbor 10.200.86.8; }}
Дополнительные часто используемые параметры:
- connectivity-type permanent - вне зависимости от состояния интерфейсов - поднимет VPLS.
- mac-table-size 6000 packet-action drop- ограничение по макам в VPLS.
- site-range 8 - ограничение по количеству site в рамках одного VPLS.
Multihoming (LDP signaling)
Когда два PE, смотрят в сторону одного и того же CE, без настройки дополнительных протоколов можно настроить VPLS таким образом => один из PE настраиваем как primary, второй backup.
Настройки делаются на удаленных PE. К neighbor добавляется backup PE:
... protocols { vpls { neighbor 10.200.86.8; backup-neighbor 10.200.86.13 revert-timer 100 }}
На удаленном PE backup роутер будет находиться в статусе: BK -- Backup connection.
А если в конфиг к backup-neighbor добавить еще и standby, то на удаленных PE он будет болтаться в статусе: ST -- Standby connection. А сам backup роутер будет устанавливать сессию с удаленным PE (State = Up)
Troubleshooting
lagavulin> show vpls connections Instance: oak Local site: ce4 (1) connection-site Type St Time last up # Up trans 2 rmt Up Nov 10 03:21:50 2016 1 Remote PE: 10.200.86.3, Negotiated control-word: No Incoming label: 262146, Outgoing label: 262145 Local interface: lsi.1049088, Status: Up, Encapsulation: VPLS Description: Intf - vpls oak local site 1 remote site 2 3 rmt Up Nov 10 03:27:12 2016 1 Remote PE: 10.200.86.9, Negotiated control-word: No Incoming label: 262147, Outgoing label: 262145 Local interface: lsi.1049089, Status: Up, Encapsulation: VPLS Description: Intf - vpls oak local site 1 remote site 3
lagavulin> show route table oak.l2vpn.0 detail oak.l2vpn.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden) 10.200.86.3:1313:2:1/96 (1 entry, 1 announced) *BGP Preference: 170/-101 Route Distinguisher: 10.200.86.3:1313 Source: 10.200.86.3 Protocol next hop: 10.200.86.3 Age: 15:30 Metric2: 1 Task: BGP_1111.10.200.86.3+50784 Communities: target:1111:1313 Layer2-info: encaps:VPLS, control flags:, mtu: 0, site preference: 100 Label-base: 262145, range: 8 Localpref: 100 Router ID: 10.200.86.3 Primary Routing Table bgp.l2vpn.0 10.200.86.7:1313:1:1/96 (1 entry, 1 announced) *L2VPN Preference: 170/-101 Next hop type: Indirect Next-hop reference count: 2 Protocol next hop: 10.200.86.7 Indirect next hop: 0 - Age: 27:51 Metric2: 1 Task: oak-l2vpn Communities: Layer2-info: encaps:VPLS, control flags:, mtu: 0, site preference: 100 Label-base: 262145, range: 8, status-vector: 0x18 10.200.86.9:1313:3:1/96 (1 entry, 1 announced) *BGP Preference: 170/-101 Route Distinguisher: 10.200.86.9:1313 Source: 10.200.86.9 Protocol next hop: 10.200.86.9 Local AS: 1111 Peer AS: 1111 Age: 10:08 Metric2: 1 Task: BGP_1111.10.200.86.9+59111 Communities: target:1111:1313 Layer2-info: encaps:VPLS, control flags:, mtu: 0, site preference: 100 Label-base: 262145, range: 8 Localpref: 100 Router ID: 10.200.86.9 Primary Routing Table bgp.l2vpn.0
Как посмотреть маки:
lagavulin> show route forwarding-table vpn oak lagavulin> show vpls mac-table instance oak