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

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

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

Wednesday, February 11, 2015

การตั้งค่า VXLAN บน Arista EOS


            ในปัจจุบันนี้ เป็นยุคของอุปกรณ์เสมือน (virtual machine) ซึ่งจะมีความต้องการที่จะใช้งานเครือข่ายในระดับ Layer 2 (IP subnet เดียวกัน) เพื่อให้สามารถรองรับกับคุณสมบัติต่าง ๆ อย่างเช่น การทำ live vMotion (การย้าย virtual machine ข้ามระหว่าง physical server โดยปราศจาก downtime) หรืออื่น ๆ ได้ ซึ่งถ้าเป็นการใช้งานโดยทั่วไปที่อุปกรณ์ตั้งอยู่ใน LAN หรืออยู่ในสถานที่เดียวกัน ก็จะสามารถใช้งานได้ตามปกติ แต่ในกรณีที่ต้องการใช้งานเครือข่ายในระดับ Layer 2 ระหว่างอุปกรณ์ที่ตั้งอยู่คนละสถานที่ หรือข้ามระหว่างเครือข่าย Layer 3 (เช่น ระหว่าง DC กับ DR) ก็จะมีความจำเป็นที่จะต้องใช้เทคโนโลยีต่าง ๆ เข้ามาช่วย เพื่อให้สามารถทำการส่งข้อมูลในระดับ Layer 2 ข้ามไปบนเครือข่าย Layer 3 ได้ ในวันนี้ผมก็จะขอพูดถึงหนึ่งในเทคโนโลยีที่ว่า ซึ่งก็คือการทำ VXLAN บนอุปกรณ์ Arista EOS นั่นเองครับ

            VXLAN หรือ  Virtual Extensible LAN เป็นเทคโนโลยีที่จะช่วยให้สามารถส่งข้อมูลในระดับ Layer 2 ข้ามไประหว่างเครือข่าย Layer 3 ได้ โดยมีหลักการทำงานคือ เมื่อได้รับแพ็คเก็ตที่อุปกรณ์ต้นทางต้องการส่งข้อมูลในระดับ Layer 2 ไปยังอุปกรณ์ปลายทางในฝั่งตรงกันข้ามเข้ามา มันจะทำการห่อหุ้ม (encapsulation) แพ็คเก็ตนั้นด้วยแพ็คเก็ต Layer 3 UDP ก่อนที่จะทำการส่งข้อมูลออกไปบนเครือข่าย Layer 3 ซึ่งจะทำให้แพ็คเก็ตนั้นมี header 2 ชั้นด้วยกัน ชั้นนอกจะเป็น IP และ UDP header ของ VXLAN สำหรับใช้ในการส่งข้อมูลจาก site ต้นทางไปยัง site ปลายทางข้ามระหว่างเครือข่าย Layer 3 ส่วนชั้นที่ 2 จะเป็น header ดั้งเดิมของแพ็คเก็ตนั้น ๆ ที่เครืองต้นทางต้องการส่งข้อมูลไปยังเครื่องปลายทาง

