ยินดีต้อนรับสู่ show running-config ครับ

บล็อก show running-config นี้สร้างไว้เพื่อเป็นแหล่งรวบรวมเทคนิคการตั้งค่าอุปกรณ์เครือข่าย Cisco ไม่ว่าจะเป็น Cisco IOS Router, Cisco Catalyst Swtich, Cisco ASA Firewall, Cisco Mars เป็นต้น รวมทั้งอาจจะมีเทคนิคการตั้งค่าอุปกรณ์ในยี่ห้ออื่น ๆ บ้างเล็กน้อยครับ

ซึ่งบทความในบล็อกนี้ก็จะรวบรวมมาจากประสบการณ์ส่วนตัวของกระผมเองครับ (หากมีข้อผิดพลาดก็ขออภัยไว้ล่วงหน้าเลยละกันนะครับ) และก็อยากใช้พื้นที่แห่งนี้เป็นแหล่งในการแลกเปลี่ยนความรู้ รวมไปถึงวิธีการหรือเทคนิคการตั้งค่าอุปกรณ์เครือข่าย กับทุก ๆ คนครับ

Friday, August 1, 2014

VRF Lite คืออะไร ?


            ในปัจจุบันโลกของเราได้ก้าวสู่ยุคของ virtualization กันมากขึ้น ไม่ว่าอุปกรณ์อะไรก็จะมีการทำ virtual ไปซะหมด ตั้งแต่ Server ที่มีการใช้งาน VMware หรืออุปกรณ์อย่างเช่น Firewall ที่มีการทำ Virtual Context หรือ Virtual Device ต่าง ๆ หรือบนสวิตซ์ก็จะมีการใช้งาน VLAN ที่เป็นการแบ่งขอบเขตของเครือข่าย LAN ในระดับ Layer 2 ดังนั้นอุปกรณ์ในระดับ Layer 3 อย่างเช่น เราเตอร์หรือสวิตซ์ Layer 3 ก็น่าที่จะมีการแบ่งแยกเครือข่ายในระดับ Layer 3 เหมือนกันถูกมั้ยครับ ดังนั้นวันนี้ผมจึงจะมาแนะนำให้ได้รู้จักกับ VRF Lite ซึ่งเป็นคุณสมบัติในการสร้างระบบเครือข่ายเสมือนในระดับ Layer 3 นั่นเองครับ

            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 ตามต้องการ

ขั้นตอนที่ 1 การสร้าง 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> บนอินเทอร์เฟส

ตัวอย่างการตั้งค่า
แบบ Single Protocol VRF  (ก่อนหน้า Cisco IOS Release 12.2(33)SRB)

PE01(config)#ip vrf RED
PE01(config-vrf)#exit
PE01(config)#ip vrf GREEN
PE01(config-vrf)#end

PE01#show vrf
  Name                             Default RD          Protocols   Interfaces
  GREEN                            <not set>           ipv4
     RED                              <not set>           ipv4

แบบ Multiprotocol VRF (ตั้งแต่ Cisco IOS Release 12.2(33)SRB เป็นต้นมา)

P(config)#vrf definition RED
P(config-vrf)#address-family ipv4
P(config-vrf)#exit
P(config)#vrf definition GREEN
P(config-vrf)#address-family ipv4
P(config-vrf)#end

P#show vrf
  Name                             Default RD          Protocols   Interfaces
  GREEN                            <not set>           ipv4
  RED                              <not set>           ipv4

ตัวอย่างการใช้คำสั่ง vrf upgrade-cli multi-af-mode

PE02(config)#ip vrf RED
PE02(config-vrf)#exit
PE02(config)#ip vrf GREEN
PE02(config-vrf)#exit

PE02(config)#vrf upgrade-cli multi-af-mode common-policies
You are about to upgrade to the multi-AF VRF syntax commands.
You will lose any IPv6 address configured on interfaces
belonging to upgraded VRFs.

Are you sure ? [yes]: yes
Number of VRFs upgraded: 2

PE02#show running-config | section vrf
vrf definition GREEN
 !
 address-family ipv4
 exit-address-family
vrf definition RED
 !
 address-family ipv4
 exit-address-family

