Happy เป็นเครื่องมือสำหรับการจัดโครงสร้างเครือข่ายจำลองที่มีน้ำหนักเบา ใช้เพื่อทดสอบโปรโตคอลเครือข่ายและโปรแกรมดำเนินการแบบกระจายอื่นๆ บนเครื่องพัฒนา Linux เครื่องเดียวโดยไม่ต้องใช้ฮาร์ดแวร์อุปกรณ์ IoT
มันคืออะไร?
Happy จำลองโครงสร้างเครือข่ายที่ซับซ้อน บนเครื่อง Linux เครื่องเดียว Happy สามารถสร้างโหนดได้หลายโหนดด้วยสแต็กเครือข่ายที่แยกจากกัน โหนดบางตัวอาจเชื่อมต่อกับเครือข่ายเธรดจำลอง โหนดอื่นๆ อาจเชื่อมต่อกับ Wi-Fi จำลอง, WAN (อินเทอร์เน็ต) หรือเครือข่ายเซลลูลาร์
Happy กล่าวถึงกรณีการใช้งานต่อไปนี้:
- การทดสอบโปรโตคอลเครือข่ายและโปรแกรมการดำเนินการแบบกระจายอื่นๆ บนเครื่องพัฒนา Linux เครื่องเดียวโดยไม่ต้องใช้ฮาร์ดแวร์
- ทำการทดสอบการทำงานอัตโนมัติในเครือข่าย
- ใช้งานเครือข่ายคู่ขนานหลายเครือข่ายพร้อมกันบนระบบเดียวกันเพื่อปรับปรุงปริมาณงานการทดสอบ
Happy แก้ปัญหาเหล่านี้ด้วยการสร้างนามธรรมโทโพโลยีเครือข่ายโดยมีค่าใช้จ่ายน้อยที่สุดสำหรับผู้ใช้ โทโพโลยีที่ซับซ้อนสามารถสร้างขึ้นได้ด้วยการเรียกคำสั่งเชลล์ครั้งเดียว Happy รองรับทั้งการใช้งานเชิงโต้ตอบและการเขียนสคริปต์อัตโนมัติ
ใช้คำสั่ง Happy shell เพื่อตั้งค่า ทดสอบ และดีบั๊กโค้ดระหว่างการพัฒนา การกำหนดค่าเครือข่ายเดียวกันและโปรแกรมทดสอบอาจถูกเขียนสคริปต์และใช้ในการทดสอบอัตโนมัติ
เริ่ม
วิธีที่เร็วและง่ายที่สุดในการเริ่มต้นใช้งาน Happy คือการดำเนินการผ่าน Codelab จะนำผู้ใช้ผ่านปัจจัยพื้นฐานแห่งความสุขทั้งหมด รวมถึง:
- การสร้างและการลบทอพอโลยี
- โหนดเครือข่ายเข้าด้วยกัน
- การบันทึกและการกู้คืนโทโพโลยี
- การเชื่อมต่อโทโพโลยีกับอินเทอร์เน็ต
- สานพื้นฐาน
ลองเริ่มต้นใช้งาน Happy Codelab
ดู การติดตั้ง และ การใช้งาน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าและการใช้มีความสุข
สถาปัตยกรรม
แฮปปี้โมเดลดังต่อไปนี้:
- โหนด - namespace เครือข่ายลินุกซ์ กระบวนการที่ประกอบด้วยการรันโหนดภายในเนมสเปซเครือข่ายที่ระบุ
- Link - อินเตอร์เฟซเครือข่ายลินุกซ์ มีความสุขใช้
veth
อุปกรณ์เครือข่ายเพื่อสนับสนุน L3 (IP) การเชื่อมต่อและtap
อุปกรณ์เครือข่ายเพื่อสนับสนุน L2 เชื่อมต่อออกมาจากกล่อง - เครือข่าย - namespaces เครือข่าย Linux กับสะพาน Ethernet ทำงานภายในพวกเขา
การดำเนินการ
Happy คือชุดของโมดูล Python โมดูล Core Happy นำเสนอสิ่งที่เป็นนามธรรมสำหรับ:
- การจัดการโหนดนามธรรม
- การเพิ่ม แก้ไข และลบโหนด
- เรียกใช้ชุดของกระบวนการภายในโหนด
- การจัดการลิงก์
- การเพิ่ม แก้ไข และลบลิงค์
- การกำหนดลิงค์ไปยังโหนดและเครือข่าย
- การกำหนดและแก้ไขการกำหนดที่อยู่
- การจัดการเครือข่าย
- การสร้าง แก้ไข และทำลายเครือข่าย
- การเชื่อมต่อเครือข่าย
- การจัดการสถานะโดยรวมของกรอบการทำงานอย่างเหนียวแน่น
นามธรรมส่วนใหญ่ที่นำมาใช้โดยโมดูล Happy จะจับคู่กับคำสั่งที่เรียกใช้เครื่องมือเครือข่าย Linux
มีความสุขนอกจากนี้ยังมีชุดของปลั๊กอินที่พบใน /plugins
ปลั๊กอินจะรวมชุดการทำงานที่เกี่ยวข้องกับเทคโนโลยีเฉพาะ ยกตัวอย่างเช่น /plugins/weave
มีผู้ช่วยเหลือที่ห่อต่างๆการใช้งานสานสำหรับการดำเนินการภายในมีความสุข
การดำเนินการ
ผู้ใช้สามารถสร้างโทโพโลยีจำลองได้สองวิธี:
- คำสั่งเชลล์ - คำสั่งทั้งหมดที่อยู่ใน
/bin
- สคริปต์ Python — นำเข้าโมดูล Happy เพื่อเรียกใช้คำสั่ง Happy ในสคริปต์ Python ของคุณเอง โมดูลอยู่ใน
/happy
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้โมดูลมีความสุขในสคริปต์หลามของคุณเองดู งูหลามสคริปต์