ส่วนประกอบในการทำงานของ VXLAN มีดังนี้

  • VTEP (VXLAN Virtual Tunnel End Point) ก็คืออุปกรณ์ที่เป็นจุดเริ่มและจุดสิ้นสุดของ VXLAN tunnel หรือในที่นี้ก็คือ Arista Switch นั่นเอง โดยจะต้องมีการกำหนดหมายเลข IP address ให้กับอุปกรณ์ VTEP แต่ละตัวด้วย
  • VTI (VXLAN Tunnel Interface) เป็นอินเทอร์เฟสแบบเสมือน (virtual) สำหรับใช้ในการส่งข้อมูล Layer 2 ไปยังฝั่งตรงข้าม ในการตั้งค่าจะสามารถกำหนดได้ว่าจะให้ทำการส่งและรับข้อมูลของ VLAN ใดไปทาง VNI หรือ VXLAN tunnel ใดบ้าง โดยเมื่อสวิตซ์ได้รับเฟรมจากเครื่องต้นทางเข้ามา เฟรมนั้นจะถูกเพิ่ม VXLAN header และส่งออกไปด้วย UDP protocol จากนั้นเมื่อฝั่งปลายทางได้รับข้อมูลนี้ไป ก็จะทำการถอด VXLAN header ออก และส่งต่อไปยัง VLAN ปลายทางต่อไป
  • VNI (Virtual Network Identifier) เป็นหมายเลขขนาด 24 bits มีลักษณะการใช้งานคล้ายกับหมายเลข VLAN เพียงแต่ว่าจะเป็นหมายเลขที่ไว้ใช้งานสำหรับ VXLAN เพื่อบ่งบอกว่ากำลังรับ-ส่งข้อมูลของ VLAN อะไรเท่านั้น โดยในการทำงานจะต้องทำการจับคู่ระหว่างหมายเลข VLAN กับหมายเลข VNI เข้าด้วยกัน (หนึ่งหมายเลข VNI จะสามารถจับคู่ได้กับหนึ่งหมายเลข VLAN เท่านั้น)

            จากภาพด้านบน เป็นลักษณะการใช้งาน VXLAN ที่จะช่วยให้สามารถติดต่อสื่อสารในระดับ Layer 2 ข้ามไปบนเครือข่าย Layer 3 ได้ โดยจะสามารถติดต่อสื่อสารระหว่าง VLAN ของทั้ง 2 site ได้ในลักษณะดังนี้
  • VLAN 100 กับ 4000 ของ VTEP 20.1.1.1 และ VLAN 100 กับ 400 ของ VTEP 10.1.1.1 จะไม่สามารถติดต่อสื่อสารข้าม site หรือข้ามเครือข่าย Layer 3 หากันได้ เนื่องจากไม่ได้มีการกำหนดหมายเลข VNI ของ VLAN ดังกล่าวไว้ใน VTI 
  • VLAN 200 ของ VTEP 20.1.1.1 จะสามารถติดต่อสื่อสารในระดับ Layer 2 กับ VLAN 200 ของ VTEP 10.1.1.1 ได้ เนื่องจากมีการกำหนดหมายเลข VNI ไว้ตรงกัน (VNI 200)
  • VLAN 2000 ของ VTEP 20.1.1.1 จะสามารถติดต่อสื่อสารในระดับ Layer 2 กับ VLAN 300 ของ VTEP 10.1.1.1 ได้ เนื่องจากมีการกำหนดหมายเลข VNI ไว้ตรงกัน (VNI 20000)
            จะเห็นว่าหมายเลข VLAN ของต้นทางและปลายทางไม่จำเป็นจะต้องตรงกัน ก็สามารถติดต่อสื่อสารในระดับ Layer 2 หากันได้ ขึ้นอยู่กับการจับคู่หมายเลข VLAN กับหมายเลข VNI ของแต่ละอุปกรณ์ โดย VXLAN จะสนใจแต่เพียงว่าหมายเลข VNI จะต้องตรงกันเท่านั้น จึงจะสามารถติดต่อสื่อสารในระดับ Layer 2 หากันได้

            โดยปกติสวิตซ์ที่มีการใช้งาน VLAN จะใช้งาน MAC address table เป็นตัวเก็บข้อมูลว่าอุปกรณ์ของ VLAN อะไรเชื่อมต่ออยู่ทางพอร์ตใดบ้าง แต่ในการใช้งาน VXLAN จะมีการสร้างฐานข้อมูลชนิดใหม่ขึ้นมา ที่เรียกว่า VXLAN address table สำหรับใช้ในการจับคู่ระหว่าง MAC address ของอุปกรณ์ฝั่งตรงข้ามกับหมายเลข VLAN และหมายเลข VTEP ปลายทาง เพื่อให้สามารถส่งข้อมูลระหว่าง VLAN กับ VTEP แต่ละตัวได้อย่างถูกต้อง โดยเมื่ออุปกรณ์ได้รับเฟรมเข้ามาจะมีการทำงานดังนี้
  1. ได้รับเฟรมที่มีปลายทางไปยังอุปกรณ์ฝั่งตรงข้ามเข้ามาทาง VTI
  2. VTEP จะตรวจสอบว่าได้รับเฟรมนั้นเข้ามาจากทาง VLAN อะไร และตรวจสอบว่า VLAN นั้นถูกจับคู่กับหมายเลข VNI อะไรเอาไว้
  3. ทำการห่อหุ้ม (encapsulation) เฟรมนั้นไว้ภายใน VXLAN header ที่จะมีหมายเลข VNI ตามที่กำหนดกำกับไว้อยู่
  4. ทำการส่งออกแพ็คเก็ตนั้นออกไปทางเครือข่าย Layer 3 ด้วย UDP port 4789 (default) ไปยัง VTEP ปลายทาง
  5. เมื่อ VTEP ปลายทางได้รับแพ็คเก็ต ก็จะทำการตรวจสอบหมายเลข VNI ที่อยู่ภายใน VXLAN header ว่าจับคู่กับ VLAN ปลายทางอะไร
  6. ทำการถอด VXLAN header ออกและส่งข้อมูลไปยัง VLAN ปลายทางต่อไป
