VRF : Virtual Routing and Forwarding table
เพื่อให้สามารถเข้าใจการทำงานของ VRF ได้ง่ายขึ้น จะขอนำไปเปรียบเทียบกับการทำงานของ VLAN ที่เป็นการแบ่งระบบเครือข่ายออกเป็นส่วน ๆ ในระดับ Layer 2 นะครับ โดยเมื่อทำการแบ่ง VLAN บนสวิตซ์แล้ว สวิตซ์ตัวนั้นก็จะเสมือนว่าถูกแบ่งเป็นสวิตซ์ทาง Logical หลาย ๆ ตัว ซึ่งแท้จริงก็คือการแบ่ง MAC address Table ของแต่ละ VLAN ออกจากกันบนสวิตซ์แต่ละตัวนั่นเอง ส่วนการใช้งาน VRF ก็จะเป็นการแบ่งระบบเครือข่ายออกเป็นส่วน ๆ ในระดับ Layer 3 โดยเมื่อทำการแบ่ง VRF บนเราเตอร์แล้ว เราเตอร์ตัวนั้นจะเสมือนว่าถูกแบ่งเป็นเราเตอร์ทาง Logical หลาย ๆ ตัว ซึ่งก็คือการแบ่ง Routing Table ของแต่ละ VRF ที่อยู่บนเราเตอร์ตัวเดียวกันแยกออกจากกันอย่างชัดเจน ดังนั้นเราจึงสามารถใช้งานหมายเลข Subnetwork ในแต่ละ VRF ได้อย่างอิสระจากกัน โดยในแต่ละ VRF อาจจะมีการใช้งานหมายเลข IP address ใน Subnetwork เดียวกันก็ได้
VRF สามารถนำมาประยุกต์ใช้งานได้หลากหลาย อย่างเช่น ในกรณีของผู้ให้บริการ ก็อาจจะใช้ VRF เพื่อให้บริการแก่ลูกค้าหลาย ๆ ราย โดยที่ลูกค้าแต่ละรายจะแยกเครือข่ายในระดับ Layer 3 กันอย่างชัดเจน หรือถ้าใช้งานภายในองค์กรต่าง ๆ ก็อาจจะนำ VRF ไปใช้เมื่อต้องการแบ่งระบบเครือข่ายออกเป็นส่วน ๆ ไม่ว่าจะด้วยวัตถุประสงค์ใด ๆ อย่างเช่น ต้องการแบ่งระบบเครือข่ายออกเป็นโซน Front-End กับ Back-end หรือ ต้องการแยกเครือข่ายสำหรับให้บริการ Guest ออกจากเครือข่ายภายในของแต่ละองค์กร หรือต้องการแบ่งเครือข่ายสำหรับบริหารจัดการออกจากเครือข่ายที่ให้บริการแก่ลูกค้า เช่นในหลาย ๆ องค์กรที่มี OOB Network เป็นต้น
ในการตั้งค่า ก็จะมีลักษณะเดียวกันกับการตั้งค่าและใช้งาน VLAN นะครับ คือจะต้องทำการสร้าง VRF ขึ้นมาก่อน จากนั้นจึงนำ VRF ที่สร้างขึ้นไปเชื่อมโยงกับอินเทอร์เฟส Layer 3 ที่ต้องการ (interface หรือ sub-interface ก็ได้) จากนั้นเราเตอร์จะเลือก VRF ในการส่งต่อข้อมูลจาก VRF ที่กำหนดไว้บนอินเทอร์เฟสที่ได้รับข้อมูลเข้ามา และจะทำการค้นหาเส้นทางตาม routing protocol ต่าง ๆ ที่ใช้งานอยู่ภายในแต่ละ VRF
สำหรับตัวอย่างการตั้งค่าในวันนี้ จะนำกรณีของผู้ให้บริการที่ต้องการจะแบ่งแยกเครือข่ายในระดับ Layer 3 ในการให้บริการกับลูกค้าแต่ละราย โดยจะมีลูกค้า 2 รายคือ Customer-A และ Customer-B ที่มีการเชื่อมต่อกันทาง Physical ตามภาพด้านล่างครับ
โดยจากภาพด้านจะมีอุปกรณ์ดังนี้
อุปกรณ์ของผู้ให้บริการ
- PE1,2 - Provider Edge เป็นอุปกรณ์ของผู้ให้บริการ ใช้ในการเชื่อมต่อกับอุปกรณ์ของลูกค้า
- P - Provider เป็นอุปกรณ์ของผู้ให้บริการ ใน Core Backbone ของทางผู้ให้บริการเอง
- CE-A-HQ - อุปกรณ์ของลูกค้า Customer A ที่ติดตั้งอยู่ที่สำนักงานใหญ่
- CE-A-BR - อุปกรณ์ของลูกค้า Customer A ที่ติดตั้งอยู่ที่สำนักงานสาขา
- CE-B-HQ - อุปกรณ์ของลูกค้า Customer B ที่ติดตั้งอยู่ที่สำนักงานใหญ่
- CE-B-BR - อุปกรณ์ของลูกค้า Customer B ที่ติดตั้งอยู่ที่สำนักงานสาขา
จากภาพ จะเห็นว่าทั้งลูกค้า Customer A และ Customer B จะมีการใช้งาน Subnet 192.168.0.0/24 เหมือนกันอยู่ และจะสามารถใช้งานได้ตามปกติ เพราะได้ทำการแบ่งแยก VRF กันไว้แล้ว โดยแต่ละ VRF จะสามารถติดต่อสื่อสารได้กับเครือข่ายที่อยู่ภายใต้ VRF เดียวกันเท่านั้น
ขั้นตอนการตั้งค่าบนอุปกรณ์แต่ละตัว
1. ทำการสร้างและกำหนดชือ VRF
2. ทำการกำหนดอินเทอร์เฟสในระดับ Layer 3 เข้ากับ VRF ที่ต้องการ
3. ทำ Routing Protocol ต่าง ๆ บนแต่ละ VRF ตามต้องการ
การสร้าง VRF บน Cisco IOS Router
ในขั้นตอนนี้จะเป็นการสร้าง VRF ขึ้นมาบนอุปกรณ์ของผู้ให้บริการ (อุปกรณ์ของลูกค้าไม่ต้องทำการสร้าง VRF สามารถตั้งค่าเหมือนกับการใช้งานตามปกติ) ซึ่งการสร้าง VRF บน Cisco IOS จะมีด้วยกัน 2 รูปแบบ ดังนี้
- Single Protocol VRF ใช้กับ Cisco IOS ตั้งแต่ก่อนหน้า Release 12.2(33)SRB โดยจะสามารถรองรับกับการใช้งานร่วมกับ IP version 4 เท่านั้น ในการสร้าง VRF จะใช้คำสั่ง ip vrf <name> และในการกำหนด VRF ไปบนอินเทอร์เฟสที่ต้องการ จะใช้คำสั่ง ip vrf forwarding <name> บนอินเทอร์เฟส และสามารถ upgrade ไปใช้งานแบบ multiprotocol VRF ได้ด้วยการใช้คำสั่ง vrf upgrade-cli multi-af-mode <common-policies | non-common-policies>
- Multiprotocol VRF รองรับบน Cisco IOS Release 12.2(33)SRB เป็นต้นมา โดยจะสามารถใช้งานร่วมกับ IP version 4 และ IP version 6 ได้ ในการสร้าง VRF จะใช้คำสั่ง vrf definition <name> โดยควรที่จะกำหนดว่าจะใช้งานกับ IPv4 หรือ IPv6 ด้วยการใช้คำสั่ง address-family <ipv4|ipv6> และในการกำหนด VRF ไปบนอินเทอร์เฟสที่ต้องการ จะใช้คำสั่ง vrf forwarding <name> บนอินเทอร์เฟส
Credit: http://running-config.blogspot.com/
Config Mode: vrf จะถูกสร้างไว้ในขอบ PE ด้านผู้รับบริการ
สร้าง vrf
config#ip vrf [name] ชื่อเป็น String
config-if#rd 10:100 ตัวอย่างนี้จะเป็น 10:100 เป็นค่าในการสื่อสารของ vrf นี้
config-if#route_target export 10:100 ค่าในการส่งออก ซึ่งต้องดูขารับ (import) จะต้องรับด้วยค่านี้ที่มีความสัมพันธ์กันทั้งขาส่ง-รับ
config-if#route_target import 10:100 ค่าในการส่งเข้า ซึ่งต้องดูขาส่ง (export) จะต้องรับด้วยค่านี้ที่มีความสัมพันธ์กันทั้งขารับ-ส่ง
คำสั่งตรวจสอบ vrf
-show ip vrf
ในส่วนการกำหนด vrf ใน interface gi/fa x/x
config-if#ip vrf forwarding [vrf name]
ส่วนของ Customer
config#conf t
config#router bgp xxx xxx คือ number process
config#address-family ipv4 vrf [name] ชื่อของ vrf ที่สร้างไว้
config#redistribute static *(RIP)
config#redistribute connected
Reference:
router bgp 100
bgp log-neighbor-changes
neighbor 5.5.5.5 remote-as 100
neighbor 5.5.5.5 update-source Loopback0
!
address-family vpnv4
neighbor 5.5.5.5 activate
neighbor 5.5.5.5 send-community both
neighbor 5.5.5.5 next-hop-self
exit-address-family
!
address-family ipv4 vrf customerA
redistribute connected
redistribute static
exit-address-family
Config Mode: vrf จะถูกสร้างไว้ในขอบ PE ด้านผู้รับบริการ
สร้าง vrf
config#ip vrf [name] ชื่อเป็น String
config-if#rd 10:100 ตัวอย่างนี้จะเป็น 10:100 เป็นค่าในการสื่อสารของ vrf นี้
config-if#route_target export 10:100 ค่าในการส่งออก ซึ่งต้องดูขารับ (import) จะต้องรับด้วยค่านี้ที่มีความสัมพันธ์กันทั้งขาส่ง-รับ
config-if#route_target import 10:100 ค่าในการส่งเข้า ซึ่งต้องดูขาส่ง (export) จะต้องรับด้วยค่านี้ที่มีความสัมพันธ์กันทั้งขารับ-ส่ง
คำสั่งตรวจสอบ vrf
-show ip vrf
ในส่วนการกำหนด vrf ใน interface gi/fa x/x
config-if#ip vrf forwarding [vrf name]
ส่วนของ Customer
config#conf t
config#router bgp xxx xxx คือ number process
config#address-family ipv4 vrf [name] ชื่อของ vrf ที่สร้างไว้
config#redistribute static *(RIP)
config#redistribute connected
Reference:
router bgp 100
bgp log-neighbor-changes
neighbor 5.5.5.5 remote-as 100
neighbor 5.5.5.5 update-source Loopback0
!
address-family vpnv4
neighbor 5.5.5.5 activate
neighbor 5.5.5.5 send-community both
neighbor 5.5.5.5 next-hop-self
exit-address-family
!
address-family ipv4 vrf customerA
redistribute connected
redistribute static
exit-address-family
Comments
Post a Comment