VRF : Virtual Routing and Forwarding table


            VRF (Virtual Routing and Forwarding table) เป็นคุณสมบัติสำหรับใช้ในการแบ่งขอบเขตของระบบเครือข่ายในระดับ Layer 3 ทำให้สามารถสร้างหลาย ๆ Routing Table ขึ้นมาในอุปกรณ์ Layer 3 เพียงตัวเดียวและในเวลาเดียวกัน เป็นการสร้างเครือข่ายแบบ VPN อีกชนิดหนึ่ง โดยทั่วไปแล้ว VRF จะนำไปใช้งานกับ MPLS ในการให้บริการแบบ MPLS-VPN ให้กับลูกค้า แต่ในกรณีที่ใช้งาน VRF เพียงอย่างเดียวโดยที่ไม่เกี่ยวข้องกับ MPLS โดยทั่วไปจะเรียกกันว่า VRF Lite

            เพื่อให้สามารถเข้าใจการทำงานของ 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 ที่ติดตั้งอยู่ที่สำนักงานสาขา
            เพื่อที่จะทำการแบ่งแยกเครือข่ายในระดับ Layer 3 ตลอดเส้นทางในการให้บริการลูกค้าแต่ละราย ก็จะต้องทำการสร้าง VRF Lite และทำการกำหนด VRF ให้กับลูกค้าแต่ละรายบนทุก ๆ อุปกรณ์ตลอดเส้นทาง ซึ่งจากภาพด้านบน จะเห็นว่าการเชื่อมต่อระหว่างอุปกรณ์ของผู้ให้บริการจะใช้งาน Physical interface เดียวกัน แต่ในการใช้งาน VRF แต่ละอินเทอร์เฟสจะสามารถกำหนด VRF ได้เพียง VRF เดียวเท่านั้น ดังนั้น จึงมีความจำเป็นที่จะต้องสร้าง Sub-interface ขึ้นมา เพื่อที่จะแบ่งแยกแต่ละ Sub-interface ให้ใช้งานตาม VRF ของลูกค้าแต่ละรายได้ โดยจากตัวอย่างนี้ จะทำการสร้าง VRF ที่มีชื่อว่า RED ให้กับ Customer A และสร้าง VRF ที่ชื่อว่า GREEN ให้กับ 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


Comments

Popular posts from this blog

รู้จักกับ Breakpoints ใน Responsive Web Design

IS-IS & OSPF

RIP Routing Information Protocol