* โดย default VXLAN จะใช้ UDP port 4789 (สามารถเปลี่ยนแปลงได้) เป็น destination port เสมอ ส่วน source port จะใช้หมายเลขแบบ dynamic โดยจะนำ header ภายในมาทำการ hash ให้ได้หมายเลข source port มาใช้งาน เพื่อให้สามารถทำ loadbalance ได้อย่างสะดวกมากยิ่งขึ้น

การตั้งค่า VXLAN บน Arista EOS


ขั้นตอนการตั้งค่า
  1. กำหนดหมายเลข IP address ให้กับอินเทอร์เฟส loopback เพื่อนำมาใช้งานเป็นหมายเลข VTEP ของอุปกรณ์
  2. ทำการสร้าง VTI และกำหนดหมายเลข UDP port (หากต้องการใช้ค่าอื่น ๆ นอกจากหมายเลข 4789)
  3. ทำการจับคู่หมายเลข VLAN ที่ต้องการส่งข้อมูลไปยังปลายทางเข้ากับหมายเลข VNI
  4. กำหนดการ flood ข้อมูลของแต่ละ VLAN ไปยังแต่ละ VTEP ปลายทาง
            สำหรับตัวอย่างการตั้งค่า VXLAN บน Arista EOS ในวันนี้ จะเป็นการเชื่อมต่อตามภาพด้านล่าง คือมีระบบเครือข่ายของ 2 site เชื่อมต่อเข้าหากันด้วยเครือข่ายในระดับ Layer 3 (leased-line, Fiber Optic, MPLS หรืออื่น ๆ) และมีความต้องการที่จะใช้งาน VXLAN เพื่อเชื่อมต่อเครือข่ายในระดับ Layer 2 ของทั้ง 2 site เข้าหากันตามภาพ ดังนี้
  • VLAN 10 ของ AS-SW01 เชื่อมต่อกับ VLAN 10 ของ AS-SW02
  • VLAN 20 ของ AS-SW01 เชื่อมต่อกับ VLAN 120 ของ AS-SW02


            แต่ก่อนที่จะทำการตั้งค่า VXLAN ได้นั้น จะต้องทำการตั้งค่า basic routing & switching กันก่อน เช่นการตั้งค่า VLAN, Trunk, กำหนด IP address ให้กับอินเทอร์เฟส, การทำ routing ไม่ว่าจะด้วยการใช้งาน static route หรือ dynamic route ซึ่งจะไม่ขอลงรายละเอียดในบทความนี้นะครับ

