ทำความรู้จักกับ Open vSwitch

Published on December 7, 2025
ทำความรู้จักกับ Open vSwitch

วันนี้เราจะพาท่านไปทำความรู้จักกับ Open vSwitch หนึ่งในโปรเจ็กต์ซอฟต์แวร์ ที่เป็นองค์ประกอบหรือว่า จิ๊กซอว์สำคัญในการทำ Software Defined Networking (SDN) เพราะว่าด้วยความสามารถของ Open vSwitch มันจะทำให้ท่านสามารถที่จะ ควบคุม และ บริหาร การทำงานของสวิตซ์ได้จากระดับซอฟต์แวร์ เช่นการสั่งการผ่าน API และ มันยังเป็นอิสระอย่างสิ้นเชิงกับ hardware หรือพูดง่ายๆ ท่านจะไม่ต้องผูกขาดกับผู้ผลิตฮาร์ดแวร์รายใดๆ เลย

ภาพรวม

Open vSwitch นั้นเป็นซอฟต์แวร์ทำหน้าที่สวิตซ์แบบหลายเลเยอร์ ทำหน้าที่เช่นเดียวกับสวิตซ์แบบฮาร์ดแวร์ทุกอย่าง ซึ่งหลักๆ ก็คือหน้าที่แบบ forwarding รวมถึงหน้าที่ที่เกี่ยวข้อง และ การควบคุม มันทำงานได้ดีและเหมาะมากๆ กับสภาพแวดล้อมแบบ VM มันทำงานข้าม physical host ได้ และ ทำงานได้ดีกับ KVM หรือ Kernel Virtual Machine

มันถูกพัฒนาด้วยภาษา C แบบไม่ยึดติดกับแพลตฟอร์ม และ ปัจจุบัน มีฟีเจอร์ดังต่อไปนี้

  • มาตรฐาน 802.1Q VLAN และ trunk รวมถึง access ports
  • การรวม NIC หรือเรียกว่า NIC bonding ไม่ว่าจะร่วมกับ LACP หรือไม่ก็ทำได้
  • NetFlow, sFlow(R) และการทำ port mirroring
  • Quality of Service (QOS)
  • Geneve, GRE, VXLAN, ERSPAN, GTP-U, SRv6 และ Bareudp
  • 802.1ag
  • OpenFlow 1.0 รวมถึงส่วนขยายอีกหลายตัว

Open vSwitch ทำงานได้ทั้งหมดในส่วนของ userspace โดยไม่ต้องการความช่วยเหลือจาก kernel module และมันสามารถเข้าถึง DPDK devices ได้

องค์ประกอบใน Open vSwitch

  • ovs-vswitchd ทำหน้าที่เป็น daemon
  • ovsdb-server เป็นฐานข้อมูลขนาดเล็กที่เก็บ configuration เพื่อใช้งานใน ovs-vswitchd
  • ovs-dpctl สำหรับการตั้งค่า switch kernel module
  • script สำหรับการกำหนด spec การสร้าง RPM หรือ deb สำหรับ Debian/Ubuntu
  • ovs-vsctl สำหรับการคิวรีและอัพเดท ค่าคอนฟิกใน ovs-vswitchd
  • ovs-appctl สำหรับการส่งคำสั่งไปยัง daemon ของ ovs-vswitchd ที่ทำงานอยู่

นอกจากนั้น ก็ยังมีเครื่องมีเหล่านี้

  • ovs-ofctl สำหรับการคิวรีและควบคุม OpenFlow
  • ovs-pki สำหรับการสร้าง public-key ใน OpenFlow switch
  • ovs-testcontroller สำหรับการทดสอบ

แล้วทำไมเราควรจะต้องใช้ Open vSwitch

Hypervisor นั้นจำเป็นที่ต้องมีความสามารถในการที่จะ Bridge ทรากฟิก ระหว่าง VM และ โลกภายนอก ใน hypervisor ที่ใช้ Linux หรือว่า KVM นั้น แน่นอนว่าสิ่งนี้เป็นไปได้โดยการใช้ L2 switch ที่มีอยู่แล้วใน Linux แต่นั่นหมายถึง ถ้าท่านใช้ hypervisor แบบ standalone และ เมื่อใดก็ตามที่ Hypervisor มีอยู่หลายเครื่อง และ ต้องการทำ bridge ข้าม จะเป็นไปไม่ได้ หรือพูดง่ายๆ ใน scale ที่ใหญ่ขึ้น Open vSwitch จะตอบโจทย์มากกว่า

