(1 Vote)

ติดตั้ง MPLS VPN บนเราเตอร์ Cisco

ติดตั้ง MPLS VPN บนเราเตอร์ Cisco

               เมื่อใดที่เทคโนโลยีของ MPLS VPN ถูกนำมาใช้กับโครงข่าย จะทำให้ประสิทธิภาพการทำงานเพิ่มมากขึ้น มีความน่าเชื่อถือมากขึ้น นอกจากนี้ ยังช่วยให้การแบ่งใช้งานทรัพยากรข้อมูลสามารถเป็นไปได้ มากยิ่งขึ้นอย่างเห็นได้ชัดเจน โดย MPLS VPN จะช่วยให้ช่องทางการเชื่อมต่อหนึ่งช่องทางภายใต้ MPLS VPN สามารถถูกนำมาใช้งานให้กับ Customer หรือลูกค้าทีเดียวหลายๆคน ผิดกับ VPN เดิมกำหนดให้มีการเชื่อมต่อแบบ ระหว่างจุด หรือ Point To Point เท่านั้น และหากต้องการติดต่อกับลูกค้าที่เดียว 2 รายพร้อมกัน ไม่สามารถทำได้ ท่านจะต้องตัดการเชื่อมต่อที่กำลังดำเนินอยู่ เพื่อให้สามารถเชื่อมต่อสื่อสารกับคนอื่นๆ

 

MPLS VPN จะช่วยให้การเชื่อมต่อ VPN จากเดิมเป็นไปในลักษณะการเชื่อมต่อระหว่างจุด และมีข้อจำกัดมากมาย ให้สามารถมีการเชื่อมต่อในรูปแบบของ Fully Mesh ได้ โดยการเชื่อมต่อเช่นนี้ จะช่วยให้ การเชื่อมต่อ VPN มีอิสระมากขึ้น กล่าวคือ ช่องทางการเชื่อมต่อหนึ่งช่องทาง จะสามารถเชื่อมต่อกับ ช่องทางอื่นๆได้พร้อมกัน ลักษณะนี้ จะเห็นได้ว่า ทุกๆช่องทางที่ใช้ VPN จะสามารถสื่อสารกันได้ในเวลาเดียวกัน ซึ่งสามารถทำได้โดยการกำหนดค่า VRF ที่ไม่ซ้ำกันให้กับลูกค้าหรือผู้ใช้งานแต่ละท่าน

 

 

ภาพที่ 1 แสดงโครงสร้าง MPLS VPN

 

หากท่านยังนึกภาพไม่ออกว่ามีประโยชน์อย่างไร? ประการแรกท่านลองนึกภาพดูว่า หากมีลูกค้า 4 ราย หรือมีสำนักงาน 4 สาขาที่ต้องเชื่อมต่อกัน พร้อมกัน โดยทาง VPN เมื่อเป็นเช่นนี้ หมายความว่า จะต้องมีช่องทาง VPN ถึง 4 ช่องทางๆกายภาพ ต่อผู้ใช้งานหนึ่งราย เพื่อการเชื่อมต่อพร้อมกัน แต่หากท่านใช้ MPLS VPN ผู้ใช้งานทุกท่านจะเหลือเพียงหนึ่งช่องทางๆกายภาพเท่านั้น

อย่างไรก็ดี เทคโนโลยีหลัก 4 ประการที่ทำให้ MPLS VPN สามารถเป็นไปได้ในทางปฏิบัติ ซึ่งได้แก่ Multiprotocol BGP  Route Filtering ที่ทำงานบนพื้นฐานของ “Route Target” Extended BGP Community Attribute รวมทั้งการทำงานของ MPLS ที่ทำหน้าที่ส่งผ่าน Packet ไปข้างหน้า ผ่านโครงข่ายไปถึงปลายทางในที่สุด

ภาพที่ 2 ตัวอย่างการใช้งาน MPLS VPN

 

