Archive by category "SDN"

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

กลับมาเข้าเรื่อง SDN กันอีกครั้ง ^^

คราวนี้เราจะมาทำความรุ้จักกับ Mininet กัน คำถามที่เกิดขึ้นแน่ๆในใจของหลายๆคนน่าจะมีดังต่อไปนี้

  • Mininet คืออะไร?
  • Mininet เอาไว้ทำอะไร?
  • Mininet เกี่ยวกับ SDN ยังไง?

ขอสรุปกันแบบบ้านๆประมาณนี้ก็แล้วกันครับ

  • Mininet คือ Network emulator ซึ่งจะทำการจำลองการสร้าง Switch, Host, Controller และ Link ที่ทำการเชื่อมโยงระหว่างอุปกรณ์ที่เราสร้างขึ้นมา โดย Host ที่ Mininet สร้างขึ้นมาจะเป็น Linux host ส่วน Switch ที่ Mininet สร้างขึ้นมาจะรองรับการใช้งาน OpenFlow ดังนั้นมันจึงสามารถรองรับการทำ Customize routing และ SDN ได้นั่นเอง
  • Mininet มีจุดประสงค์ในการนำมาใช้งานในลักษณะต่างๆดังนี้ งานวิจัย การพัฒนา การใช้ประกอบการเรียนการสอน การทดสอบ นำมาใช้ในการ Debugging เพื่อทดสอบระบบ Network บน PC หรือ Laptop ที่เราใช้งาน โดย Mininet สามารถยกตัวอย่างการนำไปใช้งานในหัวข้อต่างๆได้ดังนี้
    • ใช้ในการสร้าง Network ตัวอย่างเพื่อพัฒนาโปรแกรมกับ OpenFlow
    • ทำ System-level regression test
    • ทำการสร้าง Topology ที่มีความซับซ้อนสูงโดยไม่ต้องทำการ Wire สายเนื่องจาก Mininet ทำงานในลักษณะ Virtualizes
    • Code ที่ทำการทดสอบบน Mininet เพื่อใชงานกับ OpenFlow สามารถนำไปใช้งานจริงได้โดยอาจจะมีการแก้ไขเพียงเล็กน้อยเท่านั้น นั่นหมายความว่าเมื่อใดก็ตามที่การทดสอบบน Mininet สามารถใช้งานได้ก็สามารถนำไปใช้งานกับ Hardware จริงได้เช่นเดียวกัน เพื่อทำการทดสอบในลักษณะของ Line-rate forwarding ต่อไปได้ทันที
  • Mininet เกี่ยวกับ SDN โดย Mininet จะเป็นตัวสร้าง Network จำลองขึ้นมาเพื่อใช้ในการทดสอบ SDN application โดยข้อดีของ Mininet คือสามารถจำลองระบบ Network ขนาดใหญ่ขึ้นมาได้จาก Linux host หรือ VM guest เพียงเครื่องเดียว โดยสามารถทำการ Boot อุปกรณ์ขึ้นมาจำลองการทำงานได้ถึง 4096 อุปกรณ์ โดยมีทั้ง Host และ Switch ตั้งแต่ Version 2.2.26

Mininet สามารถทำงานร่วมกับ Controller ที่มีการใช้งาน OpenFlow ได้เป็นอย่างดี โดย Topology ที่สร้างขึ้นมาจาก Mininet สามารถทำการ Discovery ได้จาก SDN controller ทั้งในส่วนของ Host และ Switch สำหรับการใช้งาน Mininet ร่วมกับ Controller จะมีการนำเสนอในบทความส่วนต่อไปครับ

สำหรับรูป Topology ด้านล่างนี้เป็นตัวอย่าง Topology ที่สร้างจาก Mininet และทำการ Discovery บน OpenDayLight ครับ

 