ตัวอย่างการตั้งค่า basic routing & switching บน AS-SW01 และ AS-SW02

hostname AS-SW01
!
vlan 10,20
!
interface Ethernet1
   no switchport
   ip address 100.100.100.2/30
!
interface Ethernet2
   switchport access vlan 10
!
interface Ethernet3
   switchport access vlan 20
!
ip route 0.0.0.0/0 100.100.100.1
!
router ospf 10
   network 0.0.0.0/0 area 0.0.0.0
   max-lsa 12000
!
hostname AS-SW02
!
vlan 10,120
!
interface Ethernet1
   no switchport
   ip address 200.200.200.2/30
!
interface Ethernet2
   switchport access vlan 10
!
interface Ethernet3
   switchport access vlan 120
!
ip route 0.0.0.0/0 200.200.200.1
!
router ospf 10
   network 0.0.0.0/0 area 0.0.0.0
   max-lsa 12000
!

ขั้นตอนที่ 1 การกำหนดหมายเลข IP address ให้กับอินเทอร์เฟส loopback เพื่อนำมาใช้งานเป็นหมายเลข VTEP

            เมื่อได้ทำการตั้งค่า basic routing & switching บนสวิตซ์ทั้งสองตัวเรียบร้อยแล้ว ในขั้นตอนต่อมาก็จะเป็นการเริ่มตั้งค่าในส่วนที่เกี่ยวข้องกับ VXLAN กันแล้วนะครับ สำหรับขั้นตอนแรกในการตั้งค่า VXLAN นั่นก็คือการกำหนดหมายเลข IP address ให้กับอินเทอร์เฟส loopback เพื่อที่จะนำมาใช้งานเป็นหมายเลข VTEP นั่นเองครับ (ในปัจจุบัน software version ที่ผมใช้งาน (4.14.5F) ยังไม่สามารถกำหนดหมายเลข VTEP จาก physical interface ได้จะต้องใช้งาน loopback interface เท่านั้น)

ตัวอย่างการตั้งค่าบนสวิตซ์ AS-SW01 และ AS-SW02

AS-SW01(config)#interface loopback 0
AS-SW01(config-if-Lo0)#ip address 10.1.1.1/24
AS-SW01(config-if-Lo0)#no shutdown
AS-SW01(config-if-Lo0)#exit

AS-SW02(config)#interface loopback 0
AS-SW02(config-if-Lo0)#ip address 20.1.1.1/24
AS-SW02(config-if-Lo0)#no shutdown
AS-SW02(config-if-Lo0)#exit

            เมื่อได้ทำการสร้างและกำหนดหมายเลข IP address ให้กับอินเทอร์เฟส loopback บนสวิตซ์ทั้งสองตัวเรียบร้อยแล้ว ก่อนที่จะสามารถใช้งาน VXLAN ได้ สวิตซ์ทั้งสองตัวจะต้องสามารถติดต่อสื่อสารไปยัง loopback IP address ของอุปกรณ์ฝั่งตรงกันข้ามได้ก่อน ซึ่งอาจจะต้องอาศัยการทำ routing บนอุปกรณ์อื่น ๆ เพิ่มเติมด้วยนะครับ ทั้งนี้เราสามารถใช้คำสั่ง ping  เพื่อตรวจสอบได้ว่าอุปกรณ์ทั้งสองตัวสามารถติดต่อกันด้วย loopback IP address ได้หรือไม่ครับ

AS-SW01#ping 20.1.1.1 source 10.1.1.1
PING 20.1.1.1 (20.1.1.1) from 10.1.1.1 : 72(100) bytes of data.
80 bytes from 20.1.1.1: icmp_req=1 ttl=63 time=27.3 ms
80 bytes from 20.1.1.1: icmp_req=2 ttl=63 time=20.7 ms
80 bytes from 20.1.1.1: icmp_req=3 ttl=63 time=25.1 ms
80 bytes from 20.1.1.1: icmp_req=4 ttl=63 time=28.9 ms
80 bytes from 20.1.1.1: icmp_req=5 ttl=63 time=24.4 ms

