Happy

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

Happy 是一個用於模擬網絡拓撲的輕量級編排工具。使用它在單台 Linux 開發機器上測試網絡協議和其他分佈式執行程序,而無需使用 IoT 設備硬件。

它是什麼?

Happy 模擬複雜的網絡拓撲。在單台 Linux 機器上,Happy 可以創建多個具有相互獨立的網絡堆棧的節點。一些節點可能連接到模擬的 Thread 網絡,其他節點可能連接到模擬的 Wi-Fi、WAN(互聯網)或蜂窩網絡。

Happy 解決了以下用例:

  • 在不使用硬件的情況下在單台 Linux 開發機器上測試網絡協議和其他分佈式執行程序
  • 跨網絡執行自動化功能測試
  • 在同一系統上運行多個並發、並行網絡以提高測試吞吐量

Happy 通過以最少的用戶開銷創建網絡拓撲抽象來解決這些問題。可以使用單個 shell 命令調用創建複雜的拓撲。 Happy 支持交互式使用和自動腳本。

在開發過程中使用 Happy shell 命令來設置、測試和調試他們的代碼。然後可以編寫相同的網絡配置和測試程序,並將其用於自動化測試。

開始

開始使用 Happy 的最快和最簡單的方法是通過 Codelab。它引導用戶了解所有 Happy 基本原理,包括:

  • 創建和刪除拓撲
  • 網絡節點在一起
  • 保存和恢復拓撲
  • 將拓撲連接到 Internet
  • 編織基礎

嘗試使用 Happy Codelab 入門

請參閱安裝使用上設置和使用快樂的更多信息。

建築學

快樂模型如下:

  • 節點-作為Linux的網絡命名空間。組成節點的進程在指定的網絡命名空間內運行。
  • 鏈接-一個Linux網絡接口。快樂使用veth網絡設備來支持L3(IP)接口和tap網絡設備來支持L2接口箱的出。
  • 網絡- Linux的網絡命名空間內與他們運行的以太網橋。

執行

Happy 是 Python 模塊的集合。核心 Happy 模塊提供以下抽象:

  • 管理節點抽象
    • 添加、修改和刪除節點
    • 在節點內運行一組進程
  • 管理鏈接
    • 添加、修改和刪除鏈接
    • 為節點和網絡分配鏈接
    • 分配和修改地址分配
  • 管理網絡
    • 創建、修改和銷毀網絡
    • 網絡連接
  • 以一致的方式管理框架的整體狀態

Happy 模塊實現的大部分抽像都映射到調用 Linux 網絡工具的命令中。

快樂還包含了一組中發現的插件/plugins 。插件封裝了與特定技術相關的一組功能。例如, /plugins/weave包含助手,對於內執行的快樂包裹各種編織應用。

執行

用戶可以通過兩種方法構建模擬拓撲:

  • Shell命令-所有的命令都在/bin
  • Python 腳本 — 導入 Happy 模塊以在您自己的 Python 腳本中調用 Happy 命令。模塊是在/happy

對於一個在自己的Python腳本使用快樂模塊的更多信息,請參閱Python腳本