Le protocole de communication d'OpenGNB version 1.5.0 a été mis à niveau et n'est pas compatible
Anglais chinois
Remarque: La plupart du contenu de cet article est traduit par Google Translate de la version chinoise du "OpenGNB User Manual", le contenu de cet article est soumis à la version chinoise.
OpenGNB est un réseau virtuel défini par logiciel P2P Open Source avec une capacité de pénétration intranet extrême, vous permet de combiner votre réseau d'entreprise à domicile dans un LAN à accès direct.
Tout le code lié au projet GNB est publié en open source, et le code source actuellement publié prend en charge les plates-formes suivantes: FreeBSD Linux OpenWrt RaspberryPI OpenBSD MacOS
Organigramme LR
sub-graph lan a
nodea [vpn clienta]
fin
sub-graph wan
Nodef [VPN Server]
fin
sub-graph lan b
NodeB [VPN ClientB]
fin
NODEA <- TUAD LA PATUITE ---> Nodef <- Télélé utile ---> NodeB
Nat Traversal Point to Point
Organigramme LR
sub-graph lan a
nodea [gnb nodea]
fin
sub-graph wan
index [nœud d'index public GNB]
fin
sub-graph lan b
nodeb [gnb nodeb]
fin
NODEA -. Adresse NodeB .- Index -. Adresse novice.- NODEB
nodea <- charge utile -> nodeb
Organigramme LR
sub-graph lan a
nodea [gnb nodea]
fin
sub-graph wan
NODEC [NODEC]
nodi
nodee [nodee]
nodef [nodef]
nodej [nodej]
nodek [nodek]
nodeg [nodeg]
nodeh [nodeh]
nodei [nodei]
fin
sub-graph lan b
nodeb [gnb nodea]
fin
NODEA [NODEA] ---- NODEC [NODEC] ---- NODED [NODED] ---- NODEE [NODEE] ---- NODEF [NodeF] ---- NodeB [NodeB]
NODEA [NODEA] ---- nodeg [nodeg] ---- nodeh [nodeh] ---- nodei [nodei] ---- nodeb [nodeb]
NODEA [NODEA] ---- NodeJ [NodeJ] ---- Nodek [Nodek] ---- NodeB [NodeB]
Organigramme LR
sub-graph lan a
nodea [gnb nodea]
fin
sub-graph lan c
NODEC [GNB NODEC]
fin
sub-graph lan d
noda [gnb hodé]
fin
sub-graph lan e
nodee [gnb nodee]
fin
sub-graph lan b
nodeb [gnb nodeb]
fin
NODEA ---- Nodec & noda & nodee ---- NodeB
Organigramme LR
sub-graph lan a
nodea [gnb nodea]
upd_over_tcp_a [upd_over_tcp]
fin
sub-graph wan
upd_over_tcp_b [upd_over_tcp]
nodeb [gnb nodeb]
fin
nodea --udp upload up --- upd_over_tcp_a - Tcp Payload --- upd_over_tcp_b --dp upload --- nodeb
git clone https://github.com/gnbdev/opengnb.git
cd opengnb
make -f Makefile.linux install
Après la compilation, vous pouvez obtenir des fichiers gnb gnb_crypto gnb_ctl gnb_es dans le répertoire opengnb/bin/ .
Copiez gnb gnb_crypto gnb_ctl gnb_es pour héberger A et Host B respectivement.
En supposant que l'hôte A et l'hôte B doivent pénétrer temporairement l'interconnexion intranet dans deux LAN différentes, le moyen le plus rapide est d'exécuter GNB via le mode Lite. En mode Lite, le cryptage asymétrique n'est pas activé, et uniquement via le mot de passe et l'ID de nœud génère la clé de cryptage, de sorte que la sécurité sera beaucoup moins modulaire que de travailler avec un cryptage asymétrique.
Passcode est une chaîne hexadécimale 32 bits avec une longueur de 8 caractères, qui peut être représentée comme 0xFFFFFFFF ou FFFFFFFF , sous un code d'accès à index public est le même nœud GNB qu'il est considéré comme un nœud sur le même réseau virtuel. Veuillez choisir un code d'accès qui ne sera pas le même que les autres utilisateurs autant que possible. Ici, pour la commodité de la démonstration, le mot de passe est sélectionné comme 12345678 et le paramètre ** - p ** utilisé pour spécifier le code d'accès pour démarrer le nœud. N'utilisez pas un code d'accès aussi simple dans une utilisation réelle, il peut entrer en conflit avec d'autres utilisateurs qui utilisent également 12345678 comme mot de passe et provoquer une défaillance de la communication.
Exécuter avec root sur l'hôte un
gnb -n 1001 -I "120.76.206.113/9001" --multi-socket=on -p 12345678
Une fois le startup qui réussit, exécutez IP addr sur l'hôte A pour voir le nœud IP GNB
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
Exécuter avec root sur l'hôte b
gnb -n 1002 -I "120.76.206.113/9001" --multi-socket=on -p 12345678
Une fois le démarrage qui réussit, exécutez IP addr sur l'hôte B pour voir le nœud 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
À ce stade, si l'hôte A et l'hôte B NAT pénètrent avec succès et s'assurent qu'il n'y a pas d'intervention de pare-feu sur l'hôte, ils peuvent cingler l'IP virtuel de l'autre.
Exécuter sur l'hôte 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
Exécuter sur l'hôte 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
Le processus d'utilisation le plus simple du mode GNB Lite ci-dessus, le mode GNB Lite a 5 nœuds intégrés, si vous avez besoin de plus d'hôtes pour participer à la mise en réseau et utiliser une méthode de chiffrement asymétrique plus sécurisée pour protéger la communication de données de GNB, veuillez lire attentivement les documents suivants.
Le rôle du nœud d'index de GNB est similaire au tracker dans le protocole BT, qui est fourni par certains volontaires du réseau GNB. Dans la plupart des cas, le nœud index ne fournit que l'indice d'adresse pour les hôtes du réseau GNB et ne transférera pas les données du nœud GNB.
Le nœud forward de GNB fourni par certains volontaires peut effectuer un transfert de données pour les hôtes qui sont temporairement incapables d'effectuer une communication point à point dans des cas extrêmes, et le chiffrement des données asymétriques entre les hôtes GNB rend impossible le nœud forward d'espionnage sur les données transférées.
Dans les cas extrêmes, où la communication entre pairs ne peut pas être établie, qu'il s'agisse de transférer des données via le nœud de forward du réseau public et le nœud de transfert de confiance pour transférer des données dépend entièrement des paramètres du propriétaire de l'hôte sur le nœud GNB. En fait, même dans un environnement de réseau extrêmement complexe, la capacité de liaison supérieure de GNB peut établir des liens de données virtuels à tout moment, n'importe où. GNB créera même plusieurs liens virtuels pour les hôtes du réseau et choisira le chemin de vitesse optimal pour envoyer des paquets de données.
Voici les nœuds index disponibles fournis par les bénévoles
i|0|101.32.178.3|9001
host to net et net to net , GNB peut transmettre des données pour des sous-réseaux spécifiques, mais ne prend pas en charge le transfert complet du trafic;GNB prend en charge la plate-forme OpenWRT et doit être compilée par l'utilisateur.
Le script systemd a été fabriqué par Jin Buguo pour le projet GNB
Le projet Atzlinux a réalisé un progiciel de format Deb sous Linux pour le projet GNB, et l'a contribué à devenir le progiciel officiel Debian.
Vous pouvez installer OpenGNB sur Debian 12 (Bookworm):
apt install opengnbLe package AUR d'Arch Linux a été fabriqué par Taoteren pour le projet GNB. La méthode d'installation est la suivante
# install distribution
yay -Sy opengnb
# Install the development version
yay -Sy opengnb-gitPour plus de détails, veuillez visiter https://aur.archlinux.org/packages/openngnb/
https://aur.archlinux.org/packages/openngnb-git/
Téléchargez la version compilée et publiée de GNB sur chaque plate-forme
GNB_UDP_OVER_TCP est un service développé pour GNB qui transmet les paquets UDP via le lien TCP, et peut également transmettre des données pour d'autres services en fonction du protocole UDP.
Clause de non-responsabilité