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 .

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