PE02#show vrf
  Name                             Default RD          Protocols   Interfaces
  GREEN                            <not set>           ipv4
     RED                              <not set>           ipv4

            จากตัวอย่างด้านบน เป็นการสร้าง VRF แบบ Single Protocol VRF บนเราเตอร์ PE01, แบบ Multiprotocol VRF บนเราเตอร์ P และใช้การ upgrade VRF จาก Single Protocol VRF ไปเป็น Multiprotocol VRF บนเราเตอร์ PE02 ของผู้ให้บริการ ซึ่งไม่ว่าจะทำการตั้งค่าแบบใด ก็จะได้ผลลัพธ์ที่เหมือนกัน คือจะเป็นการสร้าง VRF ที่มีชื่อว่า RED และ GREEN บนเราเตอร์ของผู้ให้บริการทุกตัวครับ

ขั้นตอนที่ 2 ทำการกำหนดอินเทอร์เฟสในระดับ Layer 3 เข้ากับ VRF

            จะเห็นว่าบนเราเตอร์ PE ทั้งสองตัว จะมีอินเทอร์เฟสที่ใช้ในการเชื่อมต่อไปยังอุปกรณ์ของลูกค้าโดยตรง ซึ่งจะสามารถทำการกำหนด VRF ให้กับอินเทอร์เฟสที่เชื่อมต่อไปยังอุปกรณ์ของลูกค้านี้ได้ทันที แต่สำหรับอินเทอร์เฟสที่ใช้ในการเชื่อมต่อระหว่างอุปกรณ์ของผู้ให้บริการด้วยกัน จะใช้งานอยู่บน Physical interface เดียวกัน ซึ่งในการใช้งาน VRF แต่ละอินเทอร์เฟสจะสามารถกำหนด VRF ได้เพียง VRF เดียวเท่านั้น ดังนั้น จึงมีความจำเป็นที่จะต้องสร้าง Sub-interface ขึ้นมา เพื่อที่จะแบ่งแยกแต่ละ Sub-interface ให้ใช้งานตาม VRF ของลูกค้าแต่ละรายได้ ซึ่งถ้าเป็นอินเทอร์เฟสแบบ Ethernet ก็จะสามารถสร้าง Sub-interface โดยใช้ encapsulation แบบ 802.1q หรือ Trunk interface ได้ แต่ในกรณีที่เป็นอินเทอร์เฟสแบบ Serial ซึ่งโดยทั่วไปจะใช้การ encapsulation แบบ HDLC หรือ PPP จะไม่สามารถสร้าง Sub-interface ได้ ดังนั้นจึงจำเป็นที่จะต้องใช้งานการ encapsulation แบบ Frame Relay (อาจจะใช้ Frame Relay แบบ point-to-point ก็ได้) เพื่อให้สามารถสร้าง Sub-interface ขึ้นมาบน Serial interface ได้

ตัวอย่างการตั้งค่าบนเราเตอร์ PE01 (ใช้การตั้งค่า VRF แบบ Single Protocol VRF สำหรับก่อนหน้า Cisco IOS Release 12.2(33)SRB)

PE01(config)#interface ethernet 0/1
PE01(config-if)#ip vrf forwarding RED
PE01(config-if)#ip address 192.168.10.254 255.255.255.0
PE01(config-if)#no shutdown
PE01(config-if)#exit

PE01(config)#interface ethernet 0/2
PE01(config-if)#ip vrf forwarding GREEN
PE01(config-if)#ip address 192.168.20.254 255.255.255.0
PE01(config-if)#no shutdown
PE01(config-if)#exit

PE01(config)#interface ethernet 0/0
PE01(config-if)#no shutdown

PE01(config-if)#interface ethernet 0/0.10
PE01(config-subif)#encapsulation dot1Q 10
PE01(config-subif)#ip vrf forwarding RED
PE01(config-subif)#ip address 10.10.0.1 255.255.255.252
PE01(config-subif)#no shutdown

PE01(config-if)#interface ethernet 0/0.20
PE01(config-subif)#encapsulation dot1Q 20
PE01(config-subif)#ip vrf forwarding GREEN
PE01(config-subif)#ip address 10.20.0.1 255.255.255.252
PE01(config-subif)#no shutdown
PE01(config-subif)#exit

PE01#show vrf
  Name                             Default RD          Protocols   Interfaces
  GREEN                            <not set>           ipv4        Et0/2
                                                                   Et0/0.20
  RED                              <not set>           ipv4        Et0/0.10
                                                                   Et0/1

