Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

Happy

Happy는 시뮬레이션된 네트워크 토폴로지의 가벼운 오케스트레이션을 위한 도구입니다. IoT 장치 하드웨어를 사용하지 않고 단일 Linux 개발 머신에서 네트워크 프로토콜 및 기타 분산 실행 프로그램을 테스트하는 데 사용합니다.

그것은 무엇입니까?

Happy는 복잡한 네트워크 토폴로지를 시뮬레이션합니다. 단일 Linux 시스템에서 Happy는 서로 독립적인 네트워크 스택으로 여러 노드를 생성할 수 있습니다. 일부 노드는 시뮬레이션된 스레드 네트워크에 연결될 수 있고, 다른 노드는 시뮬레이션된 Wi-Fi, WAN(인터넷) 또는 셀룰러 네트워크에 연결될 수 있습니다.

Happy는 다음 사용 사례를 다룹니다.

  • 하드웨어를 사용하지 않고 단일 Linux 개발 머신에서 네트워크 프로토콜 및 기타 분산 실행 프로그램 테스트
  • 네트워크에서 자동화된 기능 테스트 수행
  • 테스트 처리량 향상을 위해 동일한 시스템에서 여러 개의 동시 병렬 네트워크 실행

Happy는 최소한의 사용자 오버헤드로 네트워크 토폴로지 추상화를 생성하여 이러한 문제를 해결합니다. 단일 셸 명령 호출로 복잡한 토폴로지를 만들 수 있습니다. Happy는 대화형 사용과 자동화된 스크립팅을 모두 지원합니다.

Happy 셸 명령을 사용하여 개발 중에 코드를 설정, 테스트 및 디버그합니다. 그런 다음 동일한 네트워킹 구성 및 테스트 프로그램을 스크립팅하여 자동화된 테스트에 사용할 수 있습니다.

시작하다

Happy를 시작하는 가장 빠르고 쉬운 방법은 Codelab을 살펴보는 것입니다. 다음을 포함하여 모든 행복한 기본 사항을 통해 사용자를 안내합니다.

  • 토폴로지 생성 및 삭제
  • 네트워킹 노드 함께
  • 토폴로지 저장 및 복원
  • 인터넷에 토폴로지 연결
  • 직조 기초

Happy Codelab 시작하기

참조 설정사용을 설정하고 해피 사용에 대한 자세한 내용은.

건축물

행복한 모델은 다음과 같습니다.

  • 노드 - 리눅스 네트워크 네임 스페이스. 노드를 구성하는 프로세스는 지정된 네트워크 네임스페이스 내에서 실행됩니다.
  • 링크 - 리눅스 네트워크 인터페이스. 해피 용도 veth L3 (IP) 인터페이스 및 네트워크 지원 장치를 tap L2는 상자의 인터페이스를 지원하는 네트워크 장치.
  • 네트워크 - 그들 내에서 실행 이더넷 브리지와 리눅스 네트워크 네임 스페이스.

이행

Happy는 Python 모듈 모음입니다. Core Happy 모듈은 다음에 대한 추상화를 제공합니다.

  • 노드 추상화 관리
    • 노드 추가, 수정 및 삭제
    • 노드 내에서 일련의 프로세스 실행
  • 링크 관리
    • 링크 추가, 수정 및 삭제
    • 노드 및 네트워크에 링크 할당
    • 주소 할당 할당 및 수정
  • 네트워크 관리
    • 네트워크 생성, 수정 및 파괴
    • 네트워크 연결
  • 응집력 있는 방식으로 프레임워크의 전체 상태 관리

Happy 모듈에 의해 구현된 대부분의 추상화는 Linux 네트워크 도구를 호출하는 명령에 매핑됩니다.

행복도에서 발견 된 플러그인 세트 포함 /plugins . 플러그인은 특정 기술과 관련된 기능 집합을 래핑합니다. 예를 들어, /plugins/weave 헬퍼를 포함 행복 내에서 실행을위한 포장 다양한 직물 응용 프로그램.

실행

사용자는 두 가지 방법을 통해 시뮬레이션된 토폴로지를 구축할 수 있습니다.

  • 쉘 명령 - 모든 명령에 /bin .
  • Python 스크립트 — Happy 모듈을 가져와서 자체 Python 스크립트에서 Happy 명령을 호출합니다. 모듈에 /happy .

자신의 파이썬 스크립트 행복한 모듈을 사용하는 방법에 대한 자세한 내용은 파이썬 스크립트 .