경고
이 소프트웨어는 개발 초기 단계에 있으며 프로덕션 환경에 사용할 준비가 되어 있지 않습니다.
Hoppipolla(아이슬란드어로 "웅덩이에 뛰어들다" 라는 뜻)는 SCION 인터넷 프로토콜을 기반으로 하는 사용자 측 책임 네트워킹을 위한 분산 프레임워크입니다. 이는 책임 있는 네트워킹을 위한 회계 가치 효과 문서에서 설계된 아키텍처와 도메인 간 네트워크(UPIN) 프로젝트에 대한 사용자 중심 경로 확인 및 제어에서 영감을 받은 접근 방식으로 책임 있는 인터넷 제안의 일부를 구현합니다.
Hoppipolla를 설치하면 사용자는 응답 세트 프로그래밍(ASP)으로 표현된 정책을 게시하여 SCION 네트워크의 다른 원격 주소로 패킷을 라우팅할 때 이를 준수하는 네트워크 노드(예: 자율 시스템)를 선택할 수 있습니다.
자연어로 된 정책의 예:
Do not route network traffic through nodes that are located in country X
Hoppipolla 관련 ASP 구문을 사용하면 다음과 같습니다.
-valid(Path) :- country(Hop, "X"), hop(Hop), path(Path), contains(Path, Hop).
프레임워크는 서비스 제품군과 클라이언트 측에서 서비스와 상호 작용하는 데 사용되는 언어별 SDK로 구성됩니다. 모든 서비스는 선택한 SDK 대신 직접 사용할 수 있는 protos
폴더에 정의된 gRPC API를 노출합니다.
외부 종속성 측면에서 Hoppipolla는 SCION에만 독점적으로 의존합니다. 사용자는 SCION 데몬에 대한 안정적인 연결을 통해 SCION 스택에 대한 진입점을 제공해야 합니다.
SCION을 설치하고 SCIONLab 테스트베드 내에서 사용하려면 이 가이드를 따르세요.
현 단계에서는 Hoppipolla가 완전히 분산된 환경에서 생산될 준비가 되어 있지 않습니다. 따라서 실험적인 작업의 경우 docker compose
사용하여 로컬에서 실행하는 것이 좋습니다.
.env.example
파일에서 서비스에 전달할 수 있는 구성 옵션의 예를 찾을 수 있습니다.
중요한
특히 HOPPIPOLLA_SCIOND_URI
env 변수는 SCION 데몬의 주소(예: 127.0.0.1:30255)로 설정되어야 합니다.
저장소에는 필요한 모든 서비스를 실행하는 docker-compose.yml
파일이 포함되어 있습니다. 간단히 다음을 실행하여 컴퓨터에서 Hoppipolla를 실행할 수 있습니다.
docker compose up
경고
미정
다음 스니펫은 Python SDK의 간단한 사용법을 보여줍니다.
config = hp.HoppipollaClientConfig() # 기본 값client = hp.HoppipollaClient.from_config(config)issuer = client.get_default_issuer()policy1 = client.publish_policy( issuer, '-valid(Path) :- country(Hop, "X") , 홉(홉), 경로(경로), 포함(경로, 홉).')결과 = client.ping("1-ff00:0:110,10.0.0.1")
Hoppipolla는 GNU GPL v3.0 라이센스를 받았습니다.