ตัวอย่างการตั้งค่าบนเราเตอร์ PE02 (ใช้การตั้งค่า VRF แบบ Multiprotocol VRF สำหรับตั้งแต่ Cisco IOS Release 12.2(33)SRB เป็นต้นมา)

PE02(config)#interface ethernet 0/1
PE02(config-if)#vrf forwarding RED
PE02(config-if)#ip address 192.168.11.254 255.255.255.0
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 address 192.168.21.254 255.255.255.0
PE02(config-if)#no shutdown
PE02(config-if)#exit

PE02(config)#interface serial 2/0
PE02(config-if)#encapsulation frame-relay
PE02(config-if)#no shutdown
PE02(config-if)#no keepalive
PE02(config-if)#exit

PE02(config)#interface serial 2/0.10 point-to-point
PE02(config-subif)#frame-relay interface-dlci 110
PE02(config-fr-dlci)#exit
PE02(config-subif)#vrf forwarding RED
PE02(config-subif)#ip address 10.10.0.6 255.255.255.252
PE02(config-subif)#no shutdown
PE02(config-subif)#exit

PE02(config)#interface serial 2/0.20 point-to-point
PE02(config-subif)#frame-relay interface-dlci 120
PE02(config-fr-dlci)#exit
PE02(config-subif)#vrf forwarding GREEN
PE02(config-subif)#ip address 10.20.0.6 255.255.255.252
PE02(config-subif)#no shutdown
PE02(config-subif)#exit

PE02#show vrf
  Name                             Default RD          Protocols   Interfaces
  GREEN                            <not set>           ipv4        Et0/2
                                                                   Se2/0.20
  RED                              <not set>           ipv4        Et0/1
                                                                   Se2/0.10

ตัวอย่างการตั้งค่าบนเราเตอร์ P (ใช้การตั้งค่า VRF แบบ Multiprotocol VRF สำหรับตั้งแต่ Cisco IOS Release 12.2(33)SRB เป็นต้นมา)

P(config)#interface ethernet 0/0
P(config-if)#no shutdown
P(config-if)#exit

P(config)#interface ethernet 0/0.10
P(config-subif)#encapsulation dot1Q 10
P(config-subif)#vrf forwarding RED
P(config-subif)#ip address 10.10.0.2 255.255.255.252
P(config-subif)#no shutdown
P(config-subif)#exit

P(config)#interface ethernet 0/0.20
P(config-subif)#encapsulation dot1Q 20
P(config-subif)#vrf forwarding GREEN
P(config-subif)#ip address 10.20.0.2 255.255.255.252
P(config-subif)#no shutdown
P(config-subif)#exit

P(config)#interface serial 2/0
P(config-if)#encapsulation frame-relay
P(config-if)#no shutdown
P(config-if)#no keepalive
P(config-if)#exit

P(config)#interface serial 2/0.10 point-to-point
P(config-subif)#frame-relay interface-dlci 110
P(config-fr-dlci)#exit
P(config-subif)#vrf forwarding RED
P(config-subif)#ip address 10.10.0.5 255.255.255.252
P(config-subif)#no shutdown
P(config-subif)#exit

P(config)#interface serial 2/0.20 point-to-point
P(config-subif)#frame-relay interface-dlci 120
P(config-fr-dlci)#exit
P(config-subif)#vrf forwarding GREEN
P(config-subif)#ip address 10.20.0.5 255.255.255.252
P(config-subif)#no shutdown
P(config-subif)#exit

P#show vrf
  Name                             Default RD          Protocols   Interfaces
  GREEN                            <not set>           ipv4        Et0/0.20
                                                                   Se2/0.20
  RED                              <not set>           ipv4        Et0/0.10
                                                                   Se2/0.10

            ทั้งนี้เมื่อทำการตั้งค่าตามตัวอย่างด้านบน บนอุปกรณ์ของทางผู้ให้บริการทั้งหมดเรียบร้อยแล้ว Routing Protocol จะถูกแบ่งแยกไปตามแต่ละ VRF และในกรณีที่ต้องการเรียกดู Routing Table ของแต่ละ VRF ก็จะต้องใช้คำสั่ง show ip route ตามด้วย option vrf <name> ด้วย อย่างเช่น ต้องการเรียกดู Routing Table ของ VRF RED ก็จะต้องใช้คำสั่ง show ip route vrf RED เป็นต้น