สำหรับท่านที่ต้องการ Download Mininet มาเพื่อลองใช้งานสามารถไปที่ http://mininet.org/download/ เพื่อนำมาลองใช้งานได้ โดยมีให้เลือกใช้งานทั้งแบบ VM หรือจะทำการติดตั้งเองลงบน Linux host ก็ได้เช่นเดียวกันครับ

รู้จักกับ OpenFlow

OpenFlow

OpenFlow คืออะไร?

OpenFow คือ มาตรฐานเปิดที่อนุญาตให้ผู้ใช้งานสามารถนำโปรโตคอลที่สร้างขึ้นเองนำมาใช้งานได้ในระบบเน็ทเวิร์คที่มีการใช้งานในปัจจุบันได้ โดยที่ OpenFlow จะทำงานคล้ายๆกับการเพิ่ม Feature เข้าไปที่อุปกรณ์ switch, router หรือ wireless access point โดยที่ไม่ต้องการให้เจ้าของผลิตภัณฑ์ทำการเปิดเผยขั้นตอนการทำงานภายในของอุปกรณ์ ในปัจจุบัน OpenFlow ได้มีการนำไปใช้งานกับอุปกรณ์เจ้าหลักๆ โดยจำหน่ายอยู่ในรูปแบบของ switch ที่มีการรองรับการทำงานของ OpenFlow

OpenFlow ทำงานอย่างไร

ในอุปกรณ์ router หรือ switch แบบเก่า fast packet forwarding (data plane) และส่วนที่ทำหน้าในการจัดการ routing protocol (control plane) จะอยู่บนอุปกรณ์เดียวกัน การทำงานของ OpenFlow จะทำการแยกทั้งสองส่วนนี้ออกจากกัน โดย data plane จะยังคงทำงานอยู่บนอุปกรณ์เดิมส่วนที่เป็น control plane (software) ที่ทำหน้าที่ในการตัดสินใจเลือกเส้นทางหรือ routing protocol จะถูกแยกไปอยู่บน controller โดยที่อาจจะเป็นเครื่อง server ทั่วๆไปก็ได้ โดยที่ OpenFlow switch และ OpenFlow controller จะทำการติดต่อกันด้วย OpenFlow protocol ด้วย message ที่กำหนดไว้ เช่น การรับและส่ง packet การเปลี่ยนแปลง forwarding table หรือการอ่านค่าสถานะของอุปกรณ์
Data plane ของ OpenFlow switch จะอยู่ในรูปแบบของ clean flow table abstraction โดยที่ในแต่ละตำแหน่งของ Flow table จะประกอบไปด้วยกลุ่มของ packet ที่มีการระบุการทำงานเอาไว้ด้วย เช่น ให้ส่งออกไปที่ interface ไหน มีการ modify field ใดบ้าง หรือให้ทำการ drop packet ทิ้ง กรณีเมื่อ OpenFlow switch ได้รับ packet เข้ามาและยังไม่เคยอยู่ใน Flow table มันจะถูกส่งไปที่ controller เพื่อให้ controller ทำการตัดสินใจว่าจะจัดการกับ packet ที่ได้รับมานี้อย่างไร โดยมันจะสามารถทำการ drop หรือนำไปใส่ไว้ที่ Flow table และกำหนดการทำงานให้กับ OpenFlow switch ว่าจะต้องส่ง packet นี้ออกไปในทิศทางใดในกรณีที่มีการพบ packet แบบนี้อีกในอนาคต

เราจะทำไรกับ OpenFlow ได้บ้าง

OpenFlow อนุญาตให้ผู้ใช้งานสามารถสร้าง routing และ switching protocol ขึ้นมาใหม่และนำไปใช้งานได้ง่าย โดยมันจะถูกนำไปใช้งานในรูปแบบของ application ในรูปแบบต่างๆ เช่น virtual machine mobility หรือระบบ network ที่มีความปลอดภัยสูง และ mobile network ในยุคถัดไป

 

แปลและเรียบเรียงเนื้อหาจาก

Ref: http://archive.openflow.org/wp/learnmore/