VPLS، سرویس VPN لایه 2ای برای ایجاد ارتباط Ethernet به صورت MultiPoint روی بستر MPLS و یا IP است. با استفاده از سرویس VPLS قادر خواهید بود ارتباط LAN های راه دور سازمان ها را از طریق بستر Provider به صورت Multipoint و به صورت Transparent برقرار نمائید. VPLS قادر است ارتباط Ethernet بین سایت ها را با در نظر گرفتن VLAN و یا بدون در نظر گرفتن VLAN برقرار کند. همچنین قادر است پروتکل های Signaling مرتبط با Ethernet را (مانند CDP، STP و VTP) به صورت Transparent بین سایت ها جابجا نماید به طوری که سازمان ارتباط Ethernet کاملا Transparent را احساس نماید.
فرض کنید در سناریو زیر LDP در کل شبکه اجرا شده است و تمام مسیر MPLS میباشد. میخواهیم بین روترهای n1، n7 و n14 یک تونل VPLS برقرار کنیم.
برای ساخت یک سناریو VPLS باید به دو نکته توجه داشت:
حال به Config روترها میپردازیم:
n1
ابتدا اینترفیس ge3 را در یک دامنه bridge اضافه میکنیم
n1(config)# interface ge3
n1(config-if)# bridge-group 200
n1(config-if)# no shutdown
حال دو اینترفیس mpls-tunnel( یکی برای اتصال به n7 و دیگری برای اتصال به n14) میسازیم و به همان دامنه bridge میافزاییم:
n1(config)# interface mpls-tunnel0
n1(config-if)# bridge-group 200 split-horizon group 100
n1(config-if)# no shutdown
n1(config)# interface mpls-tunnel1
n1(config-if)# bridge-group 200 split-horizon group 100
n1(config-if)# no shutdown
توجه داشته باشید برای جلوگیری از ایجاد loop در bridge، این دو اینترفیس باید در یک split-horizon group قرار داشته باشند.
n1(config)# mpls ldp
n1(config-ldp)# router-id 222.1.1.1
برای ساخت VPLS لازم است که ldp lsr-id روترهای هدف( در این سناریو n7 و n14) را داشته باشیم. حال به ساختن VPLS میپردازیم:
n1(config)# l2vpn VPLS_TUNNEL type vpls
n1(config-l2vpn)# member pseudowire mpls-tunnel0
n1(config-l2vpn-pw)# neighbor lsr-id 222.7.7.7
n1(config-l2vpn-pw)# pw-id 170
n1(config-l2vpn)# member pseudowire mpls-tunnel1
n1(config-l2vpn-pw)# neighbor lsr-id 222.14.14.14
n1(config-l2vpn-pw)# pw-id 1140
هر تونل با pw-id آن شناخته میشود و در دو سر تونل باید این مقادیر یکسان باشد.
به شیوه مشابه روترهای n7 و n14 را نیز تنظیم مینماییم:
n7
n7(config)# interface ge2
n7(config-if)# bridge-group 200
n7(config-if)# no shutdown
n7(config)# interface mpls-tunnel0
n7(config-if)# bridge-group 200 split-horizon group 100
n7(config-if)# no shutdown
n7(config)# interface mpls-tunnel1
n7(config-if)# bridge-group 200 split-horizon group 100
n7(config-if)# no shutdown
n7(config)# l2vpn VPLS_TUNNEL type vpls
n7(config-l2vpn)# member pseudowire mpls-tunnel0
n7(config-l2vpn-pw)# neighbor lsr-id 222.1.1.1
n7(config-l2vpn-pw)# pw-id 170
n7(config-l2vpn)# member pseudowire mpls-tunnel1
n7(config-l2vpn-pw)# neighbor lsr-id 222.14.14.14
n7(config-l2vpn-pw)# pw-id 7140
n14
n14(config)# interface ge1
n14(config-if)# bridge-group 200
n14(config-if)# no shutdown
n14(config)# interface mpls-tunnel0
n14(config-if)# bridge-group 200 split-horizon group 100
n14(config-if)# no shutdown
n14(config)# interface mpls-tunnel1
n14(config-if)# bridge-group 200 split-horizon group 100
n14(config-if)# no shutdown
n14(config)# l2vpn VPLS_TUNNEL type vpls
n14(config-l2vpn)# member pseudowire mpls-tunnel0
n14(config-l2vpn-pw)# neighbor lsr-id 222.1.1.1
n14(config-l2vpn-pw)# pw-id 1140
n14(config-l2vpn)# member pseudowire mpls-tunnel1
n14(config-l2vpn-pw)# neighbor lsr-id 222.14.14.14
n14(config-l2vpn-pw)# pw-id 7140
با زدن دستور show mpls pseudowires
میتوان از وضعیت تونلهای خود با خبر شد.
n1# sh mpls pseudowires
Interface Neighbor Labels Protocol Status
mpls-tunnel0 222.7.7.7 16/16 ldp UP
mpls-tunnel1 222.14.14.14 17/16 ldp UP
بخشی از تنظیمات اعمال شده در n1 را مشاهده می کنید :
!
interface loopback0
no shutdown
ip address 222.1.1.1/32
!
interface mpls-tunnel0
bridge-group 200 split-horizon group 100
no shutdown
!
interface mpls-tunnel1
bridge-group 200 split-horizon group 100
no shutdown
!
interface ge0
mpls ip
no shutdown
ip address 200.1.2.1/24
ip ospf hello-interval 3
ip ospf dead-interval 10
ip ospf priority 254
!
interface ge1
mpls ip
no shutdown
ip address 200.1.6.1/24
ip ospf hello-interval 3
ip ospf dead-interval 10
!
interface ge2
mpls ip
no shutdown
ip address 200.1.5.1/24
ip ospf hello-interval 3
ip ospf dead-interval 10
!
interface ge3
bridge-group 200 split-horizon group 0
no shutdown
!
interface ge4
no shutdown
ip address 1.2.1.1/24
!
router ospf
ospf router-id 222.1.1.1
redistribute connected
redistribute static
passive-interface ge3
network 1.2.1.0/24 area 0
network 200.1.2.0/24 area 0
network 200.1.5.0/24 area 0
network 200.1.6.0/24 area 0
network 222.1.1.1/32 area 0
!
mpls ldp
router-id 222.1.1.1
dual-stack transport-connection prefer ipv4
dual-stack cisco-interop
!
address-family ipv4
discovery transport-address 222.1.1.1
label local advertise explicit-null
!
interface ge0
!
interface ge1
!
interface ge2
!
exit-address-family
!
!
l2vpn VPLS_TUNNEL type vpls
!
member pseudowire mpls-tunnel0
neighbor lsr-id 222.7.7.7
pw-id 100
!
member pseudowire mpls-tunnel1
neighbor lsr-id 222.14.14.14
pw-id 200
!
!
end
بعد از برقراری تونل ها باید ارتباط n8 , n13, n15 از طریق تونل vpls برقرار باشد .
برای حذف تونل vpls دستور زیر را وارد کنید. پس از آن اگر مجددا لیست تونل های vpls را مشاهده کنید مشخص است که تونل ها حذف شده اند .
n1(config)# no l2vpn VPLS_TUNNEL type vpls
---------
n1# sh mpls pseudowires
Interface Neighbor Labels Protocol Status
با دستور زیر می توانید Log های مربوط به vpls را فعال کنید:
soodar1# debug vpls event