Multiprotocol BGP เป็นโปรโตคอลที่ทำงานระหว่าง Router ที่อยู่บริเวณด้านขอบริม ของโครงข่าย ซึ่งเป็น Router ของผู้ให้บริการ โดยจะทำหน้าที่แลกเปลี่ยนข้อมูลข่าวสารเกี่ยวกับ Address ของ VPN

Multiprotocol BGP เป็นส่วนต่อเติมของระบบ BGP ที่มีอยู่แล้ว มีความสามารถที่จะนำพาข้อมูลข่าวสารเกี่ยวกับ Address ของ VPN ภายใต้ IP Version 4 ได้ โดยค่า VPN Address นี้ มีขนาด 12 ไบต์ ได้รวมเอา IP Address และค่าที่เรียกว่า Route Distinguisher (RD) ไว้เป็นที่เรียบร้อย ซึ่งใน 8 ไบต์แรกเป็นค่า RD และอีก 4 ไบต์หลังเป็นค่า IP Address ภายใต้ Version 4

ส่วนค่า RD เป็นค่า Address ขนาด 64 บิต ประกอบด้วยส่วนที่เป็นช่องเก็บข้อมูลเกี่ยวกับ ชนิดของข้อมูลและ อีก 6 ไบต์เป็นค่าของข้อมูลนั้น ค่า RD จะถูกติดตั้งไว้ที่ ส่วนหัวของ IP Address ของลูกค้า ทำให้ค่าที่รวมตัวนี้กลายเป็นค่าที่เรียกว่า VPN-IPv4 ที่ไม่ซ้ำค่ากัน เมื่อวิ่งอยู่ภายในโครงข่าย

VRF หรือ VPN Routing/Forwarding Instances เป็นค่าที่ถูกติดตั้งอยู่บน Router ของ PE ทุกตัว โดยแต่ละช่องทาง VPN จะมีค่า VRF ที่แตกต่างกัน ซึ่งหมายถึงลูกค้าที่เชื่อมต่อกับ Router PE จะต้องมีค่า VRF อยู่หนึ่งค่าเสมอ ดังนั้นลูกค้าที่ใช้ VPN จะต้องใช้ช่องทางที่กำหนดด้วยค่า VRF หรือชุดของช่องทางที่มีค่า VRF ที่แตกต่างกัน เท่านั้น

แต่ละช่องทาง VRF จะประกอบด้วยตารางเลือกเส้นทางซึ่งภายในจะต้องประกอบด้วย ชุดของ Interface ที่ถูกใช้เพื่อส่งผ่าน Packet ไปข้างหน้า (Forwarding) รวมทั้งกฎกติกาการทำงาน และโปรโตคอลเลือกเส้นทางที่ลูกค้าใช้งาน

ภาพที่ 3 โครงสร้างและส่วนระกอบการทำงานของ MPLS VPN

 

ภาพที่ 4 แสดงลำดับขั้นตอนการทำงานของ MPLS VPN

 

ตัวอย่างการจัด Configure MPLS VPN

               ต่อไปนี้เป็นตัวอย่างการจัด Configure MPLS VPN ที่สามารถทดลองได้จริงบนเราเตอร์ของ Cisco จากตัวอย่างต่อไปนี้เป็นการเชื่อมต่อระหว่าง Router A กับ Router B ซึ่งเป็น Router Client ซึ่งเชื่อมต่อกันผ่านโครงข่าย MPLS โดยการเชื่อมต่อระหว่าง Router ของ Client กับ Router ของผู้ให้บริการเชื่อมต่อโครงข่าย หรือ PE (ในที่นี้คือ Router B กับ Router C) จะใช้ Static Routing สื่อสารระหว่างกัน

ภาพที่ 5 ตัวอย่างการเชื่อมต่อ MPLS VPN

 

RouterA

!

version 12.1

service timestamps debug uptime

