เชื่อมเน็ตเวิร์กกับแอพด้วย SDN
โดย คุณวสันต์ พรมสิทธิ์ Network Solutions Specialist-The Communication Solution
หลายๆ ท่าน คงจะได้ยิน Software-Defined Networking (SDN) มาบ้างแล้วนะครับ เพราะเป็นหัวข้อที่ถูกกล่าวถึงมากในช่วง 2-3 ปีที่ผ่านมา และโดยเฉพาะปีนี้ ผู้ผลิตอย่าง VMware ซึ่งเป็นเจ้าตลาดด้าน Virtualization ของ Server ได้นำโซลูชั่นที่ใช้หลักการ SDN เพื่อทำให้ Network ใน Data Center ถูกจัดการได้ในรูปแบบ Virtualization เช่นเดียวกับที่ทำได้กับ Server ซึ่งเรียกว่า Network Virtualization ทำให้การ Provision Infrastructure ของ Data Center โดยเฉพาะอย่างยิ่ง Data Center แบบ Cloud จากเดิมที่ทำได้เฉพาะ Compute กับ Storage ก็จะสามารถ Provision Network Infrastructure ให้กับ Compute ได้ด้วย และทั้งหมดถูกบริหารจัดการผ่านซอฟต์แวร์ Orchestration เดียวกัน
หลักการของ SDN
คือ วิธีการใหม่ในการ ออกแบบ สร้าง และจัดการ Network เพื่อให้ตอบสนองธุรกิจได้อย่างทันท่วงที ถ้าเปรียบเทียบกับการ สร้างและจัดการ Server ในรูปแบบ Server Virtualization ทุกท่านคงจะนึกออก ว่าเราสามารถ สร้าง Server หรือ Compute ได้ภายในไม่กี่นาที ในขณะที่ Network ต้องการการจัดการที่ยากกว่า
รูปแบบของ SDN
ในการที่จะทำให้การจัดการง่ายนั้น Network จะต้องถูกควบคุมจากศูนย์กลาง ไม่ว่าจะเป็น Policy หรือการออกแบบเส้นทางของ Network จะถูกคำนวณจากส่วนกลาง ซึ่งจะถูกเรียกว่า SDN Controller ส่วนอุปกรณ์ Network ไม่ว่าจะเป็น Network Switch, Router ทั้งที่เป็น Physical และ Virtual เช่น Virtual Switch ใน Hypervisor จะถูก SDN Controller ควบคุมทั้งหมด (หรือบางส่วน ขึ้นอยู่กับรูปแบบ SDN) อุปกรณ์ Network เหล่านั้นจะทำหน้าที่แค่ส่งข้อมูลตามที่ SDN Controller ได้ Program ไว้ ตัวอย่างมาตรฐานที่ใช้ Program อุปกรณ์ Network ของ SDN Controller คือ OpenFlow, OVSDB ซึ่งเราจะรวมเรียกว่า Southbound API หรือ Device Control Protocol โดย Software เช่น Orchestration จะสั่งงาน Network ผ่าน Northbound API เช่น REST API
Gartner ได้แบ่งรูปแบบ SDN ออกเป็น 3 แบบ คือ
- Overlay-Based SDN รูปแบบนี้เห็นได้ชัดใน Data Center คือ SDN Controller จะควบคุม อุปกรณ์ Network เฉพาะต้นทาง และปลายทาง ไม่ควบคุมอุปกรณ์ Network ระหว่างทาง (Underlay) ส่วนใหญ่วิธีการนี้ SDN Controller จะ Program หรือควบคุม Virtual Switch ที่อยู่ใน Hypervisor เพื่อทำให้ Virtual Machine (VM) ต้นทาง และปลายทาง อยู่ใน Logical Network เดียวกัน (เรียกว่า Network Virtualization) ทำให้ Software Orchestration ก็จะสามารถจัดการ Virtual Machine สองตัวนี้เสมือนอยู่ใน Virtual Switch เดียวกัน ถึงแม้ว่า ในความเป็นจริง จะมีอุปกรณ์ Existing Network ที่ซับซ้อนอยู่ด้านล่าง (Underlay) และ Server Host สองตัวนี้ อยู่คนละ Data Center กันก็ตาม
Protocol ของการทำ Overlay SDN ที่นิยมในปัจจุบันคือ VxLAN ซึ่ง VMWare เป็นผู้ผลักดัน โดยนำเสนอ SDN Controller ของตัวเองด้วย ซึ่งก็คือ NSX นั่นเอง
- Hybrid-Based SDN คล้ายกับแบบแรก เพียงแต่ข้อจำกัด ของแบบแรกคือ ไม่สามารถเชื่อมต่อกับระบบ Network เดิมที่ไม่รองรับ SDN หรือ ถ้าต้องการให้ Physical Server (Bare Metal Server) กับ Virtual Machine เชื่อมต่อกันเหมือนอยู่ใน Local Network เดียวกัน
Hybrid SDN ต้องการอุปกรณ์ Gateway ที่รองรับการ Program ได้ด้วย SDN Controller ผ่าน SDN เช่น Open Flow, OVSDB และยังต้องเข้าใจ Protocol ที่ใช้ทำ Overlay SDN เช่น VxLAN ด้วย
ปัจจุบันผู้ผลิตอุปกรณ์ Data Center Switch อย่าง Arista Networks ก็ได้นำเสนอ Solution Top-of-Rack Switch ที่รองรับการเป็น Gateway ให้กับ SDN แบบนี้ โดยรองรับ Controller NSX ของ VMWare และรองรับ Protocol VxLAN ด้วย
- Device-Base SDN โดย SDN รูปแบบนี้ ตัว SDN Controller จะเข้าไป program flow หรือควบคุมอุปกรณ์ network ทั้งหมด เพื่อให้ได้รูปแบบ end-to-end ซึ่งจะสามารถตอบสนอง application ได้หลากหลายมากกว่า 2 แบบแรก แต่มีค่าใช้จ่ายในการปรับเปลี่ยนอุปกรณ์ network เพื่อให้รองรับ สำหรับ SDN แบบนี้จะมีทั้งที่เป็น proprietary ของผู้ผลิตอุปกรณ์ network และทั้งที่รองรับ SDN controller แบบ open ตัวอย่าง SDN controller คือ Open Daylight ซึ่งใช้ OpenFlow เป็นตัว program อุปกรณ์ network
นอกจากนี้ Open Daylight Controller (Helium) ยังถูกใช้ใน OpenStack framework เพื่อเป็น Network Infrastructure ให้กับ Cloud และทำงานได้ทั้ง Overlay และ Hybrid-Based SDN ดังนั้น OpenStack+Open Daylight ก็จะเป็นคู่แข่งของ vCloud+NSX ของฝั่ง VMWare อย่างหลีกเลี่ยงไม่ได้
Service Chaining และ Network Function Virtualization
นอกจาก SDN จะออกแบบ หรือ Program การเชื่อมต่อ (Connectivity) แล้ว ยังสามารถกำหนด Policy ในการเชื่อมต่อด้วย ว่าแต่ละเส้นทาง จะต้องผ่าน Network Service อะไรบ้าง เช่น Firewall, Load balance ซึ่ง Service ทั้งหมดนี้ ถูก Program ผ่าน SDN Controller ได้เช่นกัน การทำงานในลักษณะนี้ เรียกว่า Service Chaining โดย Network Service เหล่านั้นเช่น Firewall, Load balance (ADC), Router ล้วนแล้วแต่จะมีแนวโน้ม ถูก Implement ในลักษณะ Virtual Machine เช่นเดียวกับ Server หรือที่เรียกว่า Network Function Virtualization (NFV)
ปัจจุบัน SDN ได้รับการตอบรับจากฝั่ง Virtualization ใน Data Center เป็นอย่างดี เพราะทำให้ Network สามารถตอบสนองธุรกิจได้อย่างทันท่วงทีและช่วยให้การ Provision Infrastructure บน Cloud ทำได้สมบูรณ์แบบ ทั้ง Compute Storage และ Network ผ่านซอฟต์แวร์ Cloud Orchestration หลังจากนี้เราน่าจะได้เห็นการประยุกต์ใช้ SDN ในมุมอื่นๆ
ไม่ว่าจะเป็นด้าน Security หรือ Monitoring ทั้ง Enterprise และ Service Provider ซึ่งถ้ามีโอกาสจะมาเล่า Use Case ต่างๆ ของ SDN ที่เริ่มใช้งานกันบ้างแล้ว เพื่อเราจะได้เห็นโอกาสในการที่จะนำ SDN มาใช้ในองค์กรได้บ้าง