VPLS: различия между версиями
м |
|||
| Строка 69: | Строка 69: | ||
:*Multihomed CE with two PEs. | :*Multihomed CE with two PEs. | ||
*может передавать только ''ethernet'' | *может передавать только ''ethernet'' | ||
=VPLS Multihoming= | =VPLS Multihoming (BGP signaling)= | ||
Используется для подключения одного site клиента к нескольким PE. | |||
Только один PE будет активным и выбран в качестве designated forwarder, т.е. передавать трафик. Такой PE будет устанавливать с удаленным PE pseudo-wire. | |||
Если что-то произойдет с активным PE, второй multihomed PE установит pseudo-wire до удаленного PE. | |||
Для multi homed PE нужно задавать одинаковый site-id, но конечно же отличный от site-id удаленного роутера. | |||
RD и прочие другие параметры у multihomed PE должны быть разными. | |||
Удаленные PE, чтобы определить куда им все-таки нужно передавать трафик, используют процесс ''VPLS path-selection'': на удаленном PE будет использоваться только 1 NLRI. На основании которого, кстати, будет построен и pseude-wire. | |||
{{note|text=Если требуется использовать multihoming для VPLS, то нужно учесть, что это будет работать только с BGP сигнализацией. '''Не LDP'''.}} | |||
==Config== | |||
#Одинаковый site-id для multi homed PE. | |||
#Разный RD для multi homed PE. | |||
#Указать интерфейсы в VPLS. Причем, обязательно задаем active-interface. Если указываем ''any'', то будет выбран один из перечисленных ниже интерфейсов. Если указываем ''primary'', то активным сразу будет выбран явно заданный интерфейс. А остальные интерфейсы в порядке очереди будут использоваться при падении primary. | |||
#Включить multihoming. | |||
[edit routing-instances] | |||
+ oak { | |||
+ instance-type vpls; | |||
+ interface ge-0/0/0.200; | |||
+ interface ge-0/0/0.210; | |||
+ interface ge-0/0/0.220; | |||
+ route-distinguisher 10.200.86.1:100; | |||
+ vrf-target target:1111:100; | |||
+ protocols { | |||
+ vpls { | |||
+ no-tunnel-services; | |||
+ site blair | |||
+ site-identifier 1; | |||
+ '''multi-homing'''; | |||
+ '''active-interface primary''' ge-0/0/0.200; | |||
+ interface ge-0/0/0.210; | |||
+ interface ge-0/0/0.220;}}}} | |||
=Configuration= | =Configuration= | ||
Версия 14:31, 3 марта 2017
В 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.
Licruit - метки (на выход, вход). В отличие от L2VPN каждому локальному интерфейсу назначать метку нет смысла, ведь внутри VPLS уже есть соответствие mac - interface. Поэтому в VPLS метка должна была бы назначиться целиком на RI (per instance, per site).
Но эта логика не правильная. =(
Learnig mac-адресов! делает эту схему многоточкой! Блок меток соответствует удаленному site, чтобы когда пакет придет на РЕ понимать с какого site он пришел. Это требуется, чтобы сделать правильный learning.
В остальном весь остальной процесс signaling аналогичен L2VPN.
Site-ID в данной схеме принципиального значения не имеет. Требуется только для PE для внутренних вычислений, поэтому можно просто выбрать и назначить site-id, или задать auto-site-id.
LDP
Между PE требуется full-mesh.
В случае l2circuit указывали удаленный PE. В VPLS, помимо всего прочего, потребуется добавить всех remote-site-id.
+/-
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
VPLS Multihoming (BGP signaling)
Используется для подключения одного site клиента к нескольким PE.
Только один PE будет активным и выбран в качестве designated forwarder, т.е. передавать трафик. Такой PE будет устанавливать с удаленным PE pseudo-wire.
Если что-то произойдет с активным PE, второй multihomed PE установит pseudo-wire до удаленного PE.
Для multi homed PE нужно задавать одинаковый site-id, но конечно же отличный от site-id удаленного роутера.
RD и прочие другие параметры у multihomed PE должны быть разными.
Удаленные PE, чтобы определить куда им все-таки нужно передавать трафик, используют процесс VPLS path-selection: на удаленном PE будет использоваться только 1 NLRI. На основании которого, кстати, будет построен и pseude-wire.
Если требуется использовать multihoming для VPLS, то нужно учесть, что это будет работать только с BGP сигнализацией. Не LDP.
Config
- Одинаковый site-id для multi homed PE.
- Разный RD для multi homed PE.
- Указать интерфейсы в VPLS. Причем, обязательно задаем active-interface. Если указываем any, то будет выбран один из перечисленных ниже интерфейсов. Если указываем primary, то активным сразу будет выбран явно заданный интерфейс. А остальные интерфейсы в порядке очереди будут использоваться при падении primary.
- Включить multihoming.
[edit routing-instances]
+ oak {
+ instance-type vpls;
+ interface ge-0/0/0.200;
+ interface ge-0/0/0.210;
+ interface ge-0/0/0.220;
+ route-distinguisher 10.200.86.1:100;
+ vrf-target target:1111:100;
+ protocols {
+ vpls {
+ no-tunnel-services;
+ site blair
+ site-identifier 1;
+ multi-homing;
+ active-interface primary ge-0/0/0.200;
+ interface ge-0/0/0.210;
+ interface ge-0/0/0.220;}}}}
Configuration
BGP based VPLS
Lagavulin:
[edit protocols bgp]
set family l2vpn signaling
[edit interfaces]
ge-0/0/1 {
vlan-tagging;
encapsulation vlan-vpls;
[edit interfaces ge-0/0/1 unit 804]
encapsulation vlan-vpls;
vlan-id 804;
family vpls;
[edit routing-instances oak]
instance-type vpls;
interface ge-0/0/0.804;
route-distinguisher 10.200.86.7:1313;
vrf-target target:1111:1313;
protocols {
vpls {
site-range 5;
no-tunnel-services;
site ce4 {
site-identifier 1;
interface ge-0/0/0.804;
Tormore
[edit routing-instances oak]
instance-type vpls;
interface ge-0/0/1.801;
route-distinguisher 10.200.86.9:100;
vrf-target target:300:200;
protocols {
vpls {
site-range 5;
no-tunnel-services;
site ce9 {
site-identifier 3;
interface ge-0/0/1.804
Oban
[edit routing-instances oak]
instance-type vpls;
interface ge-0/0/0.804;
route-distinguisher 10.200.86.3:1313;
vrf-target terget:1111:1313;
protocols {
vpls {
site-range 5;
no-tunnel-services;
site ce8 {
site-identifier 2;
interface ge-0/0/0.804;
LDP based VPLS
oban> show configuration routing-instances fox
instance-type vpls;
interface ge-0/0/2.10;
route-distinguisher 10.200.86.3:9876;
vrf-target target:1111:9876;
protocols {
vpls {
no-tunnel-services;
vpls-id 9876;
neighbor 10.200.86.8; }}
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