service timestamps log uptime

no service password−encryption

!

hostname RouterA

ip subnet−zero

no ip finger

!

!

interface Ethernet0/0

ip address 10.1.1.1 255.255.255.0

no keepalive

!

interface Serial0/0

ip address 193.1.1.1 255.255.255.252

no ip mroute−cache

no fair−queue

!

ip classless

ip route 0.0.0.0 0.0.0.0 193.1.1.2

no ip http server

!

line con 0

transport input none

line aux 0

line vty 0 4

login

!

end

RouterB

!

version 12.1

service timestamps debug uptime

service timestamps log uptime

no service password−encryption

!

hostname RouterB

!

ip subnet−zero

no ip finger

!

ip cef

!

interface Serial0/0

ip address 193.1.1.2 255.255.255.252

tag−switching ip

clockrate 1000000

!

interface Serial0/1

ip address 194.1.1.1 255.255.255.252

tag−switching ip

clockrate 1000000

!

router ospf 64

log−adjacency−changes

network 194.1.1.0 0.0.0.255 area 0

!

ip classless

ip http server

!

line con 0

transport input none

line aux 0

line vty 0 4

login

!

end

RouterC

version 12.1

service timestamps debug uptime

service timestamps log uptime

no service password−encryption

!

hostname RouterC

!

!

ip subnet−zero

no ip finger

!

ip cef

!

!

interface Serial0/0

ip address 194.1.1.2 255.255.255.252

tag−switching ip

!

interface Serial0/1

ip address 195.1.1.1 255.255.255.252

tag−switching ip

clockrate 1000000

!

router ospf 64

log−adjacency−changes

network 194.1.1.0 0.0.0.255 area 0

!

ip classless

ip http server

!

line con 0

transport input none

line aux 0

line vty 0 4

login

!

end

RouterD

!

version 12.1

service timestamps debug uptime

service timestamps log uptime

no service password−encryption

!

hostname RouterD

!

ip subnet−zero

no ip finger

!

!

interface Ethernet0/0

ip address 10.1.2.1 255.255.255.0

no keepalive

!

interface Serial0/0

ip address 195.1.1.2 255.255.255.252

!

ip classless

ip route 0.0.0.0 0.0.0.0 195.1.1.1

ip http server

!

line con 0

transport input none

line aux 0

line vty 0 4

login

!

End

วิธีการ Monitor ดูและทดสอบการทำงานของ MPLS

               PE Router (RouterB และ RouterC) ใช้ MP-iBGP เพื่อดำเนินการจัดส่ง Route ให้แก่กันและกัน เมื่อ PE Router ประกาศ VPN Route ไปที่ Router PE ตัวอื่น มันสามารถทำได้โดยการทำให้ตัวมันเองเป็น BGP Next Hop Address และ Address นี้จะต้องเป็น Loopback Address ขนาด 32 บิตบน Router และ Address ขนาด 32 บิตนี้ ยังถูกใช้เพื่อประกาศเข้าไปใน Routing Table ของ Backbone (ซึ่งเป็น P Router) การทำเช่นนี้จะทำให้ MPLS สามารถกำหนด Label ขึ้นมา ที่สอดคล้องกับ Route ของ PE Router แต่ละตัว ต่อไปนี้เป็นคำสั่งที่ใช้เพื่อจัดสร้าง 32 Bit Loopback Address บน RouterB และ RouterC ซึ่งเป็น PE Router และมีการประกาศ Address นี้โดยทาง OSPF

RouterB(config)#interface loopback 0

RouterB(config−if)#ip address 1.1.1.1 255.255.255.255

RouterB(config−if)#exit

RouterB(config)#router ospf 64

RouterB(config−router)#network 1.1.1.1 0.0.0.0 area 0

RouterC(config)#interface loopback 0

RouterC(config−if)#ip address 2.2.2.2 255.255.255.255

RouterC(config−if)#exit