ตัวอย่าง Routing Table บนเราเตอร์ P หลังจากกำหนด VRF ให้กับแต่ละอินเทอร์เฟสแล้ว

P#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
       + - replicated route, % - next hop override

Gateway of last resort is not set

P#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
       + - replicated route, % - next hop override

Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C        10.10.0.0/30 is directly connected, Ethernet0/0.10
L        10.10.0.2/32 is directly connected, Ethernet0/0.10
C        10.10.0.4/30 is directly connected, Serial2/0.10
L        10.10.0.5/32 is directly connected, Serial2/0.10

P#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
       + - replicated route, % - next hop override

Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C        10.20.0.0/30 is directly connected, Ethernet0/0.20
L        10.20.0.2/32 is directly connected, Ethernet0/0.20
C        10.20.0.4/30 is directly connected, Serial2/0.20
L        10.20.0.5/32 is directly connected, Serial2/0.20

            จะเห็นว่าบน Global Routing Table จะไม่มีรายการเครือข่ายใด ๆ อยู่ และบน Routing Table ของแต่ละ VRF ก็จะมีเฉพาะรายการเครือข่ายของแต่ละ VRF อยู่เท่านั้น ซึ่งจริง ๆ การตั้งค่า VRF Lite ก็จะจบลงที่ขั้นตอนนี้ โดยการตั้งค่าตามตัวอย่างในด้านบนนี้ ก็จะเป็นการสร้างระบบเครือข่ายเสมือน (VPN) ในระดับ Layer 3 ให้กับลูกค้าแต่ละรายเรียบร้อยแล้ว แต่ในขั้นตอนต่อไป จะเป็นตัวอย่างการตั้งค่า Routing Protocol ต่าง ๆ เมื่อต้องมาใช้งานร่วมกับ VRF ซึ่งจะมีการเปลี่ยนแปลงการตั้งค่าจากแบบปกติบางอย่างนะครับ

ขั้นตอนที่ 3 การตั้งค่า Routing Protocol ต่าง ๆ ให้กับแต่ละ VRF

ในตัวอย่างนี้ จะกำหนดให้แต่ละ VRF ใช้งาน Routing Protocol ดังนี้

  • VRF RED ใช้งาน Routing Protocol ชนิด Static route
  • VRF GREEN ใช้งาน Routing Protocol ชนิด OSPF


การตั้งค่า Routing Protocol บน VRF RED

เราเตอร์ PE01
PE01(config)#ip route vrf RED 172.16.0.0 255.255.255.0 192.168.10.253
PE01(config)#ip route vrf RED 192.168.0.0 255.255.255.0 10.10.0.2
PE01(config)#ip route vrf RED 10.10.0.4 255.255.255.252 10.10.0.2
PE01(config)#ip route vrf RED 192.168.11.0 255.255.255.0 10.10.0.2

เราเตอร์ P
P(config)#ip route vrf RED 172.16.0.0 255.255.255.0 10.10.0.1
P(config)#ip route vrf RED 192.168.10.0 255.255.255.0 10.10.0.1
P(config)#ip route vrf RED 192.168.0.0 255.255.255.0 10.10.0.6
P(config)#ip route vrf RED 192.168.11.0 255.255.255.0 10.10.0.6

เราเตอร์ PE02
PE02(config)#ip route vrf RED 10.10.0.0 255.255.255.252 10.10.0.5
PE02(config)#ip route vrf RED 172.16.0.0 255.255.255.0 10.10.0.5
PE02(config)#ip route vrf RED 192.168.10.0 255.255.255.0 10.10.0.5
PE02(config)#ip route vrf RED 192.168.0.0 255.255.255.0 192.168.11.253

เราเตอร์ CE-A-HQ
CE-A-HQ(config)#interface ethernet 0/0
CE-A-HQ(config-if)#ip address 192.168.10.253 255.255.255.0
CE-A-HQ(config-if)#no shutdown
CE-A-HQ(config-if)#exit

CE-A-HQ(config)#interface loopback 0
CE-A-HQ(config-if)#ip address 172.16.0.254 255.255.255.0
CE-A-HQ(config-if)#no shutdown
CE-A-HQ(config-if)#exit

