
Reticulum은 쉽게 구할 수있는 하드웨어가있는 로컬 및 광범위한 지역 네트워크를 구축하기위한 암호화 기반 네트워킹 스택입니다. 대기 시간이 매우 높고 대역폭이 매우 낮더라도 작동 할 수 있습니다. Reticulum을 사용하면 상용 도구를 사용하여 광대역 네트워크를 구축 할 수 있으며 엔드 투 엔드 암호화 및 연결성, 개시 자 익명 성, 암호화 적으로 백업 된 멀티 홉 전송, 효율적인 주소 지정, 용서할 수없는 배송 승인 등을 제공합니다.
Reticulum의 비전은 누구나 자신의 네트워크 운영자가 될 수있게하고, 무수한 독립적이고 연결 가능하며 자율적 인 네트워크로 광대 한 영역을 저렴하고 쉽게 다룰 수 있도록하는 것입니다. 망상은 하나의 네트워크가 아닙니다 . 수천 개의 네트워크를 구축하는 도구 입니다. 킬 스위치, 감시, 검열 및 통제가없는 네트워크. 서로 자유롭게 상호 작용, 연합 및 분리 할 수 있으며 중앙 감독이 필요하지 않은 네트워크. 인간을위한 네트워크. 사람들을위한 네트워크 .
Reticulum은 완전한 네트워킹 스택이며 IP 이상의 레이어에 의존하지 않지만 Reticulum의 기본 캐리어로 IP를 사용할 수 있습니다. 따라서 인터넷 또는 개인 IP 네트워크를 통해 망상 터널을 터널하는 것은 사소한 일입니다.
기존 네트워킹 스택에 의존하지 않으면 암호화 원칙에 직접 구축 된 네트워킹 스택을 구현하는 데 사용 된 오버 헤드가 열려있어 개방적이고 신뢰할 수없는 네트워크에서도 탄력성과 안정적인 기능을 허용합니다.
커널 모듈이나 드라이버가 필요하지 않습니다. Reticulum은 사용자 랜드에서 완전히 실행되며 Python 3을 실행하는 모든 시스템에서 실행할 수 있습니다.
reticulum에 대한 전체 문서는 markqvist.github.io/reticulum/manual/에서 제공됩니다.
Reticulum 매뉴얼을 PDF 또는 Epub 형식의 전자 책으로 다운로드 할 수도 있습니다.
자세한 내용은 reticulum.network 및 Wiki의 FAQ 섹션을 참조하십시오.
Reticulum은 이미 완전히 특징적이고 기능적인 네트워킹 스택이지만 많은 개선과 추가가 적극적으로 작업되고 있으며 미래를 위해 계획하고 있습니다.
Reticulum의 방향과 미래에 대한 자세한 내용은 개발 로드맵을 참조하십시오.
Reticulum이 무엇을 할 수 있는지에 대한 아이디어를 빨리 얻으려면 다음 자료를 살펴보십시오.
초당 5 비트보다 더 큰 처리량을 갖는 최소 반이중 채널 및 500 바이트의 MTU를 지원할 수있는 실질적으로 모든 매체에 비해. 데이터 라디오, 모뎀, 로라 라디오, 시리얼 라인, AX.25 TNCS, 아마추어 라디오 디지털 모드, WiFi 및 이더넷 장치, 자유 공간 광학 링크 및 유사한 시스템은 Reticulum이 사용할 수있는 물리적 장치 유형의 예입니다.
RNODE라는 오픈 소스 LORA 기반 인터페이스는 Reticulum과 함께 사용하도록 특별히 설계되었습니다. 직접 구축 할 수 있거나 호스트와 USB 연결이 필요한 완전한 트랜시버로 구입할 수 있습니다.
Reticulum은 기존 IP 네트워크를 통해 캡슐화 될 수 있으므로 유선 이더넷, 로컬 WiFi 네트워크 또는 인터넷을 통해 사용하는 것을 막을 수있는 것은 없습니다. 실제로, Reticulum의 강점 중 하나는 사용 가능한 인프라의 사용 가능한 혼합물을 사용하여 다른 매체를 자체 구성, 탄력성 및 암호화 된 메쉬에 쉽게 연결할 수 있다는 것입니다.
예를 들어 LORA 라디오, 패킷 라디오 TNC 및 WiFi 네트워크에 연결된 라즈베리 파이를 설정할 수 있습니다. 인터페이스가 구성되면 Reticulum은 나머지 부분을 처리하고 WiFi 네트워크의 모든 장치는 네트워크의 LORA 및 패킷 라디오 측면의 노드와 통신 할 수 있으며 그 반대도 마찬가지입니다.
Reticulum Network 스택을 시작하는 가장 좋은 방법은 원하는 일에 따라 다릅니다. 자세한 내용과 예를 보려면 Reticulum 매뉴얼의 빠른 섹션을 시작하십시오.
시스템에 Reticulum 및 관련 유틸리티를 단순히 설치하려면 pip 통해 가장 쉬운 방법입니다. 그런 다음 RNSD 유틸리티와 함께 시스템 서비스로 Reticulum을 사용하는 모든 프로그램을 시작하거나 Reticulum을 시작할 수 있습니다.
pip install rns pip 를 통해 일반 사용자 패키지 설치를 차단하는 운영 체제를 사용하는 경우 ~/.config/pip/pip.conf 파일을 편집하고 [global] 섹션에서 다음 지침을 추가하여 pip 일반 동작으로 반환 할 수 있습니다.
[global]
break-system-packages = true
또는 pipx 도구를 사용하여 고립 된 환경에서 Reticulum을 설치할 수 있습니다.
pipx install rns처음 시작되면 Reticulum은 기본 구성 파일을 생성하여 로컬로 도달 할 수있는 다른 Reticulum 피어에게 기본 연결을 제공합니다. 기본 구성 파일에는 몇 가지 예제와보다 복잡한 구성을 만들기위한 참조가 포함되어 있습니다.
시스템에 이전 버전의 pip 가있는 경우 pip install pip --upgrade 사용하여 먼저 업그레이드해야 할 수도 있습니다. pip 아직 설치하지 않은 경우 sudo apt install python3-pip 또는 이와 유사한 시스템의 패키지 관리자를 사용하여 설치할 수 있습니다.
Packet Radio 또는 LORA, Serial Ports 또는 UDP 및 TCP 인터페이스를 사용하여 빠른 IP 링크 및 인터넷과 같은 많은 매체에 대한 통신을 확장하는 방법에 대한 자세한 예제는 Reticulum Manual의 지원되는 인터페이스 섹션을 살펴보십시오.
Reticulum에는 네트워크 관리, 상태 및 정보 및 기타 작업에 유용한 유용한 유틸리티가 포함되어 있습니다. 이 프로그램에 대한 자세한 내용은 Reticulum 매뉴얼의 포함 유틸리티 프로그램 섹션에서 읽을 수 있습니다.
rnsdrnstatus 라는 인터페이스 상태 유틸리티rnpath 경로 테이블을보고 수정할 수 있도록합니다.rnprobe 라는 진단 도구rncp 라는 간단한 파일 전송 프로그램으로 시스템간에 파일을 쉽게 전송할 수 있습니다.rnid 신분을 관리하고 파일을 암호화/해독 할 수 있습니다.rnx 원격 시스템에서 명령 및 프로그램을 실행하고 원격 시스템에서 출력을 검색하겠습니다. rnx 및 rncp 를 포함한 모든 도구는 LORA 또는 Packet Radio와 같은 매우 낮은 대역폭 링크를 통해 안정적으로 작동합니다. Reticulum 위의 완전한 원격 쉘의 경우 RNSH 프로그램을 살펴보십시오.
Reticulum은 Reticulum이 실행할 수있는 대부분의 통신 하드웨어를 다루는 다양한 일반적인 인터페이스 유형을 구현합니다. 하드웨어가 지원되지 않으면 사용자 정의 인터페이스 모듈을 구현하는 것이 간단합니다.
사용자 정의 인터페이스에 대한 풀 요청은 일반적으로 유용하고 실제 사용에서 잘 테스트 된 경우 감사하게 허용됩니다.
현재 다음과 같은 내장 인터페이스가 지원됩니다.
Reticulum은 매우 넓은 사용 가능한 성능 봉투를 대상으로하지만 저 대역폭 매체의 기능과 성능을 우선시합니다. 목표는 초당 250 비트에서 정상 하드웨어에서 초당 1 기가비트까지 동적 성능 봉투를 제공하는 것입니다.
현재 사용 가능한 성능 봉투는 초당 약 150 비트에서 초당 40 메가 비트이며 물리적 매체는 포화되지 않은 것보다 빠릅니다. 현재 레벨 이외의 성능은 향후 업그레이드를위한 것이지만,이 시점에서는 우선 순위가 높지 않습니다.
망상은 현재 베타 소프트웨어로 간주되어야합니다. 모든 핵심 프로토콜 기능이 구현되고 작동하지만 실제 사용이 탐색되면 추가가 발생할 수 있습니다. 버그가있을 것입니다. API 및 와이어 형식은 현재 비교적 안정적으로 간주 될 수 있지만 보증 된 경우 변경 될 수 있습니다.
기본 rns 패키지를 설치하려면 아래 나열된 종속성이 필요합니다. 거의 모든 시스템과 배포판에는 이러한 종속성에 대한 패키지가 쉽게 사용할 수 있으며 rns 패키지를 pip 와 함께 설치하면 다운로드 및 설치됩니다.
보다 특이한 시스템과 일부 드문 경우에서는 위의 모듈 중 하나 이상을 설치하거나 컴파일 할 수 없습니다. 이러한 상황에서는 대신 rnspure 패키지를 사용할 수 있으며 설치에 외부 종속성이 필요하지 않습니다. rns 및 rnspure 패키지의 내용은 동일 합니다. 유일한 차이점은 rnspure 패키지에 설치에 의존성이 필요하지 않다는 것입니다.
Reticulum이 설치되어 시작 되더라도 외부 종속성이 필요한 경우 에만 외부 의존성을로드합니다. 예를 들어 Pyserial을 지원할 수없는 시스템에서 Reticulum을 사용하려면 rnspure 패키지를 사용하여 완벽하게 가능하지만 Reticulum은 직렬 기반 인터페이스를 사용할 수 없습니다. 필요한 경우 다른 모든 모듈은 여전히로드됩니다.
주목하십시오! rnspure 패키지를 사용하여 PYCA/cryptography를 지원하지 않는 시스템에서 Reticulum을 실행하는 경우이 문서의 암호화 프리미티브 섹션을 읽고 이해하는 것이 중요합니다.
물리적 네트워크를 구축하지 않고 실험을 시작하려면 RNS Development Testnet에 가입 할 수 있습니다.
Testnet은 테스트 및 실험을위한 비공식 네트워크입니다. 대부분의 시간이 걸리고 누구나 가입 할 수 있지만 서비스 가용성에 대한 보장이 없음을 의미합니다.
말할 필요도 없지만 테스트넷 입력 포인트를 사용자에게 배송하는 응용 프로그램에서 하드 코드 또는 기본 인터페이스로 사용하지는 않습니다 . 응용 프로그램을 배송 할 때 가장 모범 사례는 필요한 경우 자신의 기본 연결 솔루션을 제공하거나 필요한 경우 또는 대부분의 경우 연결할 네트워크 및 방법을 사용자에게 맡기는 것입니다.
TestNet은 최신 버전의 Reticulum을 실행합니다 (종종 공개적으로 출시되기 전에 짧은 시간조차도). 때로는 Reticulum의 실험 버전이 TestNet의 노드에 배치 될 수 있습니다. 즉, 이상한 동작이 발생할 수 있습니다. 그 중 어느 것도 당신을 두려워하지 않으면 TCP 또는 I2P를 통해 TestNet에 가입 할 수 있습니다. Reticulum 구성 파일에 다음 인터페이스 중 하나를 추가하십시오.
# TCP/IP interface to the RNS Amsterdam Hub
[[RNS Testnet Amsterdam]]
type = TCPClientInterface
enabled = yes
target_host = amsterdam.connect.reticulum.network
target_port = 4965
# TCP/IP interface to the BetweenTheBorders Hub (community-provided)
[[RNS Testnet BetweenTheBorders]]
type = TCPClientInterface
enabled = yes
target_host = reticulum.betweentheborders.com
target_port = 4242
# Interface to Testnet I2P Hub
[[RNS Testnet I2P Hub]]
type = I2PInterface
enabled = yes
peers = g3br23bvx3lq5uddcsjii74xgmn6y5q325ovrkq2zw2wbzbqgbuq.b32.i2p
TestNet에는 또한 다수의 Nomad 네트워크 노드 및 LXMF 전파 노드도 포함되어 있습니다.
다음 채널 중 하나를 통해 기부하여 개방형, 무료 및 개인 통신 시스템의 지속적인 개발을 지원할 수 있습니다.
84FpY1QbxHcgdseePYNmhTHcrgMX4nFfBYtz2GKYToqHVVhJp8Eaw1Z1EedRnKD19b3B8NiLCGVxzKV17UMmmeEsCrPyA5w
0xFDabC71AC4c0C78C95aDDDe3B4FA19d6273c5E73
35G9uWVzrpJJibzUwpNUQGQNFzLirhrYAH
개발 로드맵의 특정 기능이 귀하 또는 귀하의 조직에 중요합니까? 구현을 후원함으로써 신속하게 현실을 만듭니다.
Reticulum은 일반적인 CPU 및 마이크로 컨트롤러 모두에서 사용할 수있는 널리 사용 가능한 구현과 함께 효율적이고 강력하며 잘 테스트 한 암호화 프리미티브를 사용합니다. 사용 된 프리미티브는 다음과 같습니다.
기본 설치 구성에서 X25519 , Ed25519 및 AES-128-CBC 프리미티브는 OpenSSL (PYCA/Cryptography 패키지를 통해)에 의해 제공됩니다. 해싱 함수 SHA-256 및 SHA-512 표준 Python Hashlib에 의해 제공됩니다. HKDF , HMAC , Token 프리미티브 및 PKCS7 패딩 기능은 항상 다음 내부 구현에 의해 제공됩니다.
Reticulum은 또한 순수한 파이썬에서 필요한 모든 프리미티브의 완전한 구현을 포함합니다. Reticulum이 시작될 때 시스템에서 OpenSSL & PYCA를 사용할 수없는 경우 Reticulum은 대신 내부 Purethon Primitives를 사용합니다. 이것의 사소한 결과는 성능이며 OpenSSL 백엔드가 훨씬 빠릅니다. 그러나 가장 중요한 결과는 OpenSSL과 동일한 양의 조사, 테스트 및 검토를 보지 못한 프리미티브를 사용하여 보안의 잠재적 손실입니다.
내부 Pure-Python Primitives를 사용하려면,이 포즈가 발생할 위험에 대해 잘 이해하고 그러한 위험이 귀하가 수용 할 수 있는지에 대한 정보에 근거한 결정을 내리는 것이 좋습니다 .
망상은 비교적 젊은 소프트웨어이므로 그렇게 고려해야합니다. 암호화 베스트 팩터로 가장 중요한 점을 염두에두고 구축되었지만 외부 보안 감사는 없었 으며 개인 정보 보호 또는 보안 버그가 잘 될 수 있습니다. 도와 주거나 감사를 후원하는 데 도움을 주려면 연락하십시오.
레티 큘럼은 오픈 소스 작업의 산, 관련된 모든 사람의 기여, 그리고 수년 동안 프로젝트를 지원 한 모든 사람으로 인해 존재할 수 있습니다. 도움을 준 모든 분들께 감사드립니다.
다른 많은 모듈과 프로젝트는 Reticulum의 일부이거나 사용됩니다. 다음 프로젝트의 저자와 기고자들에게 진심으로 감사합니다.