RouterC(config)#router ospf 64

RouterC(config−router)#network 2.2.2.2 0.0.0.0 area 0

               MPLS/VPN ใช้ MP-iBGP เพื่อที่จะส่งกระจาย VPN Route จาก Router PE ตัวหนึ่งไปที่ Router PE อีกตัวหนึ่ง โดย Default เมื่อมีการจัดตั้ง BGP Session บน Cisco Router มันจะถูกกระตุ้นให้มีการนำพาเอา IPV4 Addresses โดย BGP

               คำสั่ง no bgp default ipv4-unicast จะทำให้มีการ disable การทำงานของ BGP Session ที่เกี่ยวกับการนำพา IPV4 Address ออกไป ต่อไปนี้เป็นคำสั่งที่ใช้ Enable การทำงานของ BGP Process และ Disable พฤติกรรมการทำงานของ default IPV4 Unicast บน Router C และ Router B

RouterB(config)#router bgp 1

RouterB(config−router)#no bgp default ipv4−unicast

RouterC(config)#router bgp 1

RouterC(config−router)#no bgp default ipv4−unicast

               มาถึงตรงนี้ เราจะต้องกำหนด BGP Neighbor ภายใต้การทำงานของ BGP บน Router โดย Neighbor Address ในที่นี้เป็น 32 บิต Loopback Address ของ Router ที่อยู่ไกลออกไป (Remote Router) ส่วน Update Source (เป็น Address ที่ BGP ใช้เพื่อประกาศเป็น Next Hop) ควรเป็น Loopback Address ของ Local Router

               ขั้นตอนสุดท้ายได้แก่ การกระตุ้น Neighbor (Router เพื่อนบ้าน) คำสั่งต่อไปนี้ ถูกใช้เพื่อติดตั้ง IBGP Session ระหว่าง RouterB และ RouterC

RouterB(config)#router bgp 1

RouterB(config−router)#neighbor 2.2.2.2 remote−as 1

RouterB(config−router)#neighbor 2.2.2.2 update−source loopback 0

RouterB(config−router)#neighbor 2.2.2.2 activate

RouterC(config)#router bgp 1

RouterC(config−router)#neighbor 1.1.1.1 remote−as 1

RouterC(config−router)#neighbor 1.1.1.1 update−source loopback 0

RouterC(config−router)#neighbor 1.1.1.1 activate

มาถึงตรงนี้ BGP Session ต้องการถูกกระตุ้นให้มีการนำพา VPN IPV4 Prefixes ซึ่งต้องใช้ Address Family และ VPN-IPV4 Address Family จะต้องถูกจัด Configure ภายใต้ BGP Process และแล้ว จะมีการกระตุ้น Neighbor เกิดขึ้น ต่อไปนี้เป็นคำสั่งเพื่อจัด Configure BGP Neighbor Session บน RouterB และ RouterC เพื่อที่จะนำพา VPN-IPV4 Prefixes

RouterB(config)#router bgp 1

RouterB(config−router)#address−family vpnv4

RouterB(config−router−af)#neighbor 2.2.2.2 activate

RouterC(config)#router bgp 1

RouterC(config−router)#address−family vpnv4

RouterC(config−router−af)#neighbor 1.1.1.1 activate

เพื่อที่จะ Verify ดูว่า BGP Session ถูกจัดตั้งขึ้น และสามารถนำพา VPN-IPv4 Prefixes บน RouterC ในการนี้ ท่านจะต้องใช้คำสั่ง show ip bgp neighbors ต่อไปนี้เป็น Output บน RouterC จะเห็นว่าสถานะของ BGP ถูกจัดตั้งขึ้น และ Neighbor ถูกจัด Configure เพื่อรองรับ VPN-IPv4

RouterC#show ip bgp neighbors

BGP neighbor is 1.1.1.1, remote AS 1, internal link

BGP version 4, remote router ID 1.1.1.1

