Proxmox VE Software-Defined Network (SDN) และการออกแบบ Redundant Network Fabric สำหรับองค์กร
คู่มือปฏิบัติการตั้งค่า Software-Defined Network บน Proxmox VE 9.2 ตั้งแต่การติดตั้งแพ็กเกจพื้นฐาน การสร้าง Zone, VNet และ Subnet ไปจนถึงการวางโครงข่ายแบบ Redundant Fabric เพื่อแยกทราฟฟิกคลัสเตอร์ สตอเรจ และเครื่องเสมือนออกจากกัน
ปัญหาและโจทย์
การวางโครงข่ายให้ระบบเสมือนจริงในองค์กร มักเริ่มต้นด้วยวิธีที่ตรงไปตรงมา คือ สร้าง Linux Bridge ต่อพอร์ตกายภาพบนแต่ละโหนด แล้วกำหนด VLAN Tag ให้กับเครื่องเสมือนเป็นรายเครื่อง วิธีนี้ใช้ได้ดีเมื่อมีเครื่องเสมือนไม่กี่สิบเครื่อง แต่จะเริ่มกลายเป็นภาระเมื่อโครงสร้างเติบโตขึ้น
ปัญหาที่พบเป็นประจำคือ ค่าคอนฟิกเครือข่ายถูกเก็บไว้ที่แต่ละโหนดแยกกัน การแก้ไขจึงต้องเข้าไปทำซ้ำทุกเครื่อง และเสี่ยงต่อความไม่สอดคล้องกันของค่า VLAN หรือ MTU ระหว่างโหนด ที่รุนแรงกว่านั้นคือ การนำทราฟฟิกคลัสเตอร์ สตอเรจ และเครื่องเสมือนมาใช้โครงข่ายร่วมกัน ทำให้ทราฟฟิกปริมาณมากกวนกันเอง จน Corosync ซึ่งไวต่อ Latency สูญเสีย Quorum
นอกจากนี้ งานที่ต้องแยกเครือข่ายให้ทีมหรือลูกค้าแต่ละราย (Multitenancy) บนระบบเสมือนชุดเดียวกัน ยังต้องอาศัยการบริหาร VLAN ที่ซับซ้อนและตรวจสอบย้อนหลังได้ยาก
แนวทางการแก้ปัญหา: โมเดล Zone, VNet และ Subnet
Software-Defined Network (SDN) ใน Proxmox VE แก้โจทย์นี้ด้วยการย้ายการนิยามเครือข่ายจากระดับโหนดขึ้นมาเป็นระดับคลัสเตอร์ โดยใช้โครงสร้างสามชั้นที่ต้องทำความเข้าใจก่อนเริ่มตั้งค่า
1. Zone (พื้นที่เครือข่ายที่แยกออกจากกัน)
- Simple: สร้างบริดจ์แบบแยกส่วน ไม่ผูกกับพอร์ตกายภาพ เหมาะกับเครือข่ายทดสอบหรือ NAT ภายใน
- VLAN: ใช้ VLAN Tag แบบดั้งเดิมบนบริดจ์ที่รองรับ VLAN ของแต่ละโหนด ใช้ได้ทั้งคลัสเตอร์
- QinQ: VLAN ซ้อนชั้น (Service VLAN + VNet Tag) สำหรับการแยกเช่าแบบหลายชั้น
- VXLAN: Overlay Layer 2 ผ่าน UDP พอร์ต 4789 รองรับการเชื่อมหลายไซต์
- EVPN: VXLAN ที่มี BGP เป็น Control Plane ทำให้เส้นทางเป็น Layer 3 แบบ Routable ข้ามคลัสเตอร์
2. VNet และ 3. Subnet
- VNet: เครือข่ายเสมือนที่สังกัดอยู่ใน Zone หนึ่ง เมื่อสร้างเสร็จจะปรากฏเป็นอินเทอร์เฟซชื่อเดียวกันบนทุกโหนดโดยอัตโนมัติ
- Subnet: ช่วง IP ภายใน VNet ระบุเป็น CIDR เช่น 10.20.30.0/24 พร้อมกำหนด Gateway ได้
- IPAM และ DHCP: จัดสรร IP ให้เครื่องเสมือนอัตโนมัติผ่าน IPAM Plugin (ปัจจุบัน DHCP อยู่ในสถานะ Tech Preview)
- การไหลของนโยบาย: คอนฟิกทั้งหมดถูกเก็บใน /etc/pve/sdn และกระจายไปทุกโหนดผ่าน pmxcfs
สถานะการสนับสนุนที่ต้องทราบก่อนตัดสินใจ: ตามเอกสารทางการของ Proxmox VE โครงสร้าง SDN แกนหลัก (VNet และการผสานรวมกับระบบ) ได้รับการสนับสนุนเต็มรูปแบบแล้ว ส่วน IPAM ซึ่งรวมถึง DHCP สำหรับเครื่องเสมือน และการ Routing ขั้นสูงผ่าน FRRouting พร้อมการทำงานของ Controller ยังอยู่ในสถานะ Tech Preview
ขั้นตอนการตั้งค่า Software-Defined Network บน Proxmox VE 9.2
ขั้นที่ 1: ตรวจสอบและติดตั้งแพ็กเกจพื้นฐาน
ระบบที่ติดตั้งใหม่ตั้งแต่ Proxmox VE 8.1 เป็นต้นมา มีแพ็กเกจ SDN แกนหลักติดตั้งมาให้แล้ว หากเป็นระบบที่อัปเกรดจากเวอร์ชันเก่า ต้องติดตั้งแพ็กเกจเพิ่มบนทุกโหนดในคลัสเตอร์
apt update apt install libpve-network-perl
จากนั้นตรวจสอบว่าแพ็กเกจ ifupdown2 ซึ่งเป็นตัวจัดการอินเทอร์เฟซที่ระบบใช้ มีอยู่จริง (Proxmox VE 7.0 ขึ้นไปติดตั้งให้ตั้งแต่แรก) และตรวจสอบบรรทัดสุดท้ายของไฟล์ /etc/network/interfaces ว่ามีบรรทัดนี้อยู่ เพื่อให้คอนฟิก SDN ที่ระบบสร้างขึ้นถูกเรียกใช้งาน
source /etc/network/interfaces.d/*
ขั้นที่ 2: เตรียมฟีเจอร์เสริมตามความจำเป็น (Optional)
หากต้องการให้ระบบแจก IP ให้เครื่องเสมือนอัตโนมัติผ่าน DHCP ให้ติดตั้ง dnsmasq บนทุกโหนด แล้วปิดอินสแตนซ์เริ่มต้นเพื่อไม่ให้ชนกับตัวที่ Proxmox VE เรียกใช้เอง สำหรับการ Routing ขั้นสูงผ่าน FRRouting ต้องติดตั้งแพ็กเกจเพิ่มและเปิดเซอร์วิส
# DHCP integration (IPAM) apt install dnsmasq systemctl disable --now dnsmasq # FRRouting สำหรับ SDN Routing และ Controller apt install frr-pythontools systemctl enable frr.service
ขั้นที่ 3: สร้าง Zone
เข้าเมนู Datacenter → SDN → Zones แล้วกด Add เพื่อสร้าง Zone ตามประเภทที่เลือก โดยมีเงื่อนไขที่ต้องจัดเตรียมล่วงหน้าดังนี้
- VLAN Zone: ต้องมีบริดจ์หรือ OVS Switch ที่คอนฟิกไว้แล้วบนทุกโหนด และมีเส้นทางเชื่อมระหว่างโหนด
- QinQ Zone: สวิตช์กายภาพต้องรองรับ Stacked VLAN และต้องลด MTU ลง 4 ไบต์ (จาก 1500 เหลือ 1496) เนื่องจากมี Tag ซ้อนสองชั้น
- VXLAN Zone: ต้องเตรียม Underlay ให้มีการเชื่อมต่อ UDP ถึงกันได้ และลด MTU ลง 50 ไบต์จากอินเทอร์เฟซกายภาพ และควรมี Site-to-Site VPN กำกับเพราะ VXLAN ไม่เข้ารหัสข้อมูลด้วยตัวเอง
- EVPN Zone: ต้องมี EVPN Controller และเปิด FRR บนทุกโหนด โดยค่า MTU มีค่าตั้งต้นที่ 1450
ขั้นที่ 4: สร้าง VNet และ Subnet
ไปที่ Datacenter → SDN → VNets แล้วกำหนดค่าที่สำคัญ ได้แก่ ID (ไม่เกิน 8 ตัวอักษร) Zone ที่สังกัด Tag ซึ่งคือ VLAN ID หรือ VXLAN ID ของเครือข่ายนั้น และเปิดตัวเลือก VLAN Aware หากต้องการให้ผู้ดูแลตั้งค่า VLAN ภายในเครื่องเสมือนเองได้
ตัวเลือกที่ควรใช้อย่างระมัดระวังคือ Isolate Ports ซึ่งกำหนดให้พอร์ตของเครื่องเสมือนใน VNet สื่อสารกันเองไม่ได้ โดยต้องรีสตาร์ทเครื่องเสมือนที่เกี่ยวข้องเพื่อให้ค่ามีผล และเนื่องจากการแยกพอร์ตมีผลเฉพาะภายในโหนดเดียวกัน เอกสารทางการจึงแนะนำให้ใช้ VNet Firewall ร่วมด้วยเมื่อต้องการแยกทราฟฟิกข้ามโหนด
# ตัวอย่างการกำหนด Subnet ภายใน VNet
Subnet ID : 10.20.30.0/24
Gateway : 10.20.30.1
SNAT : เปิดเฉพาะเมื่อต้องการให้เครื่องเสมือนออกอินเทอร์เน็ต
ผ่านอินเทอร์เฟซขาออกของโหนด (ใช้ได้กับ Zone แบบ Layer 3)
ขั้นที่ 5: Apply Pending Changes
ข้อควรระวังที่ผู้ดูแลระบบใหม่มักเข้าใจผิด คือ การกดสร้าง Zone หรือ VNet จะยังไม่ทำให้เครือข่ายทำงานทันที ค่าที่แก้ไขจะถูกบันทึกเป็นรายการรอ (Pending) ก่อน จากนั้นจึงเข้าไปที่หน้า SDN หลัก แล้วกด Apply เพื่อให้ระบบนำการเปลี่ยนแปลงทั้งหมดในรอบเดียวไปใช้งานพร้อมกัน ซึ่งช่วยลดความเสี่ยงที่เครือข่ายจะอยู่ในสถานะกึ่งกลาง
ระบบติดตามสถานะที่นำไปใช้จริงแล้วผ่านไฟล์ .running-config และ .version ในไดเรกทอรี /etc/pve/sdn จึงสามารถใช้ตรวจสอบย้อนหลังได้ว่าโหนดใดนำคอนฟิกไปใช้แล้วบ้าง
การออกแบบ Redundant Network Fabric คู่กับ SDN
SDN ทำงานในชั้น Overlay แต่ความเสถียรที่แท้จริงมาจากชั้น Underlay การออกแบบที่ถูกต้องคือ แยกทราฟฟิกออกเป็นเครือข่ายอิสระต่อกัน เพื่อป้องกันไม่ให้ปริมาณข้อมูลของสตอเรจไปรบกวนคลัสเตอร์ที่ไวต่อเวลา
- Corosync Cluster Ring: ควรเป็นเครือข่ายเฉพาะสำหรับ Heartbeat และสถานะคลัสเตอร์ โดยเอกสารทางการของ Ceph ระบุว่าควรใช้เครือข่ายขนาด 1 Gbps ที่แยกออกจากทราฟฟิกอื่นโดยเฉพาะ
- Ceph Public และ Cluster Network: แนะนำอย่างน้อย 10 Gbps และใช้การ์ดแยกจากเครือข่ายอื่น โดยในระบบประสิทธิภาพสูงมีคำแนะนำให้พิจารณา 25 Gbps ขึ้นไป หรือมากกว่า เพื่อให้สอดคล้องกับความเร็วของ NVMe
- VM Traffic: ให้วิ่งผ่าน VNet ที่สร้างจาก SDN พร้อม Bonding แบบ LACP บนพอร์ตกายภาพคู่
- Fabrics (Proxmox VE 9.0 ขึ้นไป): SDN รองรับการสร้าง Fabric ด้วยโปรโตคอล OpenFabric และ OSPF เพื่อสร้าง Underlay แบบ Routed ระหว่างโหนดอัตโนมัติ ใช้เป็นฐานของคลัสเตอร์ Full-Mesh หรือเป็น Underlay ของ Overlay ได้
ขอบเขตและศักยภาพบริการ: เปรียบเทียบประเภท Zone
| หัวข้อเปรียบเทียบ | Simple | VLAN | QinQ | VXLAN | EVPN |
|---|---|---|---|---|---|
| การเชื่อมต่อระหว่างโหนด | ไม่เชื่อม (Local) | เชื่อมผ่าน VLAN | เชื่อมผ่าน VLAN ซ้อนชั้น | Overlay ผ่าน UDP 4789 | Overlay + BGP Routing |
| สิ่งที่ต้องเตรียมบนสวิตช์ | ไม่มี | VLAN Tag มาตรฐาน | ต้องรองรับ Stacked VLAN | เส้นทาง IP ระหว่างโหนด | เส้นทาง IP + นโยบาย Routing |
| ข้อควรระวังด้าน MTU | ไม่มี | ไม่มี | ลด 4 ไบต์ (1500 → 1496) | ลด 50 ไบต์ | ค่าเริ่มต้น 1450 |
| ความเหมาะสมกับการใช้งาน | ทดสอบ / NAT ภายในโหนด | คลัสเตอร์ภายในศูนย์ข้อมูลเดียว | แยกเช่าหลายชั้น | เชื่อมหลายไซต์ผ่าน Layer 2 | เครือข่าย Routable ข้ามศูนย์ข้อมูล |
| สถานะการสนับสนุน | สนับสนุนเต็มรูปแบบ | สนับสนุนเต็มรูปแบบ | สนับสนุนเต็มรูปแบบ | สนับสนุนเต็มรูปแบบ | Routing ผ่าน FRR ยังเป็น Tech Preview |
ผลลัพธ์และประโยชน์
- แก้ไขครั้งเดียวใช้ทั้งคลัสเตอร์: คอนฟิกเครือข่ายถูกเก็บที่ส่วนกลางและกระจายอัตโนมัติ ลดความผิดพลาดจากการตั้งค่าไม่ตรงกันระหว่างโหนด
- ทราฟฟิกไม่กวนกัน: แยกเครือข่ายคลัสเตอร์ สตอเรจ และเครื่องเสมือนออกจากกัน ป้องกันปัญหา Quorum ขาดจากการรบกวนของทราฟฟิกปริมาณมาก
- รองรับ Multitenancy: การใช้ QinQ หรือ VNet แยกตามหน่วยงาน ช่วยแยกเครือข่ายได้อย่างชัดเจนและตรวจสอบย้อนหลังได้
- ปรับใช้แบบ Atomic: กลไก Pending Changes ทำให้การปรับเครือข่ายหลายรายการถูกนำไปใช้พร้อมกันในรอบเดียว ลดช่วงเวลาเสี่ยงที่เครือข่ายกึ่งพร้อมใช้งาน
จุดเด่นของเรา
- ออกแบบ Underlay และ Overlay ควบคู่กัน: เราเริ่มจากการวางแผนโครงข่ายกายภาพ สวิตช์ และ MTU ให้สอดคล้องกันก่อนสร้าง SDN เพื่อไม่ให้เกิดปัญหาที่ชั้นล่างในภายหลัง
- ทดสอบก่อนส่งมอบงานจริง: เราจำลองเหตุการณ์พอร์ตขัดข้อง ตัดเส้นทางสำรอง และตรวจสอบเสถียรภาพของทราฟฟิกคลัสเตอร์ต่อหน้าลูกค้าทุกโครงการ
- ย้ายระบบจากแพลตฟอร์มเดิม: ให้บริการแปลงและย้ายเครื่องเสมือนจาก VMware ESXi, Hyper-V หรือเซิร์ฟเวอร์กายภาพ สู่ Proxmox Virtual Environment
- ดูแลต่อเนื่องพร้อมเอกสารระบบ: จัดทำเอกสารโครงสร้างเครือข่าย แผนภาพ และคู่มือปฏิบัติการส่งมอบให้ทีมไอทีขององค์กรใช้งานต่อได้ทันที
ต้องการออกแบบโครงข่าย SDN บน Proxmox Virtual Environment สำหรับองค์กรคุณหรือไม่
หากองค์กรของคุณกำลังวางแผนแยกเครือข่ายคลัสเตอร์ สตอเรจ และเครื่องเสมือนออกจากกัน หรือต้องการคำปรึกษาการวางโครงข่ายแบบ Redundant Fabric บน Proxmox Virtual Environment 9.2 ทีมวิศวกรของเรายินดีร่วมวิเคราะห์และออกแบบให้สอดคล้องกับโครงสร้างปัจจุบันของท่าน