--- 20.1.1.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 107ms
rtt min/avg/max/mdev = 20.790/25.341/28.941/2.783 ms, pipe 2, ipg/ewma 26.803/26.406 ms
AS-SW01#

ขั้นตอนที่ 2 จะเป็นการสร้าง VTI และกำหนด source address (หรือหมายเลข IP address ของ VTEP) และอาจจะทำการกำหนดหมายเลข UDP port ที่ต้องการใช้งานด้วยก็ได้ (ถ้าหากว่าไม่ต้องการใช้งาน default port 4789)

ตัวอย่างการตั้งค่าบนสวิตซ์ AS-SW01 และ AS-SW02

AS-SW01(config)#interface vxlan 1
AS-SW01(config-if-Vx1)#vxlan source-interface loopback 0
AS-SW01(config-if-Vx1)#vxlan udp-port 5000
AS-SW01(config-if-Vx1)#show active
 interface Vxlan1
   vxlan source-interface Loopback0
   vxlan udp-port 5000

AS-SW02(config)#interface vxlan 1
AS-SW02(config-if-Vx1)#vxlan source-interface loopback 0
AS-SW02(config-if-Vx1)#vxlan udp-port 5000
AS-SW02(config-if-Vx1)#show active
 interface Vxlan1
   vxlan source-interface Loopback0
   vxlan udp-port 5000

            จากตัวอย่างด้านบน เป็นการตั้งค่าหมายเลข IP address ให้กับ VTEP ทั้งสองตัว โดยใช้งาน IP address ของอินเทอร์เฟส loopback มาใช้งาน จากนั้น ทำการเปลี่ยน UDP port จาก 4789 เป็น 5000 และทำการตรวจสอบการตั้งค่า ด้วยการใช้คำสั่ง "show active"

ขั้นตอนที่ 3 ทำการจับคู่หมายเลข VLAN กับหมายเลข VNI

            ในขั้นตอนนี้จะเป็นการจับคู่หมายเลข VLAN เข้ากับหมายเลข VNI (หนึ่งหมายเลข VLAN สามารถกำหนดได้กับหนึ่งหมายเลข VNI เท่านั้น) โดยหมายเลข VLAN ของอุปกรณ์ทั้งสองฝั่งไม่จำเป็นที่จะต้องตรงกันก็ได้ แต่จะต้องมีหมายเลข VNI ที่ตรงกัน เช่น ฝั่ง AS-SW01 กำหนดให้ VLAN 20 จับคู่กับ VNI 20 ส่วนฝั่ง AS-SW02 กำหนดให้ VLAN 120 จับคู่กับ VNI 20 ก็จะทำให้โฮสต์ที่อยู่ใน VLAN 20 และ 120 สามารถติดต่อสื่อสารกันได้ในระดับ Layer 2 เป็นต้น โดยในตัวอย่างการตั้งค่าในวันนี้จะทำการจับคู่ VLAN กับ VNI ดังนี้

  • สวิตซ์ AS-SW01
    • VLAN 10 กับ VNI 10
    • VLAN 20 กับ VNI 20
  • สวิตซ์ AS-SW02
    • VLAN 10 กับ VNI 10
    • VLAN 120 กับ VNI 20
ตัวอย่างการตั้งค่าบนสวิตซ์ AS-SW01 และ AS-SW02

AS-SW01(config)#interface vxlan 1
AS-SW01(config-if-Vx1)#vxlan vlan 10 vni 10
AS-SW01(config-if-Vx1)#vxlan vlan 20 vni 20
AS-SW01(config-if-Vx1)#show active
 interface Vxlan1
   vxlan source-interface Loopback0
   vxlan udp-port 5000
   vxlan vlan 10 vni 10
   vxlan vlan 20 vni 20