BGP state = Established, up for 00:03:03

Last read 00:00:03, hold time is 180, keepalive interval is 60 seconds

Neighbor capabilities:

Route refresh: advertised and received(new)

Address family IPv4 Unicast: advertised and received

Address family VPNv4 Unicast: advertised and received

Received 22 messages, 0 notifications, 0 in queue

Sent 22 messages, 0 notifications, 0 in queue

Route refresh request: received 0, sent 0

Default minimum time between advertisement runs is 5 seconds

ต่อไป จะต้องมีการจัด Configure VRF instance บน Router B และ Router C สำหรับ VPNA และภายใต้ VRF จะต้องมีการติดตั้ง Route Distinguisher (RD)

เส้นทางจาก VRF นั้นจะถูก Tagged ด้วย RD จุดประสงค์ของการสร้าง RD เพื่อแยกความแตกต่างระหว่าง IPV4 Address Prefixes โดยจะทำให้ IP Address เดียวกันสามารถวิ่งผ่าน VPN หลายๆชุด และ PE Router สามารถถูก Configure เพื่อเกี่ยวข้องกับเส้นทางทั้งหมดที่แตกต่างกัน ให้สามารถเดินทางไปที่ CE เดียวกัน ด้วย RD เดียวกัน หรืออาจถูก Configure เพื่อให้เกี่ยวข้องกับ เส้นทางหลายๆเส้นสำหรับ RD ที่แตกต่างกันได้ สำหรับใน Lab นี้ เส้นทางทั้งหมดใน VPNA จะมีค่า RD เป็น 1:100 ต่อไปนี้เป็นคำสั่งที่ใช้จัด Configure vrf VPNA โดยใช้ RD 1:100 บน Router ทั้งสองตัว   

RouterB(config)#ip vrf VPNA

RouterB(config−vrf)#rd 1:100

RouterC(config)#ip vrf VPNA

RouterC(config−vrf)#rd 1:100

จัด Configure import และ export Policy บน VRF แต่ละตัว โดยที่ Policy นี้ ถูกใช้เพื่อประกาศเส้นทางออกไปจาก VRF (Export ) และนำเอาเส้นทางเข้ามาใน VRF (Import) ต่อไปนี้เป็นคำสั่งการจัด Configure VPNA บน Router C และ Router B เพื่อที่จะ Export เส้นทางทั้งหมดพร้อมด้วย Extended Community Route Target ของ 1:100 และเพื่อที่จะ Import เส้นทางทั้งหมดเข้าไปใน VRF ที่มี Route Target 1:

RouterB(config)#ip vrf VPNA

RouterB(config−vrf)#route−target both 1:100

RouterC(config)#ip vrf VPNA

RouterC(config−vrf)#route−target both 1:100

หลังจากที่มีการจัด Configure VRF บน Router PE เป็นที่เรียบร้อยแล้ว ท่านจะต้องบอกให้ Router รู้ว่า Interface ใดของ Router เกี่ยวข้องกับ VRF ใด วึ่งสามารถทำได้โดยการใช้คำสั่ง ip vrf forwarding ต่อไปนี้เป็นคำสั่ง ที่เกี่ยวข้องกับ Interface s0/1 บน Router B เชื่อมต่อกับ Router A และ Interface S0/1 ของ Router C เชื่อมต่อกับ Router D ด้วย VRF VPNA

RouterB(config)#interface s0/1

RouterB(config−if)#ip vrf forwarding VPNA

RouterC(config)#interface s0/1

RouterC(config−if)#ip vrf forwarding VPNA

หลังจากที่ท่านได้จัด Configure Interface เป็นที่เรียบร้อยแล้ว ท่านจะได้รับข่าวสาร ที่บ่งบอกว่า IP Address ได้ถูกนำออกไป และ IP Address ต้องการให้ถูกเพิ่มกลับเข้าไปอีก

