Home » Software Defined Networking (SDN): OpenFlow และ Controller-Based Network
Software Defined Networking (SDN): OpenFlow และ Controller-Based Network
Software Defined Networking (SDN): OpenFlow และ Controller-Based Network
SDN (Software Defined Networking) คือสถาปัตยกรรม network ที่แยก control plane ออกจาก data plane โดยรวม control plane ไว้ที่ centralized controller ทำให้สามารถ program network ได้จากจุดเดียว มีความยืดหยุ่นสูง automate ได้ง่าย และมองเห็น network ทั้งหมดจาก single pane of glass
Traditional networking ทุก switch/router มี control plane + data plane ในตัว ทำให้ config ทีละตัว ยาก automate และ change management ซับซ้อน SDN แก้ปัญหานี้โดยย้าย intelligence ไปที่ controller กลาง switches เหลือแค่ forward packets ตาม instructions จาก controller บทความนี้จะอธิบาย SDN architecture, OpenFlow protocol และ SDN controllers
Traditional vs SDN
คุณสมบัติ
Traditional Networking
SDN
Control Plane
Distributed (ทุก device มีเอง)
Centralized (controller)
Configuration
CLI per device (ทีละตัว)
Central controller (ทุกตัวพร้อมกัน)
Automation
ยาก (vendor-specific CLI)
ง่าย (APIs, programmable)
Visibility
Per-device view
Network-wide view (single pane)
Agility
ช้า (manual changes)
เร็ว (automated, API-driven)
Vendor Lock-in
สูง (proprietary features)
ลดลง (open standards/APIs)
SDN Architecture
3 Layers
Layer
บทบาท
Components
Application Layer
Business applications ที่ใช้ network services
Network monitoring, security, load balancing apps
Control Layer
SDN Controller: brain ของ network
OpenDaylight, ONOS, Floodlight, VMware NSX
Infrastructure Layer
Physical/Virtual switches ที่ forward packets
OpenFlow switches, OVS, physical switches
Interfaces
Interface
ระหว่าง
Protocol/API
Northbound API
Application ↔ Controller
REST API, Python SDK
Southbound API
Controller ↔ Infrastructure
OpenFlow, NETCONF, gRPC
Eastbound/Westbound
Controller ↔ Controller
Cluster communication
OpenFlow Protocol
Southbound Protocol สำหรับ SDN
OpenFlow (ONF standard) เป็น protocol ที่ controller ใช้สั่ง switch: Controller ส่ง flow rules ไปยัง switch Switch match packets กับ flow rules → ทำ action ตามที่กำหนด ถ้าไม่มี matching rule → ส่ง packet ไป controller เพื่อตัดสินใจ
Flow Table Entry
Field
รายละเอียด
Match Fields
เงื่อนไข match (src/dst IP, MAC, port, VLAN, protocol)
Priority
ลำดับความสำคัญ (สูงกว่า match ก่อน)
Actions
สิ่งที่ทำเมื่อ match: forward, drop, modify, send to controller
Counters
นับจำนวน packets/bytes ที่ match
Timeouts
Idle timeout, hard timeout (auto-remove rule)
SDN Controllers
Controller
License
Language
จุดเด่น
OpenDaylight (ODL)
Open-source (Eclipse)
Java
Feature-rich, enterprise-grade, modular
ONOS
Open-source (Apache)
Java
Carrier-grade, high availability, scalable
Floodlight
Open-source (Apache)
Java
Simple, easy to learn, good for education
Ryu
Open-source (Apache)
Python
Lightweight, Python-based, good for prototyping
VMware NSX
Commercial
–
Network virtualization, micro-segmentation
Cisco ACI
Commercial
–
Data center SDN, policy-based automation
Arista CloudVision
Commercial
–
Campus/DC automation, streaming telemetry
SDN Use Cases
Use Case
วิธีใช้ SDN
ประโยชน์
Data Center
VMware NSX, Cisco ACI → virtual networks, micro-segmentation
Agility, security, multi-tenancy
Campus Network
Cisco DNA Center, Arista CV → policy-based automation
Simplified management, consistency
WAN
SD-WAN (Viptela, Velocloud) → centralized WAN control
Cost reduction, cloud connectivity
Service Provider
ONOS, ODL → network slicing, service chaining
New services, flexibility
Network Security
Dynamic ACLs, automated quarantine
Fast response to threats
Load Balancing
Programmable traffic distribution
Application-aware load balancing
Open vSwitch (OVS)
Virtual Switch สำหรับ SDN
OVS เป็น open-source virtual switch ที่รองรับ OpenFlow: ใช้ใน virtualization platforms (KVM, Xen, Docker) รองรับ VLAN, VXLAN, GRE, Geneve tunneling สามารถ control จาก SDN controller ผ่าน OpenFlow เป็น foundation ของ network virtualization (OpenStack Neutron, OVN)
Challenges
Challenge
รายละเอียด
วิธีรับมือ
Controller = Single Point of Failure
ถ้า controller ล่ม network ทำงานไม่ได้
Controller clustering (HA)
Scalability
Controller ต้อง handle ทุก flow decision
Proactive flow rules, distributed controllers
Security
Controller เป็น high-value target
Secure controller access, TLS encryption
Interoperability
ไม่ทุก vendor support OpenFlow
ใช้ vendor-specific SDN (NSX, ACI) หรือ hybrid
Skills Gap
ต้องมี programming skills (Python, REST API)
Training, start with vendor solutions
ทิ้งท้าย: SDN เปลี่ยนวิธีจัดการ Network
SDN ทำให้ network เป็น programmable, automated และ agile OpenFlow เป็น standard southbound protocol แต่ vendor-specific SDN (NSX, ACI) เป็นที่นิยมมากกว่าในองค์กร เริ่มจาก SD-WAN หรือ data center SDN ก่อน (proven use cases) ต้องมีทีมที่มี programming + networking skills
อ่านเพิ่มเติมเกี่ยวกับ SD-WAN และ Network Automation Ansible ที่ siamlancard.com หรือจาก icafeforex.com และ siam2r.com