AS-SW02(config)#interface vxlan 1
AS-SW02(config-if-Vx1)#vxlan vlan 10 vni 10
AS-SW02(config-if-Vx1)#vxlan vlan 120 vni 20
AS-SW02(config-if-Vx1)#show active
 interface Vxlan1
   vxlan source-interface Loopback0
   vxlan udp-port 5000
   vxlan vlan 10 vni 10
   vxlan vlan 120 vni 20

ขั้นตอนที่ 4 การตั้งค่า Head-End Replication เพื่อกำหนดรูปแบบการ flood ข้อมูลไปยัง VTEP ปลายทาง

            ปกติแล้วในการส่งข้อมูลระดับ Layer 2 ระหว่างแต่ละ VTEP ของ VXLAN จะทำงานผ่าน multicast ซึ่งจะมีข้อจำกัดคือบนเครือข่าย Layer 3 ที่ทำการส่งข้อมูลระหว่างแต่ละ VTEP ให้จะต้องทำ multicast routing จำพวก PIM ให้ ไม่เช่นนั้นจะไม่สามารถทำการส่งข้อมูล Layer 2 ข้ามระหว่างแต่ละ VTEP ได้

            แต่บน Arista EOS นอกจากที่จะสามารถทำการส่งข้อมูลระดับ Layer 2 ข้ามไปบนเครือข่าย Layer 3 ด้วยการใช้ multicast (ด้วยการใช้คำสั่ง "vxlan multicast-group") เหมือนกับ VXLAN โดยทั่วไปได้แล้ว ยังจะสามารถทำการส่งข้อมูลระดับ Layer 2 ไปด้วย unicast ได้ด้วย ซึ่งจะมีข้อดีคือ บนเครือข่าย Layer 3 ที่ทำการส่งข้อมูลระหว่างแต่ละ VTEP ไม่จำเป็นจะต้องทำ multicast routing แต่อย่างใด โดยใช้งานเพียง IP routing แบบทั่วไปเท่านั้น

            การตั้งค่าให้ VTEP ทำการส่งข้อมูลในระดับ Layer 2 แบบ unicast ข้ามไปบนเครือข่าย Layer 3 จะเรียกว่าการทำ Head-End Replication ซึ่งจะรองรับการส่งข้อมูลทั้งแบบ broadcast, unknown unicast และ multicast (BUM) อีกทั้งยังสามารถกำหนด flooding list หรือรายการของ VTEP ที่ต้องการให้แต่ละ VLAN ทำการส่งข้อมูลไปให้ได้

ตัวอย่างการตั้งค่าบนสวิตซ์ AS-SW01 และ AS-SW02

AS-SW01(config)#interface vxlan 1
AS-SW01(config-if-Vx1)#vxlan vlan 10 flood vtep 20.1.1.1
AS-SW01(config-if-Vx1)#vxlan vlan 20 flood vtep 20.1.1.1
AS-SW01(config-if-Vx1)#show active
 interface Vxlan1
   vxlan source-interface Loopback0
   vxlan udp-port 5000
   vxlan vlan 10 vni 10
   vxlan vlan 20 vni 20
   vxlan vlan 10 flood vtep 20.1.1.1
   vxlan vlan 20 flood vtep 20.1.1.1

AS-SW02(config)#interface vxlan 1
AS-SW02(config-if-Vx1)#vxlan vlan 10 flood vtep 10.1.1.1
AS-SW02(config-if-Vx1)#vxlan vlan 120 flood vtep 10.1.1.1
AS-SW02(config-if-Vx1)#show active
 interface Vxlan1
   vxlan source-interface Loopback0
   vxlan udp-port 5000
   vxlan vlan 10 vni 10
   vxlan vlan 120 vni 20
   vxlan vlan 10 flood vtep 10.1.1.1
   vxlan vlan 120 flood vtep 10.1.1.1