CE-A-HQ(config)#ip route 0.0.0.0 0.0.0.0 192.168.10.254 
//เป็น stub area จึงสามารถใช้งาน default route เพียงอย่างเดียวได้

เราเตอร์ CE-A-BR
CE-A-BR(config)#interface ethernet 0/0
CE-A-BR(config-if)#ip address 192.168.11.253 255.255.255.0
CE-A-BR(config-if)#no shutdown
CE-A-BR(config-if)#exit

CE-A-BR(config)#interface loopback 0
CE-A-BR(config-if)#ip address 192.168.0.254 255.255.255.0
CE-A-BR(config-if)#no shutdown
CE-A-BR(config-if)#exit

CE-A-BR(config)#ip route 0.0.0.0 0.0.0.0 192.168.11.254 
//เป็น stub area จึงสามารถใช้งาน default route เพียงอย่างเดียวได้

การตั้งค่า Routing Protocol บน VRF GREEN

เราเตอร์ PE01
PE01(config)#router ospf 10 vrf GREEN
PE01(config-router)#network 192.168.20.0 0.0.0.255 area 0
PE01(config-router)#network 10.20.0.0 0.0.0.3 area 0
PE01(config-router)#exit

เราเตอร์ P
P(config)#router ospf 10 vrf GREEN
P(config-router)#network 10.20.0.0 0.0.0.7 area 0
P(config-router)#exit

เราเตอร์ PE02
PE02(config)#router ospf 10 vrf GREEN
PE02(config-router)#network 10.20.0.4 0.0.0.3 area 0
PE02(config-router)#network 192.168.21.0 0.0.0.255 area 0
PE02(config-router)#exit

เราเตอร์ CE-B-HQ
CE-B-HQ(config)#interface ethernet 0/0
CE-B-HQ(config-if)#ip address 192.168.20.253 255.255.255.0
CE-B-HQ(config-if)#no shutdown
CE-B-HQ(config-if)#exit

CE-B-HQ(config)#interface loopback 0
CE-B-HQ(config-if)#ip address 10.0.0.254 255.255.255.0
CE-B-HQ(config-if)#no shutdown
CE-B-HQ(config-if)#exit

CE-B-HQ(config)#router ospf 10
CE-B-HQ(config-router)#network 0.0.0.0 255.255.255.255 area 0
CE-B-HQ(config-router)#exit

เราเตอร์ CE-B-BR
CE-B-BR(config)#interface ethernet 0/0
CE-B-BR(config-if)#ip address 192.168.21.253 255.255.255.0
CE-B-BR(config-if)#no shutdown
CE-B-BR(config-if)#exit

CE-B-BR(config)#interface loopback 0
CE-B-BR(config-if)#ip address 192.168.0.254 255.255.255.0
CE-B-BR(config-if)#no shutdown
CE-B-BR(config-if)#exit

CE-B-BR(config)#router ospf 10
CE-B-BR(config-router)#network 0.0.0.0 255.255.255.255 area 0
CE-B-BR(config-router)#exit

การตรวจสอบการทำงาน

            เมื่อทำการตั้งค่าตามตัวอย่างด้านบนแล้ว ระบบเครือข่ายก็จะถูกแบ่งออกเป็นสองส่วน โดยผู้ให้บริการก็จะใช้อุปกรณ์ทาง Physical ชุดเดียวกันในการให้บริการกับลูกค้าหลาย ๆ รายได้ และลูกค้าแต่ละรายก็จะสามารถติดต่อสื่อสารได้กับเครือข่ายของตัวเองเท่านั้น แม้ว่าจะใช้งานหมายเลข IP address ใน Subnet เดียวกันเหมือนกับตัวอย่างนี้ ก็จะไม่สามารถติดต่อสื่อสารข้ามระหว่าง VRF กันได้ ยกตัวอย่างเช่น ที่เราเตอร์ CE-A-BR จะสามารถส่งข้อมูลไปยังเราเตอร์ CE-A-HQ ได้ แต่จะไม่สามารถส่งข้อมูลข้ามระหว่าง VRF ไปยังเราเตอร์ CE-B-HQ หรือ CE-B-BR ได้

ตัวอย่างการ ping และ traceroute จากเราเตอร์ CE-A-BR ไปยังเราเตอร์ CE-A-HQ ซี่งควรที่จะสามารถ ping และ traceroute ได้

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 = 10/10/11 ms

