เฟซบุ๊กเปิดซอร์สโครงการ Open/R โปรโตคอลหาเส้นทางข้อมูลไอพีของเฟซบุ๊กเองที่ใช้งานอยู่ในศูนย์ข้อมูลของบริษัท โดยรองรับการเชื่อมต่อกับฮาร์ดแวร์หลากหลายเจ้า ตอนนี้ที่รับรองแล้วได้แก่ FBOSS ของเฟซบุ๊กเอง, Arista EOS, Juniper JunOS, และลินุกซ์

Open/R เป็นโครงการที่เฟซบุีกสร้างขึ้นเพื่อใช้กับโครงข่ายไร้สาย Terragraph โดยโปรโตคอลต้องรองรับความเปลี่ยนแปลงที่รวดเร็วของเครือข่ายไร้สายได้ แต่ภายหลังเฟซบุ๊กพบว่ามันเหมาะกับการใช้งานในเครือข่ายแกนกลางของบริษัทเช่นกัน จึงนำมาใช้งานในเราท์เตอร์ของตัวเองแล้ว

แนวคิดหลักๆ ของ Open/R นั้นคือการทำหน้าที่เป็นระบบสำหรับการกระจายค่า State ทางด้านระบบเครือข่ายไปยังอุปกรณ์เครือข่ายทั้งหมดที่เกี่ยวข้อง เพื่อให้ Application ใหม่ๆ สามารถถูกเพิ่มเข้าไปในระบบเครือข่ายและทำการเชื่อมต่อกันได้โดยง่าย โดยมี Northbound Interface สำหรับเชื่อมต่อการทำงานเข้ากับ Network Controller ภายนอกได้ และมีความสามารถอย่างเช่นการทำ Automatic IP Prefix Allocation, RTT-based Cost Metrics, Graceful Restart, Fast Convergence และยังสามารถทำ Drain/Undrain Operation ได้ รวมถึงยังมีฟีเจอร์ที่คล้ายคลึงกับ IS-IS และ OSPF โดยมีฟีเจอร์ที่น่าสนใจดังนี้

  • รองรับ IPv6 เป็น Default แต่สามารถปรับแต่งให้ทำงานด้วย IPv4 ได้
  • ทำ Prefix Allocation และ IP Configuration ได้หลาย Node พร้อมๆ กันจากการเลือก Prefix
  • ทำ Graceful Restart ได้ ทำให้สามารถอัปเดตระบบได้โดยไม่เกิด Downtime ในการส่งข้อมูลเครือข่ายเลย
  • ทำ Drain/Undrain สำหรับ Node และ Link ได้
  • ประเมินและควบคุมค่า Link RTT ได้แบบ Dynamic
  • กำหนดค่า Metric Value ที่ต้องการได้เอง ทั้งแบบ Static และ Dynamic
  • ตรวจสอบการทำงานของเครือข่ายได้
  • มี API สำหรับเชื่อมต่อไปยัง Centralized Controller ได้
  • มี Python Library สำหรับจัดการ Process สำคัญๆ ใน Open/R ได้

สำหรับสถาปัตยกรรมภายใน Open/R มีแบ่งส่วนย่อยต่างๆ ดังนี้

ตัวโปรโตคอลรองรับความสามารถในระดับเดียวกับ IS-IS และ OSPF แต่มีฟีเจอร์เพิ่มเติม เช่น รองรับการตั้งค่า metric หาเส้นทางของตัวเอง หรือใช้ค่าเวลา RTT ในการหาเส้นทาง, เครือข่ายกลับมานิ่งหลังมีโหนดใดเสียหายไปอย่างรวดเร็ว, มีไลบรารี Python สำหรับการทำงานส่วนหลักๆ ของ Open/R ทั้งหมด

 

ที่มา – Facebook Code

Facebook Comments