จากตัวอย่างด้านบน เป็นการตั้งค่า Head-End Replication โดยมีรายละเอียดดังนี้

บนสวิตซ์ AS-SW01

  • ทำการ flood ทราฟิกของ VLAN 10 ไปยัง VTEP 20.1.1.1 (AS-SW02)
  • ทำการ flood ทราฟิกของ VLAN 20 ไปยัง VTEP 20.1.1.1 (AS-SW02)
บนสวิตซ์ AS-SW02

  • ทำการ flood ทราฟิกของ VLAN 10 ไปยัง VTEP 10.1.1.1 (AS-SW01)
  • ทำการ flood ทราฟิกของ VLAN 120 ไปยัง VTEP 10.1.1.1 (AS-SW01)
            เพียงเท่านี้ก็เสร็จสิ้นการตั้งค่า VXLAN บน Arista EOS กันแล้วครับ จะเห็นว่ามีเพียงไม่กี่ขั้นตอนเท่านั้น ถ้าจะนับบรรทัด การตั้งค่าบนสวิตซ์แต่ละตัวก็ใช้งานไม่ถึง 10 บรรทัดเท่านั้น จากนั้นถ้าทดลองใช้งานด้วยการ ping จากโอสต์ 192.168.10.11 จะพบว่าสามารถ ping ไปยังโฮสต์ 192.168.10.12 ที่อยู่ฝั่งตรงข้ามได้แล้วครับ

Host#ping 192.168.10.12 source 192.168.10.11

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.12, timeout is 2 seconds:
Packet sent with a source address of 192.168.10.11
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 60/115/176 ms

เมื่อทำการตั้งค่าเสร็จเรียบร้อยแล้ว เราก็จะสามารถทำการตรวจสอบการทำงานได้ด้วยคำสั่ง ดังนี้ครับ

  • show interface vxlan 1
  • show vxlan flood vtep
  • show vxlan address-table
AS-SW01(config)#show interfaces vxlan 1
Vxlan1 is up, line protocol is up (connected)
  Hardware is Vxlan
  Source interface is Loopback0 and is active with 10.1.1.1
  Replication/Flood Mode is headend with Flood List Source: CLI
  Remote MAC learning via Datapath
  Static vlan to vni mapping is
    [20, 20]          [10, 10]
  Headend replication flood vtep list is:
    10 20.1.1.1
    20 20.1.1.1
  VTEP learning restricted to::
    10    Any
    20    Any

AS-SW01(config)#show vxlan flood vtep
          Vxlan Flood Vtep Table
--------------------------------------------------------------------------------
Vlans                            Ip Address
-----------------------------   ------------------------------------------------
10,20                           20.1.1.1

AS-SW01(config)#show vxlan address-table
          Vxlan Mac Address Table
----------------------------------------------------------------------

Vlan  Mac Address     Type     Prt  Vtep             Moves   Last Move
----  -----------     ----     ---  ----             -----   ---------
  10  000c.2952.78de  DYNAMIC  Vx1  20.1.1.1         1       0:00:00 ago
  10  0050.56c0.0006  DYNAMIC  Vx1  20.1.1.1         1       0:00:17 ago
  10  c204.218c.0000  DYNAMIC  Vx1  20.1.1.1         1       0:00:14 ago
  20  000c.2952.78de  DYNAMIC  Vx1  20.1.1.1         1       0:00:05 ago
  20  0050.56c0.0007  DYNAMIC  Vx1  20.1.1.1         1       0:00:17 ago
  20  c205.1258.0000  DYNAMIC  Vx1  20.1.1.1         1       0:00:09 ago
Total Remote Mac Addresses for this criterion: 6