CE-A-BR#traceroute 172.16.0.254
Type escape sequence to abort.
Tracing the route to 172.16.0.254
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.11.254 6 msec 6 msec 4 msec
  2 10.10.0.5 10 msec 11 msec 6 msec
  3 10.10.0.1 9 msec 10 msec 10 msec
  4 192.168.10.253 10 msec 6 msec *

ตัวอย่างการ ping และ traceroute จากเราเตอร์ CE-A-BR ไปยังเราเตอร์ CE-B-HQ ซี่งไม่ควรที่จะสามารถ ping และ traceroute ได้

CE-A-BR#ping 10.0.0.254
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.254, timeout is 2 seconds:
U.U.U
Success rate is 0 percent (0/5)

CE-A-BR#traceroute 10.0.0.254
Type escape sequence to abort.
Tracing the route to 10.0.0.254
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.11.254 6 msec 1 msec 5 msec
  2 192.168.11.254 !H  !H  *

หรือทดลอง show ip route บนเราเตอร์ CE-B-BR ก็จะพบว่ามีข้อมูลเส้นทางเฉพาะของ VRF GREEN เท่านั้น

ตัวอย่าง
CE-B-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
       + - replicated route, % - next hop override

Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
O        10.0.0.254/32 [110/95] via 192.168.21.254, 10:46:37, Ethernet0/0
O        10.20.0.0/30 [110/84] via 192.168.21.254, 10:46:37, Ethernet0/0
O        10.20.0.4/30 [110/74] via 192.168.21.254, 10:46:37, Ethernet0/0
      192.168.0.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.0.0/24 is directly connected, Loopback0
L        192.168.0.254/32 is directly connected, Loopback0
O     192.168.20.0/24 [110/94] via 192.168.21.254, 10:46:37, Ethernet0/0
      192.168.21.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.21.0/24 is directly connected, Ethernet0/0
L        192.168.21.253/32 is directly connected, Ethernet0/0

            บทความเรื่อง VRF Lite นี้ผมพยายามที่จะรวบรวมข้อมูลให้ได้ครบถ้วนในหลาย ๆ กรณี จึงอาจจะยาวไปบ้าง ซึ่งการใช้งาน VRF Lite จะสามารถนำไปต่อยอดใช้งานได้อีกหลากหลาย เช่นไปใช้งานร่วมกับ MPLS ในการทำ MPLS-VPN หรือการทำ inter-VRF Lite Routing (ทำให้สามารถแลกเปลี่ยนข้อมูลเส้นทางระหว่าง VRF กันได้) หรือการทำ EVN (Easy Virtual Network) (บทความ ทำความรู้จักกับ Cisco EVN กันครับ) ที่จะช่วยให้สามารถตั้งค่า VRF Lite ได้ง่ายขึ้น ซึ่งจะขอกล่าวถึงในบทความต่อ ๆ ไปครับ

9 comments :

  1. ได้ความรู้เยอะเลย ขอบคุณครับ

    ReplyDelete
  2. ขอบคุณมากครับ กระจ่างเลยครับ

    ReplyDelete
  3. ขอบคุณม๊ากๆคร๊าบบบ

    ReplyDelete
  4. อธิบายได้ เยี่ยมครับ

    ReplyDelete
  5. เป้นบทความที่ดีครับ ผมขอเป็นกำลังใจให้ครับ ขอให้เขียนบทความดีๆ ออกมาเรื่อยๆน่ะครับ

    ReplyDelete
  6. เป็นบทความที่ดีครับ ผมขอเป็นกำลังใจให้ เขียนบทความที่ดี ออกมาเรื่อยๆ น่ะครับ

    ReplyDelete
  7. เป็นบทความที่ดีครับ ผมขอเป็นกำลังใจให้ เขียนบทความที่ดี ออกมาเรื่อยๆ น่ะครับ

    ReplyDelete
  8. เป็นบทความที่ดีครับ ผมขอเป็นกำลังใจให้ เขียนบทความที่ดี ออกมาเรื่อยๆ น่ะครับ

    ReplyDelete
  9. เป็นบทความที่ดีครับ ผมขอเป็นกำลังใจให้ เขียนบทความที่ดี ออกมาเรื่อยๆ น่ะครับ

    ReplyDelete