% Interface Serial0/1 IP address 195.1.1.1 removed due to enabling VRF VPNA

ทดสอบ VPN Configuration บน Router C ด้วยคำสั่ง show ip vrf detail VPNA ต่อไปนี้เป็น Output จากการใช้คำสั่งนี้  สังเกตว่า RD ถูกตั้งให้มีค่า 1:100 และ Interface S0/1 เกี่ยวข้องกับ VRF รวมทั้งมีการติดตั้ง Import และ Export Policy 

RouterC#show ip vrf detail VPNA

VRF VPNA; default

RD 1:100

Interfaces:

Serial0/1

Connected addresses are not in global routing table

Export VPN route−target communities

RT:1:100

Import VPN route−target communities

RT:1:100

No import route−map

No export route−map

ขั้นตอนสุดท้ายได้แก่ การได้รับ customer prefixes (เส้นทางจาก RouterA และ RouterB) เข้ามาที่  VRF. ซึ่งสามารถทำได้โดยการใช้ Routing Protocol อย่างเช่น RIP หรือ OSPF ระหว่าง Router PE กับ Router CE (Router A กับ Router B) หรือโดยการใช้ Static Routes สำหรับ lab นี้เราใช้ Static Route และStatic Route สำหรับ VRF VPANA จะถูกดำเนินการ Redistribute เข้าไปใน MP-iBGP ภายใต้ Address  ต่อไปนี้เป็นคำสั่งเพื่อจัด Configure Static Route และ Redistribute มันเข้าไปใน MP-iBGP บน Router B และ Router C

RouterB(config)#ip route vrf VPNA 10.1.1.0 255.255.255.0 serial 0/0

RouterB(config)#router bgp 1

RouterB(config−router)#address−family ipv4 vrf VPNA

RouterB(config−router−af)#redistribute static

RouterC(config)# ip route vrf VPNA 10.1.2.0 255.255.255.0 serial 0/1

RouterC(config)#router bgp 1

RouterC(config−router)#address−family ipv4 vrf VPNA

RouterC(config−router−af)#redistribute static

จาก Router B ท่านสามารถตรวจสอบดู Routing Table สำหรับ VPNA ด้วยคำสั่ง show ip route vrf VPNA ต่อไปนี้เป็น Output จากคำสั่งดังกล่าว สังเกตว่า เรามีเส้นทางไปที่เครือข่าย 10.1.2.0 

RouterB# show ip route vrf VPNA

Codes: C − connected, S − static, I − IGRP, R − RIP, M − mobile, B − BGP

D − EIGRP, EX − EIGRP external, O − OSPF, IA − OSPF inter area

N1 − OSPF NSSA external type 1, N2 − OSPF NSSA external type 2

E1 − OSPF external type 1, E2 − OSPF external type 2, E − EGP

i − IS−IS, L1 − IS−IS level−1, L2 − IS−IS level−2, ia − IS−IS inter area

* − candidate default, U − per−user static route, o − ODR

P − periodic downloaded static route

Gateway of last resort is not set

10.0.0.0/24 is subnetted, 2 subnets

B 10.1.2.0 [200/0] via 2.2.2.2, 00:11:26

S 10.1.1.0 is directly connected, Serial0/0

C 193.1.1.0/24 is directly connected, Serial0/0

               หลังจากติดตั้งเสร็จให้ลองทดสอบ Ping จาก Router A ไปยัง Router B จะพบว่าสามารถ Ping ได้ไม่มีปัญหา

Additional Info

  • event date: 04:00 AM /10TH SEPT /LOREM IPSUM
  • Descrption: Proin gravida nibh vel velit auctor aliqProin gravida nibh vel velit
Read 13187 times Last modified on วันพุธ, 17 พฤษภาคม 2560 05:50

Leave a comment

Make sure you enter all the required information, indicated by an asterisk (*). HTML code is not allowed.