EVN (Easy Virtual Network) เป็นการแบ่งแยกขอบเขตของเครือข่ายในระดับ Layer 3 เหมือนกันกับ VRF Lite ซึ่งอันที่จริงแล้ว EVN ก็เป็นการนำ VRF Lite มาปรับปรุงให้สามารถทำการตั้งค่าได้ง่ายขึ้น และเพิ่มความสามารถในการจัดการบางอย่างเข้ามานั่นเอง โดยรายละเอียดของ EVN จะมีอะไรบ้าง ขอเชิญติดตามได้ในบทความนี้เลยครับ
ในการใช้งาน VRF Lite (รายละเอียดตามบทความ VRF Lite คืออะไร?) ภายในระบบเครือข่าย ก็จะต้องมีการสร้าง VRF และกำหนดแต่ละอินเทอร์เฟสให้อยู่ภายใต้ VRF ที่ต้องการ บนเราเตอร์ทุก ๆ ตัวตลอดเส้นทางในลักษณะ hop-by-hop โดยการกำหนด VRF ให้กับแต่ละอินเทอร์เฟสก็จะต้องดูว่าอินเทอร์เฟสนั้นนำไปเชื่อมต่อกับอุปกรณ์ในลักษณะใด โดยจะมีวิธีการในการพิจารณาดังนี้
- อินเทอร์เฟสที่นำไปเชื่อมต่อกับอุปกรณ์ที่ใช้งานอยู่ภายใต้ VRF เดียว หรือเชื่อมต่อกับอุปกรณ์ที่ไม่ได้มีการกำหนดค่า VRF อย่างเช่น โฮสต์ปลายทาง หรือเราเตอร์ของลูกค้าเป็นต้น เราจะสามารถทำการกำหนดให้ physical interface นี้อยู่ภายใต้ VRF ใด VRF หนึ่งได้ทันที
- อินเทอร์เฟสที่นำไปเชื่อมต่อกับอุปกรณ์ที่ต้องรองรับหลาย ๆ VRF ไปใน physical interface เดียวกัน อย่างเช่น การเชื่อมต่อระหว่างเราเตอร์ของผู้ให้บริการ หรือ การเชื่อมต่อจากเราเตอร์ไปยังสวิตซ์ที่ต้องการส่งต่อข้อมูลของหลาย ๆ VRF ไปใน physical interface เดียวกัน ซึ่งจะไม่สามารถทำการกำหนดให้ physical interface นั้นอยู่ภายใต้หลาย ๆ VRF ในเวลาเดียวกันได้ เนื่องจากแต่ละอินเทอร์เฟสจะสามารถอยู่ภายใต้ VRF ได้เพียง VRF เดียวเท่านั้น ดังนั้น ในกรณีที่เป็นการเชื่อมต่อระหว่างเราเตอร์ไปยังอุปกรณ์ที่มีการใช้งานหลาย ๆ VRF ก็จะต้องทำการสร้าง sub-interface ขึ้นมาบนเราเตอร์ เพื่อที่จะสามารถทำการกำหนดให้แต่ละ sub-interface อยู่ภายใต้ VRF ที่ต้องการได้ โดย sub-interface ที่สร้างขึ้นมานี้ อาจจะใช้การ encapsulation แบบใดก็ได้ ขึ้นอยู่กับ physical interface ที่ใช้งานอยู่ เช่น ถ้าเป็นการใช้งานบน serial interface ก็อาจจะใช้การ encapsulation แบบ frame-relay หรือ ถ้าเป็นการใช้งานบน ethernet interface ก็อาจจะใช้การ encapsulation แบบ 802.1q หรือ trunk interface เป็นต้น
การใช้งาน EVN ไม่ได้มีการใช้โปรโตคอลหรือกลไกในการทำงานแบบใหม่แต่อย่างใด โดยจะนำ VRF Lite และ 802.1q มาใช้งาน ซึ่งจะมีหลักการทำงานที่เหมือนกับการทำงานของ VRF Lite ทุกประการ เพียงแต่จะปรับปรุงให้สามารถทำการตั้งค่าได้ง่ายขึ้นเท่านั้น (ตามชื่อ Easy Virtual Network) โดย EVN จะนำไปใช้งานกับเราเตอร์ เพื่อที่จะช่วยลดขั้นตอนในการตั้งค่า sub-interface ลง และจะสามารถนำไปใช้งานได้กับอินเทอร์เฟสที่รองรับการ encapsulation แบบ 802.1q เท่านั้น ซึ่งก็คืออินเทอร์เฟสชนิด Ethernet นั่นเอง (ดังนั้น EVN จะรองรับการทำงานบน LAN หรือ Ethernet interface เท่านั้น จะไม่สามารถใช้งานกับอินเทอร์เฟสชนิดอื่น ๆ เช่น serial ได้) หรือจะพูดง่าย ๆ ก็คือ หลักการทำงานของ EVN ก็จะเป็นการสร้าง sub-interface ที่จะใช้ในการส่งต่อข้อมูลของแต่ละ VRF ขึ้นมาให้โดยอัตโนมัติ เพียงแค่ทำการกำหนดให้อินเทอร์เฟสนั้นเป็น trunk เท่านั้น
ในการตั้งค่า EVN จะต้องมีการกำหนดค่า VNET ขึ้นมาให้กับแต่ละ VRF ก่อน โดยค่า VNET นี้จะสามารถกำหนดได้ตั้งค่า 2-4094 ซึ่งจริง ๆ แล้วหมายเลข VNET นี้ก็คือหมายเลข VLAN ที่จะนำไปใช้ในการ tag ไปบนข้อมูลของแต่ละ VRF ในการส่งข้อมูลไปใน trunk interface นั่นเอง หรือจะกล่าวได้ว่า EVN จะใช้หมายเลข VNET นี้ในการกำหนดว่าแต่ละ sub-interface จะทำการ encapsulation แบบ 802.1q ไปด้วยหมายเลข VLAN อะไร ดังนั้นทุก ๆ อุปกรณ์ในระบบเครือข่าย จึงควรที่จะกำหนดหมายเลข VNET ของแต่ละ VRF ให้ตรงกัน เพื่อที่จะได้สามารถส่งข้อมูลของแต่ละ VRF ได้อย่างถูกต้อง และเราจะเรียกเราเตอร์ที่มีการเชื่อมต่อกันด้วย VNET Trunk นี้ว่า EVN device
โดยปกติของการสร้าง sub-interface บนเราเตอร์ เมื่อทำการสร้างและกำหนดหมายเลข VLAN ให้กับ sub-interface แล้ว ในขั้นตอนต่อมาก็จะเป็นการกำหนดหมายเลข IP address ให้กับ sub-interface ต่อไป ซึ่งถ้าเป็นการใช้งาน VRF Lite แบบปกติ เราก็จะต้องเป็นผู้กำหนดหมายเลข IP address ของแต่ละ sub-interface ด้วยตัวเอง โดยแต่ละ sub-interface ที่ใช้งานอยู่ภายใต้ physical interface เดียวกันนี้ จะสามารถใช้งานหมายเลข IP address อะไรก็ได้ตามที่กำหนด
แต่ในการใช้งาน EVN เราเตอร์จะทำการสร้าง sub-interface ขี้นมาให้โดยอัตโนมัติ จากนั้นจะนำหมายเลข IP address ที่กำหนดไว้บน physical interface มาใช้งานกับทุก ๆ sub-interface ที่สร้างขึ้นมา ดังนั้น ทุก ๆ sub-interface ของแต่ละ VRF จะมีการใช้งานหมายเลข IP address เป็นหมายเลขเดียวกัน (สามารถใช้งาน IP address ซ้ำกันได้ เนื่องจากแต่ละ VRF จะมี routing table เป็นของตัวเองแยกออกจากกัน) ซึ่งถือเป็นข้อแตกต่างอย่างนึงของการใช้งานแบบ VRF Lite กับการใช้งาน EVN กล่าวคือ บน VRF Lite เราจะสามารถทำการกำหนดค่าหมายเลข IP address ให้กับแต่ละ sub-interface ได้ด้วยตัวเอง แต่บน EVN จะนำหมายเลข IP address จาก physical interface มาใช้งาน ทำให้ทุก ๆ sub-interface ที่ใช้งานอยู่ภายใต้ physical interface เดียวกันจะใช้งานหมายเลข IP address เดียวกันทั้งหมด
Route Replication
ใน VRF Lite เราจะสามารถแลกเปลี่ยนข้อมูลเส้นทางระหว่างแต่ละ VRF ได้ ด้วยวิธีการ redistribution ข้อมูลเส้นทางผ่านทาง MP-BGP และจะใช้ BGP attribute อย่างเช่น route-target ในการควบคุมข้อมูลเส้นทางที่ต้องการจะแลกเปลี่ยนกันระหว่างแต่ละ VRF แต่บน EVN จะไม่ใช้งาน MP-BGP หรือ BGP attribution อย่างเช่น route target หรือ route distinguisher (RD) ในการแลกเปลี่ยนข้อมูลเส้นทาง โดยจะใช้คุณสมบัติที่เรียกว่า route-replication ซึ่งจะทำให้สามารถแลกเปลี่ยนข้อมูลเส้นทางระหว่างแต่ละ VRF บนเราเตอร์ตัวนั้นได้ทันที โดยถ้าต้องการประกาศข้อมูลเส้นทางนี้ไปยังเราเตอร์ตัวอื่น ๆ ผ่านทาง routing protocol ที่ใช้งานอยู่ภายในแต่ละ VRF จึงค่อยทำการ redistribution ข้อมูลเส้นทางที่ได้รับมาจาก VRF อื่น ๆ ไปยัง routing protocol ปลายทางอีกครั้ง ซึ่ง EVN จะรองรับการ redistribution ข้อมูลเส้นทางระหว่างที่ได้ replication มาจาก routing protocol ชนิด Static, OSPFv2 และ EIGRP เท่านั้น ส่วนบน BGP จะไม่สามารถ redistribution ข้อมูลเส้นทางที่ replication มาได้ แต่ก็ไม่เป็นปัญหาในการใช้งาน เนื่องจาก จะสามารถใช้ MP-BGP ในการแลกเปลี่ยนข้อมูลเส้นทางระหว่างแต่ละ VRF ได้อยู่แล้ว
ข้อจำกัดในการใช้งาน EVN
- EVN trunk จะสามารถใช้งานได้บนอินเทอร์เฟสที่รองรับการ encapsulation แบบ 802.1q อย่างเช่น FastEhternet, GigabitEthernet และ port channels เท่านั้น
- สามารถใช้งาน VRF บน EVN ได้สูงสุด 32 VRF เท่านั้น
- ถ้ามีการตั้งค่าใช้งาน EVN trunk อยู่บนอินเทอร์เฟส จะไม่สามารถทำการตั้งค่า VRF Lite บนอินเทอร์เฟสเดียวกันได้
- ไม่รองรับการทำงานร่วมกับ OSPFv3 จะรองรับเฉพาะ OSPFv2 เท่านั้น
- การใช้งานเหล่านี้จะไม่รองรับในการใช้งานร่วมกับ EVN
- IS-IS
- RIP
- การทำ route replication จะไม่สามารถ redistribution กับ BGP ได้
- SNMP set operation บางอย่าง
- การใช้งานเหล่านี้จะไม่รองรับในการใช้งานร่วมกับ EVN trunk
- access control lists (ACLs)
- คำสั่ง BGP ที่ตั้งค่าบนอินเทอร์เฟส
- IPv6, ยกเว้นบน global
- NAT
- Netflow
- WCCP
สำหรับตัวอย่างการตั้งค่าในวันนี้ จะเป็นกรณีที่ผู้ให้บริการต้องการให้บริการแบบ EVN ให้กับ ลูกค้า 2 รายคือ Customer A และ Customer B โดยที่ลูกค้าทั้งสองรายต้องการที่จะใช้บริการส่วนกลางของผู้ให้บริการ และมีรายระเอียดการใช้งานภายในแต่ละ VRF ดังนี้
- Customer A - ใช้ VRF RED และใช้งาน Routing Protocol ภายใน VRF เป็นแบบ eigrp
- Customer B - ใช้ VRF GREEN และใช้งาน Routing Protocol ภายใน VRF เป็นแบบ ospf
- Service Provider - ใช้ VRF SHARED และใช้งาน Routing Protocol ภายใน VRF เป็นแบบ ospf
ขั้นตอนการตั้งค่า
- ทำการสร้างและกำหนดชือ VRF
- ทำการกำหนดหมายเลข VNET ให้กับแต่ละ VRF
- กำหนดอินเทอร์เฟสในระดับ Layer 3 ที่เชื่อมต่อไปยังอุปกรณ์ของภายในแต่ละ VRF (non-EVN device) ให้อยู่ใน VRF ที่กำหนด
- กำหนดอินเทอร์เฟสในระดับ Layer 3 ที่เชื่อมต่อไปยังอุปกรณ์ที่เป็น EVN device ให้เป็น VNET Trunk
- ทำ routing protocol ต่าง ๆ บนแต่ละ VRF ตามต้องการ
- ทำการตั้งค่า route replication เพื่อแลกเปลี่ยนเส้นทางข้อมูลระหว่างแต่ละ VRF
- ทำการ redistribution ข้อมูลเส้นที่ได้เรียนรู้มาจากการทำ route-replication จาก VRF อื่น ๆ ไปยัง Routing Protocol ที่ใช้งานอยู่ภายในแต่ละ VRF
- การตรวจสอบการตั้งค่า
ตัวอย่างการตั้งค่าบนเราเตอร์ PE01
PE01(config)#vrf definition RED
PE01(config-vrf)#address-family ipv4
PE01(config-vrf-af)#exit-address-family
PE01(config-vrf)#exit
PE01(config)#vrf definition GREEN
PE01(config-vrf)#address-family ipv4
PE01(config-vrf-af)#exit-address-family
PE01(config-vrf)#exit
PE01(config)#vrf definition SHARED
PE01(config-vrf)#address-family ipv4
PE01(config-vrf-af)#exit-address-family
PE01(config-vrf)#exit
ตัวอย่างการตั้งค่าบนเราเตอร์ PE02
PE02(config)#vrf definition RED
PE02(config-vrf)#address-family ipv4
PE02(config-vrf-af)#exit-address-family
PE02(config-vrf)#exit
PE02(config)#vrf definition GREEN
PE02(config-vrf)#address-family ipv4
PE02(config-vrf-af)#exit-address-family
PE02(config-vrf)#exit
จากตัวอย่างด้านบน เป็นการสร้าง VRF RED, GREEN และ SHARED บนเราเตอร์ PE01 และทำการสร้าง VRF RED และ GREEN บนเราเตอร์ PE02 พร้อมทั้งกำหนดให้ทุก ๆ VRF ใช้งาน address-family เป็น IPv4
ขั้นตอนที่ 2 ทำการกำหนดหมายเลข VNET ให้กับแต่ละ VRF
ตัวอย่างการตั้งค่าบนเราเตอร์ PE01
PE01(config)#vrf definition RED
PE01(config-vrf)#vnet tag 10
PE01(config-vrf)#exit
PE01(config)#vrf definition GREEN
PE01(config-vrf)#vnet tag 20
PE01(config-vrf)#exit
PE01#show vnet
Name Tag Protocols Interfaces
GREEN 20 ipv4 Et0/2
RED 10 ipv4 Et0/1
ตัวอย่างการตั้งค่าบนเราเตอร์ PE02
PE02(config)#vrf definition RED
PE02(config-vrf)#vnet tag 10
PE02(config-vrf)#exit
PE02(config)#vrf definition GREEN
PE02(config-vrf)#vnet tag 20
PE02(config-vrf)#exit
PE02#show vnet
Name Tag Protocols Interfaces
GREEN 20 ipv4 Et0/2
RED 10 ipv4 Et0/1
จากตัวอย่างด้านบนจะเป็นการตั้งค่า VNET tag ให้กับเราเตอร์ PE01 และ PE02 โดยกำหนดให้ VRF RED ใช้หมายเลข VNET เป็น 10 และ VRF GREEN ใช้หมายเลข VNET เป็น 20 และจะสังเกตุว่าจะไม่มีการตั้งค่า VNET tag ให้กับ VRF SHARED ก็เนื่องจากไม่มีการใช้งาน VRF SHARED บน VNET Trunk ที่เชื่อมต่อระหว่าง PE ทั้งสองตัวนั่นเอง
ขั้นตอนที่ 3 ทำการกำหนดอินเทอร์เฟสที่เชื่อมต่อไปยัง non-EVN device ให้อยู่ใน VRF ที่กำหนด
อุปกรณ์ที่เป็น non-EVN device ก็คืออุปกรณ์ที่ใช้งานอยู่ภายในแต่ละ VRF เป็นอุปกรณ์ที่ไม่จำเป็นต้องทำการตั้งค่า VRF หรือ EVN แต่อย่างใด โดยอาจจะเป็นอุปกรณ์ของลูกค้าแต่ละราย หรือเป็นอุปกรณ์ของผู้ให้บริการเองก็ได้ ในการตั้งค่าต่าง ๆ บนอุปกรณ์ non-EVN device นี้ก็จะทำการตั้งเหมือนกับการใช้งานโดยปกติทั่วไป และจะเชื่อมต่อมายัง EVN device ทาง physical interface หรือ sub-interface ก็ได้ (แต่จากตัวอย่างนี้ non-EVN device จะเชื่อมต่อมาทาง physical interface)
ตัวอย่างการตั้งค่าบนเราเตอร์ PE01
PE01(config)#interface ethernet 0/1
PE01(config-if)#vrf forwarding RED
PE01(config-if)#ip address 10.10.123.2 255.255.255.252
PE01(config-if)#no shutdown
PE01(config-if)#exit
PE01(config)#interface ethernet 0/2
PE01(config-if)#vrf forwarding GREEN
PE01(config-if)#ip address 10.20.123.2 255.255.255.252
PE01(config-if)#no shutdown
PE01(config-if)#exit
PE01(config)#interface ethernet 1/0
PE01(config-if)#vrf forwarding SHARED
PE01(config-if)#ip address 172.16.123.2 255.255.255.252
PE01(config-if)#no shutdown
PE01(config-if)#exit
PE01#show vrf
Name Default RD Protocols Interfaces
GREEN <not set> ipv4 Et0/2
RED <not set> ipv4 Et0/1
SHARED <not set> ipv4 Et1/0
ตัวอย่างการตั้งค่าบนเราเตอร์ PE02
PE02(config)#int ethernet 0/1
PE02(config-if)#vrf forwarding RED
PE02(config-if)#ip address 10.10.123.9 255.255.255.252
PE02(config-if)#no shutdown
PE02(config-if)#exit
PE02(config)#interface ethernet 0/2
PE02(config-if)#vrf forwarding GREEN
PE02(config-if)#ip add 10.20.123.9 255.255.255.252
PE02(config-if)#no shutdown
PE02(config-if)#exit
PE02#show vrf
Name Default RD Protocols Interfaces
GREEN <not set> ipv4 Et0/2
RED <not set> ipv4 Et0/1
ขั้นตอนที่ 4 ทำการกำหนดอินเทอร์เฟสที่เชื่อมต่อกันระหว่าง EVN device ให้เป็น EVN Trunk
ตัวอย่างการตั้งค่าบนเราเตอร์ PE01
PE01(config)#interface ethernet 0/0
PE01(config-if)#vnet trunk
PE01(config-if)#ip address 10.0.0.1 255.255.255.252
PE01(config-if)#no shutdown
PE01(config-if)#exit
ตัวอย่างการตั้งค่าบนเราเตอร์ PE02
PE02(config)#interface ethernet 0/0
PE02(config-if)#vnet trunk
PE02(config-if)#ip address 10.0.0.2 255.255.255.252
PE02(config-if)#no shutdown
PE02(config-if)#exit
จากตัวอย่างการตั้งค่าด้านบน จะเห็นว่าง่ายกว่าการใช้งาน VRF Lite แบบปกติ ที่ต้องทำการสร้าง sub-interface เองเยอะเลยถูกมั้ยครับ โดยเมื่อใช้คำสั่ง vnet trunk เป็นแล้ว เราเตอร์จะทำการสร้าง sub-interface ขึ้นมาให้เองโดยอัตโนมัติ โดยที่เมื่อทำการ show running-confg แบบปกติ จะไม่สามารถมองเห็นค่า configuraiton ได้ครับ แต่จะสามารถใช้คำสั่ง show derived-config เพื่อดูคำสั่งที่ซ่อนไว้ได้ครับ
PE01#show ip interface brief
Interface IP-Address OK? Method Status Protocol
Ethernet0/0 10.0.0.1 YES manual up up
Ethernet0/0.10 10.0.0.1 YES manual up up
Ethernet0/0.20 10.0.0.1 YES manual up up
Ethernet0/1 10.10.123.2 YES manual up up
Ethernet0/2 10.20.123.2 YES manual up up
Ethernet1/0 172.16.123.2 YES manual up up
PE02#show derived-config
!
interface Ethernet0/0
vnet trunk
ip address 10.0.0.2 255.255.255.252
!
interface Ethernet0/0.10
description Subinterface for VNET RED
encapsulation dot1Q 10
vrf forwarding RED
ip address 10.0.0.2 255.255.255.252
!
interface Ethernet0/0.20
description Subinterface for VNET GREEN
encapsulation dot1Q 20
vrf forwarding GREEN
ip address 10.0.0.2 255.255.255.252
!
จะเห็นว่าคำสั่งที่ซ่อนไว้ ก็จะเป็นการตั้งค่า sub-interface เหมือนกับการใช้งาน VRF Lite โดยจะกำหนดหมายเลขของ sub-interface และกำหนด VLAN ที่จะ tag ลงไปในแต่ละ VRF จากค่า VNET tag ที่เราได้ทำการตั้งค่าไว้ในขั้นตอนที่ 2 นะ และทุก sub-interface จะนำหมายเลข IP address จาก physical interface มาใช้งาน ทำให้ทุก ๆ sub-interface ที่ใช้งานอยู่ภายใต้ physical interface เดียวกันจะใช้งานหมายเลข IP address เดียวกันทั้งหมดครับ
นอกจากนี้ เรายังสามารถกำหนดได้ว่าแต่ละ VNET Trunk นี้ จะอนุญาตให้ VRF ใดใช้งานได้บ้าง ด้วยการใช้คำสั่ง vnet trunk list สำหรับในบางกรณีที่อาจจะไม่ต้องการหรือไม่จำเป็นที่จะต้องให้บาง VRF ใช้งานบน vnet trunk ครับ
ตัวอย่างการตั้งค่า
PE02(config)#vrf list PE01-to-PE02
PE02(config-vrf-list)#member RED
PE02(config-vrf-list)#member GREEN
PE02(config-vrf-list)#exit
PE02(config)#interface ethernet 0/0
PE02(config-if)#vnet trunk list PE01-to-PE02
PE02(config-if)#exit
ขั้นตอนที่ 5 การตั้งค่า routing protocol ต่าง ๆ บนแต่ละ VRF
จากตัวอย่างนี้จะกำหนดให้ VRF RED ใช้ EIGRP, VRF GREEN ใช้ OSPF และ VRF SHARED ใช้ OSPF เหมือนกับ VRF GREEN นะครับ โดยจะขอแสดงตัวอย่างเฉพาะที่เราเตอร์ PE01 นะครับ ส่วนบนเราเตอร์ตัวอื่น ๆ ก็ให้ตั้งค่าตาม routing protocol ที่ใช้งานอยู่ตามแต่ละ VRF ได้เลยครับ
ตัวอย่างการตั้งค่าบนเราเตอร์ PE01
PE01(config)#router eigrp RED
PE01(config-router)#address-family ipv4 unicast vrf RED autonomous-system 10
PE01(config-router-af)#network 10.10.123.0 0.0.0.3
PE01(config-router-af)#network 10.0.0.0 0.0.0.3
PE01(config-router-af)#exit-address-family
PE01(config-router)#exit
PE01(config)#router ospf 20 vrf GREEN
PE01(config-router)#network 10.20.123.0 0.0.0.3 area 0
PE01(config-router)#network 10.0.0.0 0.0.0.3 area 0
PE01(config-router)#exit
PE01(config)#router ospf 100 vrf SHARED
PE01(config-router)#network 172.16.123.0 0.0.0.3 area 0
PE01(config-router)#exit
โดยเมื่อทำการตั้งค่าตาม routing protocol ของแต่ละ VRF บนอุปกรณ์ทุกตัวเสร็จสมบูรณ์แล้ว routing table บนอุปกรณ์ PE01 จะมีข้อมูลเส้นทางดังนี้
PE01#show ip route
Codes: L - local, C - connected, S - static, 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
i - IS-IS, su - IS-IS summary, 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, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.0.0.0/30 is directly connected, Ethernet0/0
L 10.0.0.1/32 is directly connected, Ethernet0/0
PE01#routing-context vrf RED
PE01%RED#show ip route
Routing Table: RED
Codes: L - local, C - connected, S - static, 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
i - IS-IS, su - IS-IS summary, 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, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 7 subnets, 3 masks
C 10.0.0.0/30 is directly connected, Ethernet0/0.10
L 10.0.0.1/32 is directly connected, Ethernet0/0.10
D 10.10.0.0/24 [90/1536000] via 10.10.123.1, 00:08:46, Ethernet0/1
D 10.10.10.0/24 [90/2048000] via 10.0.0.2, 00:06:21, Ethernet0/0.10
C 10.10.123.0/30 is directly connected, Ethernet0/1
L 10.10.123.2/32 is directly connected, Ethernet0/1
D 10.10.123.8/30 [90/1536000] via 10.0.0.2, 00:12:50, Ethernet0/0.10
PE01%RED#routing-context vrf global
PE01#routing-context vrf GREEN
PE01%GREEN#show ip route
Routing Table: GREEN
Codes: L - local, C - connected, S - static, 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
i - IS-IS, su - IS-IS summary, 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, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 7 subnets, 3 masks
C 10.0.0.0/30 is directly connected, Ethernet0/0.20
L 10.0.0.1/32 is directly connected, Ethernet0/0.20
O 10.20.0.0/24 [110/20] via 10.20.123.1, 00:04:39, Ethernet0/2
O 10.20.10.0/24 [110/30] via 10.0.0.2, 00:03:26, Ethernet0/0.20
C 10.20.123.0/30 is directly connected, Ethernet0/2
L 10.20.123.2/32 is directly connected, Ethernet0/2
O 10.20.123.8/30 [110/20] via 10.0.0.2, 00:11:49, Ethernet0/0.20
PE01%GREEN#routing-context vrf global
PE01#routing-context vrf SHARED
PE01%SHARED#show ip route
Routing Table: SHARED
Codes: L - local, C - connected, S - static, 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
i - IS-IS, su - IS-IS summary, 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, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override
Gateway of last resort is not set
172.16.0.0/16 is variably subnetted, 3 subnets, 3 masks
O 172.16.0.0/24 [110/20] via 172.16.123.1, 00:02:20, Ethernet1/0
C 172.16.123.0/30 is directly connected, Ethernet1/0
L 172.16.123.2/32 is directly connected, Ethernet1/0
จากตัวอย่างด้านบน เป็นการใช้ routing-context (จากบทความ การใช้งาน Routing-context บน Cisco IOS ) ในการตรวจสอบการทำงานของแต่ละ VRF โดยเมื่อทำการตั้งค่าถึงขั้นตอนนี้ ก็จะเป็นการแบ่งแยกขอบเขตของเครือข่ายในระดับ Layer 3 ตามแต่ละ VRF ให้กับลูกค้าแต่ละรายเรียบร้อยแล้ว โดยแต่ละ VRF จะไม่สามารถติดต่อสื่อสารไปยัง VRF อื่น ๆ ได้ ในขั้นตอนต่อไปจะเป็นการตั้งค่า route replication สำหรับในกรณีที่ต้องการแลกเปลี่ยนข้อมูลเส้นทางระหว่างแต่ละ VRF กันนะครับ
ขั้นตอนที่ 6 การตั้งค่า route replication เพื่อแลกเปลี่ยนเส้นทางข้อมูลระหว่างแต่ละ VRF
ในการที่จะแลกเปลี่ยนข้อมูลเส้นทางระหว่างแต่ละ VRF บน VRF Lite ก็จะต้องทำการตั้งค่า MP-BGP รวมไปถึงการตั้งค่า BGP attribute ต่าง ๆ อย่างเช่น route target, route distinguisher (RD) ซึ่งมีขั้นตอนที่ยุ่งยากและซับซ้อนพอสมควร (ตามบทความ การตั้งค่า Inter-VRF Routing กับ VRF Lite) แต่ด้วยการใช้งาน EVN เราจะสามารถแลกเปลี่ยนข้อมูลเส้นทางระหว่างแต่ละ VRF ได้อย่างง่ายดาย ด้วยคุณสมบัติ route replication ซึ่งจะทำให้สามารถแลกเปลี่ยนข้อมูลเส้นทางระหว่างแต่ละ VRF บนเราเตอร์ตัวนั้น ๆ ได้ทันที โดยไม่ต้องทำการตั้งค่า BGP แต่อย่างใด (ส่วนตัวแล้วชอบมาก สามารถใช้งานง่ายกว่าเดิมมาก ๆ ครับ)
แต่ในการใช้งาน route replication จะมีข้อจำกัดในการใช้งานอยู่บ้าง เช่น จะรองรับเฉพาะ routing protocol ชนิด Static, OSPFv2 และ EIGRP เท่านั้น โดยจะไม่สามารถทำ route replication กับ BGP หรือ IS-IS ได้ และยังไม่สามารถรองรับการใช้งาน IPv6 ได้อีกด้วย ซึ่งในกรณีที่ต้องการใช้งานโปรโตคอลต่าง ๆ ที่คุณสมบัติ route replication ไม่รองรับ ก็จะต้องใช้งาน MP-BGP ด้วยวิธีการแบบเดิมนั่นเอง
จากตัวอย่างนี้ ลูกค้าทั้งสองรายต้องการใช้บริการส่วนกลางของผู้ให้บริการ ทำให้ต้องทำการแลกเปลี่ยนข้อมูลเส้นทางระหว่าง VRF SHARED กับ VRF RED และ VRF SHARED กับ VRF GREEN โดยไม่ต้องการให้มีการแลกเปลี่ยนข้อมูลเส้นทางระหว่างลูกค้าทั้งสองราย คือ VRF RED และ VRF GREEN โดยการตั้งค่า route replication นี้จะทำบนเราเตอร์ PE01 เท่านั้น
ตัวอย่างการตั้งค่าบนเราเตอร์ PE01
PE01(config)#vrf definition SHARED
PE01(config-vrf)#address-family ipv4
PE01(config-vrf-af)#route-replicate from vrf RED unicast eigrp 10
PE01(config-vrf-af)#route-replicate from vrf GREEN unicast ospf 20
PE01(config-vrf-af)#exit-address-family
PE01(config-vrf)#exit
PE01(config)#vrf definition RED
PE01(config-vrf)#address-family ipv4
PE01(config-vrf-af)#route-replicate from vrf SHARED unicast ospf 100
PE01(config-vrf-af)#exit-address-family
PE01(config-vrf)#exit
PE01(config)#vrf definition GREEN
PE01(config-vrf)#address-family ipv4
PE01(config-vrf-af)#route-replicate from vrf SHARED unicast ospf 100
PE01(config-vrf-af)#exit-address-family
PE01(config-vrf)#exit
จากตัวอย่างด้านบน เป็นการตั้งค่า route-replication เพื่อแลกเปลี่ยนข้อมูลเส้นทางระหว่างแต่ละ VRF โดยจะสังเกตุเห็นว่าในการนำเข้าข้อมูลเส้นทางจาก VRF อื่น ๆ จะสามารถกำหนดได้ว่าต้องการข้อมูลเส้นทางที่เรียนรู้มาจาก routing protocol ชนิดใดได้ โดยแต่ละ VRF จะมีการตั้งค่าดังนี้
- VRF SHARED ตั้งค่า route-replication เพื่อนำเข้าข้อมูลเส้นทางจาก routing protocol eigrp ของ VRF RED
- VRF SHARED ตั้งค่า route-replication เพื่อนำเข้าข้อมูลเส้นทางจาก routing protocol ospf ของ VRF GREEN
- VRF RED ตั้งค่า route-replication เพื่อนำเข้าข้อมูลเส้นทางจาก routing protocol ospf ของ VRF SHARED
- VRF GREEN ตั้งค่า route-replication เพื่อนำเข้าข้อมูลเส้นทางจาก routing protocol ospf ของ VRF SHARED
โดยเมื่อทำการตั้งค่าตามตัวอย่างด้านบน เรียบร้อยแล้วบนเราเตอร์ PE01 จะมีข้อมูลเส้นทางของแต่ละ VRF ดังนี้
PE01#show ip route vrf RED
Routing Table: RED
Codes: L - local, C - connected, S - static, 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
i - IS-IS, su - IS-IS summary, 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, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 7 subnets, 3 masks
C 10.0.0.0/30 is directly connected, Ethernet0/0.10
L 10.0.0.1/32 is directly connected, Ethernet0/0.10
D 10.10.0.0/24 [90/1536000] via 10.10.123.1, 13:20:25, Ethernet0/1
D 10.10.10.0/24 [90/2048000] via 10.0.0.2, 13:18:00, Ethernet0/0.10
C 10.10.123.0/30 is directly connected, Ethernet0/1
L 10.10.123.2/32 is directly connected, Ethernet0/1
D 10.10.123.8/30 [90/1536000] via 10.0.0.2, 13:24:29, Ethernet0/0.10
172.16.0.0/24 is subnetted, 1 subnets
O + 172.16.0.0 [110/20] via 172.16.123.1 (SHARED), 13:13:08, Ethernet1/0
PE01#show ip route vrf GREEN
Routing Table: GREEN
Codes: L - local, C - connected, S - static, 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
i - IS-IS, su - IS-IS summary, 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, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 7 subnets, 3 masks
C 10.0.0.0/30 is directly connected, Ethernet0/0.20
L 10.0.0.1/32 is directly connected, Ethernet0/0.20
O 10.20.0.0/24 [110/20] via 10.20.123.1, 13:15:55, Ethernet0/2
O 10.20.10.0/24 [110/30] via 10.0.0.2, 13:14:42, Ethernet0/0.20
C 10.20.123.0/30 is directly connected, Ethernet0/2
L 10.20.123.2/32 is directly connected, Ethernet0/2
O 10.20.123.8/30 [110/20] via 10.0.0.2, 13:23:05, Ethernet0/0.20
172.16.0.0/24 is subnetted, 1 subnets
O + 172.16.0.0 [110/20] via 172.16.123.1 (SHARED), 13:13:15, Ethernet1/0
PE01#show ip route vrf SHARED
Routing Table: SHARED
Codes: L - local, C - connected, S - static, 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
i - IS-IS, su - IS-IS summary, 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, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
D + 10.10.0.0/24
[90/1536000] via 10.10.123.1 (RED), 13:20:42, Ethernet0/1
D + 10.10.10.0/24
[90/2048000] via 10.0.0.2 (RED), 13:18:17, Ethernet0/0.10
D + 10.10.123.8/30
[90/1536000] via 10.0.0.2 (RED), 13:24:46, Ethernet0/0.10
O + 10.20.0.0/24 [110/20] via 10.20.123.1 (GREEN), 13:16:05, Ethernet0/2
O + 10.20.10.0/24 [110/30] via 10.0.0.2 (GREEN), 13:14:52, Ethernet0/0.20
O + 10.20.123.8/30
[110/20] via 10.0.0.2 (GREEN), 13:23:15, Ethernet0/0.20
172.16.0.0/16 is variably subnetted, 3 subnets, 3 masks
O 172.16.0.0/24 [110/20] via 172.16.123.1, 13:13:25, Ethernet1/0
C 172.16.123.0/30 is directly connected, Ethernet1/0
L 172.16.123.2/32 is directly connected, Ethernet1/0
จะเห็นว่าข้อมูลเส้นทางที่เรียนรู้มาจาก VRF อื่น ๆ จะมีเครื่องหมาย + อยู่ด้านหน้า ซึ่งจะหมายถึงเป็นข้อมูลเส้นทางที่ได้เรียนรู้มาจากการทำ route replication และข้อมูลเส้นทางที่เรียนรู้มานี้ จะยังไม่ถูกประกาศไปยังเราเตอร์ตัวอื่น ๆ โดยจะต้องทำการตั้งค่า redistribution ไปยัง routing protocol ปลายทางอีกครั้ง จึงจะสามารถประกาศข้อมูลเส้นทางที่ได้เรียนรู้มาไปยัง routing protocol ปลายทางของแต่ละ VRF ได้
ขั้นตอนที่ 7 ทำการ redistribution ข้อมูลเส้นที่ได้เรียนรู้มาจากการทำ route-replication จาก VRF อื่น ๆ ไปยัง Routing Protocol ที่ใช้งานอยู่ภายในแต่ละ VRF
ตัวอย่างการตั้งค่า
PE01(config)#router eigrp RED
PE01(config-router)#address-family ipv4 unicast vrf RED autonomous-system 10
PE01(config-router-af)#topology base
PE01(config-router-af-topology)#redistribute vrf SHARED ospf 100 metric 10000 1 255 1 1500
PE01(config-router-af-topology)#exit-af-topology
PE01(config-router-af)#exit-address-family
PE01(config-router)#exit
PE01(config)#router ospf 20 vrf GREEN
PE01(config-router)#redistribute vrf SHARED ospf 100 subnets
PE01(config-router)#exit
PE01(config)#router ospf 100 vrf SHARED
PE01(config-router)#redistribute vrf RED eigrp 10 subnets
PE01(config-router)#redistribute vrf GREEN ospf 20 subnets
PE01(config-router)#exit
จากตัวอย่างด้านบน เป็นการตั้งค่า redistribution ข้อมูลเส้นทาง ระหว่างแต่ละ VRF เพื่อที่จะได้สามารถประกาศข้อมูลเส้นทางของ VRF อื่น ๆ ไปยัง routing protocol ที่ใช้งานอยู่ภายในแต่ละ VRF ได้ และเมื่อตรวจสอบด้วยการ show ip route บนเราเตอร์ SP จะเห็นว่ามีข้อมูลเส้นทางของ VRF RED และ VRF GREEN เข้ามาแล้ว
SP# show ip route
Codes: L - local, C - connected, S - static, 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
i - IS-IS, su - IS-IS summary, 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, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
O E2 10.10.0.0/24 [110/20] via 172.16.123.2, 00:00:10, Ethernet0/0
O E2 10.10.10.0/24 [110/20] via 172.16.123.2, 00:00:10, Ethernet0/0
O E2 10.10.123.8/30 [110/20] via 172.16.123.2, 00:00:10, Ethernet0/0
O E2 10.20.0.0/24 [110/20] via 172.16.123.2, 00:00:03, Ethernet0/0
O E2 10.20.10.0/24 [110/30] via 172.16.123.2, 00:00:03, Ethernet0/0
O E2 10.20.123.8/30 [110/20] via 172.16.123.2, 00:00:03, Ethernet0/0
172.16.0.0/16 is variably subnetted, 4 subnets, 3 masks
C 172.16.0.0/24 is directly connected, Ethernet0/1
L 172.16.0.254/32 is directly connected, Ethernet0/1
C 172.16.123.0/30 is directly connected, Ethernet0/0
L 172.16.123.1/32 is directly connected, Ethernet0/0
8. การตรวจสอบการตั้งค่า
ทดสอบการเชื่อมต่อบนเราเตอร์ในแต่ละ VRF โดยอุปกรณ์ที่อยู่ใน VRF RED และ VRF GREEN จะต้องสามารถเชื่อมต่อไปยัง VRF SHARED ได้ แต่จะไม่สามารถติดต่อสื่อสารระหว่าง VRF RED และ VRF GREEN ได้
ตัวอย่างการตรวจสอบการตั้งค่าบนเราเตอร์ CE-A-BR
CE-A-BR#show ip route
Codes: L - local, C - connected, S - static, 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
i - IS-IS, su - IS-IS summary, 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, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 7 subnets, 3 masks
D 10.0.0.0/30 [90/307200] via 10.10.123.9, 13:42:39, Ethernet0/0
D 10.10.0.0/24 [90/358400] via 10.10.123.9, 13:42:39, Ethernet0/0
C 10.10.10.0/24 is directly connected, Ethernet0/1
L 10.10.10.254/32 is directly connected, Ethernet0/1
D 10.10.123.0/30 [90/332800] via 10.10.123.9, 13:42:39, Ethernet0/0
C 10.10.123.8/30 is directly connected, Ethernet0/0
L 10.10.123.10/32 is directly connected, Ethernet0/0
172.16.0.0/24 is subnetted, 1 subnets
D EX 172.16.0.0 [170/307456] via 10.10.123.9, 00:08:43, Ethernet0/0
CE-A-BR#ping 10.10.0.254
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.0.254, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 5/6/7 ms
CE-A-BR#ping 172.16.0.254
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.0.254, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/5/6 ms
CE-A-BR#ping 10.20.0.254
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.20.0.254, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
ที่เราเตอร์ CE-A-BR จะสามารถ ping ไปยัง VRF SHARED ได้ แต่จะไม่สามารถ ping ไปยัง VRF GREEN ได้
จะเห็นว่าการตั้งค่าและใช้งาน EVN นั้นจะใช้แนวคิดเดียวกันกับการใช้งาน VRF Lite และการทำ inter-VRF Routing ด้วย MP-BGP เพียงแต่ว่าจะสามารถทำการตั้งค่าได้ง่ายขึ้น โดยเฉพาะคุณสมบัติการทำ route replication ที่ช่วยให้สามารถแลกเปลี่ยนข้อมูลเส้นทางระหว่างแต่ละ VRF ได้ โดยที่ไม่จำเป็นที่จะต้องทำการตั้งค่า MP-BGP แต่อย่างใด ซึ่งทำให้สะดวกในการตั้งค่ากว่าเดิมมาก
รบกวนสอบถามครับ สามารถทดลองบน Packet Tracer Student Version 6.1 ได้ไหมครับ ผมลองแล้วไม่มีคำสั่งเกี่ยวกับ vrf เลยครับ ขอบคุณครับ
ReplyDeleteบน Packet Tracer จะไม่มีครับ สำหรับ VRF Lite สามารถทำ lab ได้บน GNS3 ครับ ส่วน EVN นี้คงต้องเป็น GNS3-ER ล่ะครับ ถึงจะรองรับ
Delete