ตัวอย่างการ capture packet ด้วย wireshark จะเห็นว่ามี header 2 ชั้น ชั้นแรกจะเป็น VXLAN header ที่จะอยู่ภายใต้ UDP อีกที ส่วนชั้นที่สองคือ header ของแพ็คเก็ตต้นทาง


            เพียงเท่านี้ก็จะสามารถทำการส่งข้อมูลระดับ Layer 2 ข้ามไปบนเครือข่าย Layer 3 ได้แล้ว แต่โฮสต์ในแต่ละ VLAN จะสามารถติดต่อสื่อสารไปยัง โฮสต์ที่ใช้งาน subnetwork เดียวกันได้เท่านั้น จะยังคงไม่สามารถติดต่อสื่อสารข้ามไปยังเครือข่ายอื่น ๆ ได้ โดยถ้าหากต้องการจะให้โฮสต์สามารถติดต่อสื่อสารข้ามไปยัง subnetwork อื่น ๆ ได้นั้น ก็จะต้องทำการตั้งค่า VXLAN routing กันก่อน ซึ่งจะขอแสดงวิธีการทำแบบ Direct VXLAN Routing เป็นตัวอย่างนะครับ

การตั้งค่า Direct VXLAN Routing


            Direct VXLAN routing จะเป็นการตั้งค่าเพื่อทำให้โฮสต์ที่ใช้งานอยู่ภายในแต่ละ VLAN สามารถติดต่อสื่อสารข้ามไปยัง subnetwork อื่น ๆ นอกเหนือจากโฮสต์ที่ใช้งาน subnetwork เดียวกันได้ ในการตั้งค่าจะต้องทำการกำหนดหมายเลข virtual IP address ขึ้นมา เพื่อที่จะใช้งานเป็น gateway ของแต่ละ VLAN โดย virtual IP address ของแต่ละ VLAN นี้ สามารถตั้งค่าโดยใช้งานหมายเลข IP address เดียวกันในแต่ละ VTEP ได้ ทำให้โฮสต์ในแต่ละ VLAN ของทั้งสองฝั่งสามารถใช้งานหมายเลข gateway เป็นหมายเลข IP address เดียวกันได้

ตัวอย่างการตั้งค่าบนสวิตซ์ AS-SW01 และ AS-SW02

AS-SW01(config)#interface vlan 10
AS-SW01(config-if-Vl10)#ip address virtual 192.168.10.254/24
AS-SW01(config-if-Vl10)#exit
AS-SW01(config)#interface vlan 20
AS-SW01(config-if-Vl20)#ip address virtual 192.168.20.254/24
AS-SW01(config-if-Vl20)#exit

AS-SW02(config)#interface vlan 10
AS-SW02(config-if-Vl10)#ip address virtual 192.168.10.254/24
AS-SW02(config-if-Vl10)#exit
AS-SW02(config)#interface vlan 120
AS-SW02(config-if-Vl120)#ip address virtual 192.168.20.254/24
AS-SW02(config-if-Vl120)#exit

            เพียงเท่านี้โฮสต์ในแต่ละ VLAN ก็จะสามารถใช้งานหมายเลข IP address ที่กำหนดเป็น gateway เพื่อทำการติดต่อสื่อสารข้ามไปยัง Subnetwork อื่น ๆ นอกเหนือจาก subnetwork เดียวกันได้แล้ว ไม่ว่าจะเป็นการติดต่อสื่อสารระหว่าง VLAN บน VXLAN หรือไปยังเครือข่าย Layer 3 อื่น ๆ

Host#ping 192.168.10.12 source 192.168.10.11

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.12, timeout is 2 seconds:
Packet sent with a source address of 192.168.10.11
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 60/93/136 ms
Host#ping 192.168.20.12 source 192.168.10.11

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.20.12, timeout is 2 seconds:
Packet sent with a source address of 192.168.10.11
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 56/110/184 ms
Host#ping 8.8.8.8 source 192.168.10.11

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 8.8.8.8, timeout is 2 seconds:
Packet sent with a source address of 192.168.10.11
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 56/104/140 ms

No comments:

Post a Comment