state ของ virtual machines หรือว่า VMs ควรจะอยู่บ่งชี้และเปลี่ยนสถานนะ ได้ โดยคำว่า state ก็จะหมายถึง สถานะต่างๆ คือ การ learning table ใน Layer 2 รวมถึง L3 forwarding, policy routing state, ACL, QoS

ในสภาพแวดล้อมแบบ virtual นั้นโดยปกติแล้ว จะมีการเปลี่ยนแปลงอย่างรวดเร็ว เช่น การสร้างการลบ ซึ่งรวมถึงการเปลี่ยนแปลงด้านเน็ตเวิร์ก เช่นการเปลี่ยนแปลง IP การย้าย VLAN และด้วยความเปลี่ยนแปลงที่เร็วแบบนี้ และใน Open vSwitch นั้นก็มี network state database (OVSDB) เพื่อเก็บสถานะต่างๆ ไว้

สำหรับ Distributed virtual switch เช่น VMware vDS และ Cisco Nexus 1000V นั้นจะใช้การจัดการบริบทของระบบเชิงตรรกะ ด้วยการเพิ่มและการจัดการ tags ภายใน network packets เพื่อจะบ่งชี้ถึง VM ส่วนใน Open vSwitch นั้นก็จะใช้หลายๆ วิธีการในการใช้งานกับ tags นอกจากนั้นยังสนับสนุน GRE สำหรับการสร้าง GRE tunnels ซึ่งใช้เพื่อสร้าง private VM networks

 

Migrate VMware virtual machines to Hyper-V in WAC

Windows Admin Center หรือ WAC นั้นเป็นเครื่องมือในการบริหาร Windows Server ที่เข้ามาแทน Microsoft...

Read more »

Understanding UUID

UUID นั้นต้องเรียกได้ว่ามีข้อถกเถียงกันมานานมา ในการใช้ในการเขียนโปรแกรมและการออกแบบดาต้าเบส วันนี้เราจะไปศึกษาว่ามันคืออะไร และ ในการออกแบบฐานข้อมูลมันเข้ามามีบทบาทอย่างไร UUID คืออะไร UUID ย่อมาจาก...

Read more »

วันสิ้นสุด License Perpetual ของ VMware มาถึงแล้ว รีบย้ายไป Proxmox VE กันเถอะ

ตอนที่ VMware ประกาศว่าจะออก ESXi 9 มานั้น ทุกคนในวงการก็คิดว่า มันน่าจะมาพร้อมการอัพเดทบางส่วนเหมือนทุกๆ ครั้งที่ผ่านมาเช่น การเพิ่มการสนับสนุนฮาร์ดแวร์...

Read more »

Garage ทางเลือกในการแทนที่ MinIO

MinIO นั้นเป็นซอฟต์แวร์ที่จะทำให้เราสามารถเก็บข้อมูลในลักษณะที่เป็น Object ได้ และ เรียกว่าเป็นตัวเลือกที่มีอยู่ไม่มากนักในท้องตลาดหากท่านต้องการจะสร้าง Object Storage Server เพื่อใช้ภายในองค์กร...

Read more »

Time Range Booking System

Time Range Booking คืออะไร และทำไมธุรกิจยุคใหม่จำเป็นต้องใช้ ในยุคที่ลูกค้าคาดหวัง ความรวดเร็วและความแม่นยำ มากขึ้น ระบบจองแบบเดิมที่เลือกแค่วันที่หรือรอบเวลา (slot...

Read more »

เพิ่มขีดความสามารถของ WordPress ด้วยการเชื่อมต่อ External API

WordPress คืออะไร WordPress คือระบบ CMS (Content Management System) แบบโอเพนซอร์ส ที่ใช้สำหรับสร้างเว็บไซต์โดยไม่จำเป็นต้องเขียนโค้ดเองเลย...

Read more »