OpenGNB 버전 1.5.0의 통신 프로토콜이 업그레이드되었으며 호환되지 않습니다.
중국 영어
참고 :이 기사의 대부분은 "OpenGNB 사용자 설명서"의 중국어 버전에서 Google 번역에 의해 번역되며,이 기사의 내용은 중국어 버전의 적용을받습니다.
OpenGNB는 오픈 소스 P2P 분산화 된 소프트웨어 정의 가상 네트워크로 극도의 인트라넷 침투 기능을 사용하여 회사 집 네트워크를 직접 액세스 LAN으로 결합 할 수 있습니다.
GNB 프로젝트와 관련된 모든 코드는 오픈 소스로 릴리스되며 현재 출시 된 소스 코드는 다음 플랫폼을 지원합니다. FreeBsd Linux OpenWrt RaspberryPi OpenBSD MacOS
흐름도 LR
서브 그래프 란 a
nodea [vpn clienta]
끝
서브 그래프 wan
Nodef [VPN 서버]
끝
서브 그래프 란 b
nodeb [vpn clientb]
끝
nodea <-페이로드 ---> nodef <-페이로드 ---> nodeb
Nat Traversal Point to Point
흐름도 LR
서브 그래프 란 a
nodea [Gnb nodea]
끝
서브 그래프 wan
색인 [GNB Public Index Node]
끝
서브 그래프 란 b
Nodeb [GNB Nodeb]
끝
nodea-. Nodeb 주소 .- 인덱스 -. NODEA 주소- NODEB
nodea <-페이로드-> nodeb
흐름도 LR
서브 그래프 란 a
nodea [Gnb nodea]
끝
서브 그래프 wan
Nodec [Nodec]
노드 [NODED]
노드 [노드]
nodef [nodef]
nodej [nodej]
Nodek [Nodek]
nodeg [nodeg]
nodeh [nodeh]
Nodei [nodei]
끝
서브 그래프 란 b
Nodeb [GNB NODEA]
끝
nodea [nodea] ---- Nodec [Nodec] ---- 결합 [Nodee] ---- Nodee [Nodee] ---- Nodef [Nodef] ---- Nodeb [Nodeb]
nodea [nodea] ---- nodeg [nodeg] ---- nodeh [nodeh] ---- nodei [nodei] ---- nodeb [nodeb]
nodea [nodea] ---- nodej [nodej] ---- Nodek [Nodek] ---- Nodeb [nodeb]
흐름도 LR
서브 그래프 란 a
nodea [Gnb nodea]
끝
서브 그래프 lan c
Nodec [GNB Nodec]
끝
서브 그래프 란 d
노드 [GNB 노드]
끝
서브 그래프 란 e
Nodee [GNB NODEE]
끝
서브 그래프 란 b
Nodeb [GNB Nodeb]
끝
NODEA ---- NODEC & NODED & NODEE ---- NODEB
흐름도 LR
서브 그래프 란 a
nodea [Gnb nodea]
upd_over_tcp_a [upd_over_tcp]
끝
서브 그래프 wan
upd_over_tcp_b [upd_over_tcp]
Nodeb [GNB Nodeb]
끝
nodea --udp 페이로드 --- upd_over_tcp_a ---tcp 페이로드 --- upd_over_tcp_b --udp payload --- nodeb
git clone https://github.com/gnbdev/opengnb.git
cd opengnb
make -f Makefile.linux install
컴파일 후 opengnb/bin/ Directory에서 gnb gnb_crypto gnb_ctl gnb_es 파일을 얻을 수 있습니다.
gnb gnb_crypto gnb_ctl gnb_es 각각 a 및 호스트 B로 복사하십시오.
호스트 A와 호스트 B가 두 개의 다른 LAN에서 인트라넷 상호 연결을 일시적으로 침투해야한다고 가정하면, 가장 빠른 방법은 Lite 모드를 통해 GNB를 실행하는 것입니다. Lite 모드에서는 비대칭 암호화가 활성화되지 않으며 암호 와 노드 ID를 통해서만 암호화 키를 생성하므로 보안은 비대칭 암호화 작업보다 훨씬 덜 모듈 식입니다.
암호 코드 는 길이가 8자인 32 비트 16 진수 문자열로 0xffffffff 또는 ffffffff 로 표시 될 수 있으며, 공개 색인 암호 는 동일한 GNB 노드와 동일한 가상 네트워크에서 노드로 간주됩니다. 가능한 한 다른 사용자와 같지 않은 암호를 선택하십시오. 여기에서 데모의 편의를 위해 암호는 12345678 로 선택되며 매개 변수 **-p **는 노드를 시작하도록 암호 를 지정하는 데 사용됩니다. 실제 사용에서 이러한 간단한 암호를 사용하지 마십시오. 12345678 암호 로 사용하고 통신 실패를 유발하는 다른 사용자와 충돌 할 수 있습니다.
호스트에서 루트 로 실행하십시오
gnb -n 1001 -I "120.76.206.113/9001" --multi-socket=on -p 12345678
시작이 성공하면 호스트 A에서 IP Addr를 실행하여 GNB 노드 IP를 볼 수 있습니다.
3: gnb_do:mtu 1280 qdisc fq_codel state UNKNOWN group default qlen 500
link/none
inet 10.1.0.1/16 scope global gnb_tun
valid_lft forever preferred_lft forever
inet6 64:ff9b::a01:1/96 scope global
valid_lft forever preferred_lft forever
inet6 fe80::402:c027:2cf:41f9/64 scope link stable-privacy
valid_lft forever preferred_lft forever
호스트에 루트 로 실행하십시오. b
gnb -n 1002 -I "120.76.206.113/9001" --multi-socket=on -p 12345678
시작이 성공하면 호스트 B에서 IP Addr를 실행하여 GNB 노드 IP를 확인하십시오.
3: gnb_do:mtu 1280 qdisc fq_codel state UNKNOWN group default qlen 500
link/none
inet 10.1.0.2/16 scope global gnb_tun
valid_lft forever preferred_lft forever
inet6 64:ff9b::a01:2/96 scope global
valid_lft forever preferred_lft forever
inet6 fe80::a6cf:9f:e778:cf5d/64 scope link stable-privacy
valid_lft forever preferred_lft forever
이 시점에서 호스트 A와 호스트 B Nat가 성공적으로 침투하여 호스트에 방화벽 개입이 없는지 확인하면 서로의 가상 IP를 핑할 수 있습니다.
호스트에서 실행 a
root @ hostA: ~ # ping 10.1.0.2
PING 10.1.0.2 (10.1.0.2) 56(84) bytes of data.
64 bytes from 10.1.0.2: icmp_seq=1 ttl=64 time=2.13 ms
64 bytes from 10.1.0.2: icmp_seq=2 ttl=64 time=2.18 ms
64 bytes from 10.1.0.2: icmp_seq=3 ttl=64 time=2.38 ms
64 bytes from 10.1.0.2: icmp_seq=4 ttl=64 time=2.31 ms
64 bytes from 10.1.0.2: icmp_seq=5 ttl=64 time=2.33 ms
호스트에서 실행 b
root @ hostA: ~ # ping 10.1.0.1
PING 10.1.0.1 (10.1.0.1) 56(84) bytes of data.
64 bytes from 10.1.0.1: icmp_seq=1 ttl=64 time=2.34 ms
64 bytes from 10.1.0.1: icmp_seq=2 ttl=64 time=1.88 ms
64 bytes from 10.1.0.1: icmp_seq=3 ttl=64 time=1.92 ms
64 bytes from 10.1.0.1: icmp_seq=4 ttl=64 time=2.61 ms
64 bytes from 10.1.0.1: icmp_seq=5 ttl=64 time=2.39 ms
위의 GNB 라이트 모드의 가장 간단한 사용 프로세스 인 GNB LITE 모드에는 5 개의 내장 노드가 있습니다. 네트워킹에 참여하기 위해 더 많은 호스트가 필요하고보다 안전한 비대칭 암호화 방법을 사용하여 GNB의 데이터 통신을 보호하십시오. 다음 문서를주의 깊게 읽으십시오.
GNB의 인덱스 노드의 역할은 일부 GNB 네트워크 자원 봉사자가 제공하는 BT 프로토콜의 트래커와 유사합니다. 대부분의 경우 index 노드는 GNB 네트워크의 호스트에 대한 주소 인덱스 만 제공하며 GNB 노드의 데이터를 전송하지 않습니다.
일부 자원 봉사자가 제공하는 GNB의 forward 노드는 극단적 인 경우에 포인트 간 통신을 일시적으로 수행 할 수없는 호스트의 데이터 전송을 수행 할 수 있으며 GNB 호스트 간의 비대칭 데이터 암호화는 forward 노드가 전송 된 데이터에 대한 스파이를 불가능하게 만듭니다.
피어 투 피어 커뮤니케이션을 설정할 수없는 극단적 인 경우, 공개 네트워크 forward 노드를 통해 데이터를 전송할지 여부와 데이터 전송에 사용하기 위해 신뢰할 수있는 전방 노드는 전적으로 GNB 노드의 호스트 소유자 설정에 따라 다릅니다. 실제로 매우 복잡한 네트워크 환경에서도 GNB의 우수한 링크 기능은 언제 어디서나 가상 데이터 링크를 설정할 수 있습니다. GNB는 네트워크의 호스트에 대한 여러 가상 링크를 생성하고 최적의 속도 경로를 선택하여 데이터 패킷을 전송합니다.
자원 봉사자가 제공하는 사용 가능한 index 노드는 다음과 같습니다
i|0|101.32.178.3|9001
host to net 및 net to net 모드에서 특정 서브넷에 대한 데이터를 전달할 수 있지만 전체 트래픽 전달을 지원하지는 않습니다.GNB는 OpenWRT 플랫폼을 지원하며 사용자가 컴파일해야합니다.
Systemd 스크립트는 Jin Buguo가 GNB 프로젝트를 위해 만들었습니다.
Atzlinux 프로젝트는 GNB 프로젝트를 위해 Linux에서 Deb 형식 소프트웨어 패키지를 만들어 공식 데비안 소프트웨어 패키지가되었습니다.
Debian 12 (Bookworm)에 OpenGNB를 설치할 수 있습니다.
apt install opengnbArch Linux의 AUR 패키지는 GNB 프로젝트를 위해 Taotieren에 의해 만들어졌습니다. 설치 방법은 다음과 같습니다
# install distribution
yay -Sy opengnb
# Install the development version
yay -Sy opengnb-git자세한 내용은 https://aur.archlinux.org/packages/opengnb/을 방문하십시오.
https://aur.archlinux.org/packages/opengnb-git/
각 플랫폼에서 컴파일 및 릴리스 버전의 GNB를 다운로드하십시오.
GNB_UDP_OVER_TCP는 TCP 링크를 통해 UDP 패킷을 전달하는 GNB 용으로 개발 된 서비스이며 UDP 프로토콜을 기반으로 다른 서비스에 대한 데이터를 전달할 수도 있습니다.
부인 성명