Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

快樂

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

它是什麼?

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

快樂解決了以下用例:

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

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

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

開始吧

使用Happy最快最簡單的方法是遍歷Codelab。它引導用戶了解所有“快樂”基礎知識,包括:

  • 創建和刪除拓撲
  • 將節點聯網
  • 保存和還原拓撲
  • 將拓撲連接到Internet
  • 編織基礎

嘗試Happy Codelab入門

有關設置和使用Happy的更多信息,請參見“ 設置用法 ”。

建築

快樂模型如下:

  • 節點 — Linux網絡名稱空間。組成節點的進程在指定的網絡名稱空間中運行。
  • 鏈接 — Linux網絡接口。 Happy使用vethveth網絡設備來支持L3(IP)接口,而使用tap網絡設備來支持L2接口。
  • 網絡 -在其中運行以太網橋的Linux網絡名稱空間。

實作

快樂是Python模塊的集合。核心快樂模塊提供以下方面的抽象:

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

Happy模塊實現的大多數抽像都映射為調用Linux網絡工具的命令。

Happy還包含/plugins中的一組/plugins 。插件包裝了與特定技術相關的一組功能。例如, /plugins/weave包含用於包裝各種Weave應用程序以在Happy中執行的助手。

執行

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

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

有關在您自己的Python腳本中使用Happy模塊的更多信息,請參見Python腳本