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