Comment tuer des zombies plus efficacement avec ZeroTier



Vous avez un serveur sous le lit, une maison intelligente à la campagne et une caméra IP dans le garage. Comment les réunir tous dans un même réseau pour avoir accès à tous les appareils? Dans de telles situations, il est habituel d'utiliser un VPN, mais il existe une solution plus efficace - ZeroTier. Il crée un réseau peer-to-peer (P2P) entre les appareils, tout en le configurant est beaucoup plus simple qu'un VPN.

Nous avons déjà publié une série d'articles sur l'organisation d'un réseau P2P pour le support des utilisateurs distants. Dans ce document, nous avons envisagé la possibilité de construire un réseau virtuel décentralisé en utilisant ZeroTier. Contrairement aux solutions VPN traditionnelles, ZeroTier ne dispose pas d'un serveur de gestion central et une connexion est établie directement entre les appareils.

J'utilise souvent ZeroTier pour deux cas: se connecter aux appareils clients pour fournir un support et tuer les zombies dans les tireurs. Il est devenu intéressant pour moi de comparer d'autres modes de connexion sur un réseau local.

Si vous voulez comprendre le principe de ZeroTier, à ce sujet, nous avons publié un article détaillé avec analyse .

Connexion RDP pour le support Ă  distance


Presque tous les jours, je dois me connecter avec un client pour supprimer une rĂ©bellion de la machine et aider Ă  rĂ©soudre quelque chose. Dans une pandĂ©mie, ce sont des collègues qui travaillent Ă  domicile. 

Pour travailler avec les services internes de l'entreprise, une authentification est requise Ă  partir du rĂ©seau d'entreprise et un VPN a Ă©tĂ© installĂ© sur le routeur de bureau pendant longtemps au cas oĂą vous auriez besoin de faire quelque chose Ă  distance quelque part. 

Pour moi, s'y connecter et enregistrer quelques itinéraires dans le système n'est pas difficile, mais pour l'utilisateur moyen, c'était laborieux. Ainsi, une fois que le besoin s'est fait sentir d'une solution simple qui permettrait à l'utilisateur concerné de donner facilement accès à son ordinateur.

Je n'ai même pas envisagé Teamviewer ou Radmin à cause des limitations et du coût. De plus, je suis partisan du RDP orthodoxe, pas des services publics tiers. Je voulais que la solution soit aussi simple que possible dans la mise en œuvre et la personne avait besoin d'un minimum d'action de sa part. Et comme je ne m'inquiète pas seulement pour les employés de ma société natale et bien-aimée, et qu'ils aident parfois des personnages tiers, il serait faux d'utiliser un serveur VPN d'entreprise.

Qu'est-ce que je compare avec ZeroTier


Sur le réseau, vous pouvez trouver plusieurs solutions simples pour implémenter un réseau virtuel:

  • Tunngle qui ne fonctionne plus;
  • Evolve, qui a fusionnĂ© avec Player.me;
  • Hamachi;
  • Radmin VPN
  • Et ZeroTier, que nous avons sur le marchĂ© .

J'ai prévu de demander au client d'installer l'un des logiciels ci-dessus, de télécharger et d'exécuter le script suivant pour activer RDP:

# Execute with Administrator rights
$path = $MyInvocation.MyCommand.Path
if ($args[0] -ne $null) {
$path = $args[0]
}
$path = Split-Path -Path $path

$windowsID = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$windowsPrincipal = New-Object System.Security.Principal.WindowsPrincipal($windowsID)
$adminRole=[System.Security.Principal.WindowsBuiltInRole]::Administrator
if ($windowsPrincipal.IsInRole($adminRole)) {
$Host.UI.RawUI.WindowTitle = $myInvocation.MyCommand.Definition + "(Elevated)"
$Host.UI.RawUI.BackgroundColor = "DarkBlue"
clear-host
}
else {
$newProcess = New-Object System.Diagnostics.ProcessStartInfo "PowerShell";
$newProcess.WorkingDirectory = $path;
$newProcess.Arguments = $myInvocation.MyCommand.Definition;
$newProcess.Verb = "runas";
[System.Diagnostics.Process]::Start($newProcess);
exit
}

# Set RDP enabled
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" –Value 0

# Create firewall rule
New-NetFirewallRule -DisplayName "Remote Desktop Allow TCP" -Program "%SystemRoot%\system32\svchost.exe" -Action Allow -Protocol TCP -LocalPort 3389 -Direction Inbound -Enabled True
New-NetFirewallRule -DisplayName "Remote Desktop Allow UDP" -Program "%SystemRoot%\system32\svchost.exe" -Action Allow -Protocol UDP -LocalPort 3389 -Direction Inbound -Enabled True

# Add user to RDU group
$User = $env:USERNAME
Add-LocalGroupMember -SID "S-1-5-32-555" -Member $User


Paramètres d'évaluation de chaque programme


J'ai évalué toutes les solutions par paramètres:

  • Vitesse de transfert de fichiers sur un rĂ©seau local;
  • Facile Ă  installer, Ă  configurer et Ă  utiliser;
  • CoĂ»t et limites;
  • Fonctionnel;
  • Jeu (plus de dĂ©tails Ă  la fin).

Mon appréciation pour chaque paramètre est subjective et mérite d'être critiquée. Par conséquent, je me suis concentré sur les paramètres qui peuvent être mesurés par des tests.

Hamachi


Au moment de la rédaction du présent document, la dernière version du programme LogMeIn Hamachi pour Windows 2.2.0.633 était sortie en mars 2019. La version gratuite a une limite de 5 connexions simultanées au même réseau. Le coût de la version complète commence à 49 $ par an.

Pour commencer, il vous faut:

  • Inscrivez-vous au service;
  • Installer le logiciel
  • CrĂ©ez ou connectez-vous au rĂ©seau fini via une application graphique.

Pour estimer la vitesse de transfert de fichiers, j'ai utilisé CrystalDiskMark, effectuant des tests de lecture / écriture dans des dossiers précédemment partagés pour le réseau local et une simple copie d'un gros fichier.

Étant donné que tous les tests sont effectués sur deux PC avec la même configuration (dans chaque test, le même lecteur, les mêmes paramètres système, etc.), les résultats de CrystalDiskMark devraient donner une idée de la vitesse de transfert des données.

Remarque: après avoir écrit l'article, je doutais d'avoir choisi la meilleure solution pour les tests. Je pense que dans les commentaires, une meilleure approche sera suggérée.

RĂ©sultat temporel: la copie d'un fichier de 9 Go a pris exactement 21 minutes.



RĂ©sultats CrystalDiskMark.



Le ping entre les PC n'a pas dépassé 10 ms.



Radmin VPN


La dernière version de «Radmin VPN 1.1.3969.3» est sortie en décembre 2019. Il s'agit d'une application entièrement gratuite avec un design minimaliste et ne nécessitant même pas d'enregistrement.

Tout ce dont tu as besoin c'est:

  • TĂ©lĂ©charger;
  • Installer;
  • Connectez-vous au rĂ©seau;
  • Mangez un beignet.

La vitesse de transfert de fichiers est nettement inférieure à celle de Hamachi. 9 Go transféré un bon 43 minutes.



Les résultats de CrystalDiskMark sont également inférieurs à ceux d'Hamachi.



Ping: 10-11ms.



Sans le beignet mangé, les résultats seraient peut-être différents. Lors de la connexion via RDP, il n'y a eu aucun problème particulier.

ZeroTier


Il s'agit d'un projet open source unique:

  • Il est disponible en tant que solution de cloud public;
  • Fourni par le modèle SaaS;
  • Il a quatre plans d'abonnement.

De plus, je considérerai une solution open source d'un développeur tiers: l'interface utilisateur du contrôleur de réseau ZeroTier .

Nous avons déjà examiné en détail le principe de ses travaux dans cet article . Je vais énumérer uniquement les principales caractéristiques qui le rendent si intéressant:

1. Puisque nous parlons d'un réseau P2P, le trafic ne passe pas par le nœud que nous avons soulevé, mais directement d'un appareil à l'autre. Le nœud est nécessaire exclusivement pour la configuration initiale de la connexion. De plus, il n'est pas impliqué dans le travail. Le nœud peut être complètement désactivé, la connexion ne sera pas déconnectée. Il ne sera requis qu'en cas de reconnexion.

2. Le nœud est peu exigeant pour les ressources. Il fonctionne tranquillement sur notre VPS le moins cherpour 130 p. par mois (ou 30 roubles, si vous avez réussi à saisir le même tarif).

3. Il n'y a pas de limite sur le nombre d'utilisateurs et de réseaux: vous pouvez connecter l'ensemble de votre filière universitaire et organiser une réunion de camarades de classe dans Counter-strike.

Pour créer un nœud, nous devons augmenter le VPS avec le côté serveur de l'application. Le processus a également été décrit précédemment .

La partie client de ZeroTier One a un design minimaliste et un ensemble de paramètres très modeste. Nous devons envoyer à l'utilisateur uniquement l'ID de notre nœud et l'autoriser.



9 Go a volé pendant 20 minutes. Légèrement plus rapide que Hamachi.



CrystalDiskMark a également montré des valeurs légèrement plus élevées.



Ping, comme partout ailleurs, a sauté environ 10 ms.



Deuxième cas: comment se livrer à une détente culturelle sur un PC faible au bureau


ZeroTier offre une autre opportunité - la façon désormais populaire de diffuser le jeu sur un autre appareil (à la GeForce Now). Pour cela, il existe trois alternatives à ZeroTier: RDP, Parsec et Moonlighrt. Essayons-les.

â–Ť RDP


Malheureusement, pas adapté pour cela. La plupart des jeux que j'ai testés refusaient tout simplement de fonctionner normalement. Soit s'est écrasé en raison de l'incompatibilité du pilote vidéo, soit n'a tout simplement pas répondu au contrôle.

â–Ť Parsec


Il s'agit d'un logiciel gratuit spécialisé conçu pour transférer des vidéos entre des PC en mettant l'accent sur une latence ultra faible. Contrairement à Teamviewer ou Radmin, Parsec est capable de transmettre 60 FPS stables en image FullHD dans un confort relatif (afin de ne pas obtenir un drakeface encore et encore).



Pour une utilisation confortable, il est recommandé que l'hôte dispose d'une connexion par câble avec une vitesse d'au moins 30 Mbps.

Dans la grande majorité des jeux, vous pouvez jouer confortablement sans ressentir un décalage d'entrée élevé, mais, malheureusement, la qualité d'image en souffre. En raison des méthodes de compression, l'image est divisée en pixels sur des éléments contrastés et cela fait beaucoup mal aux yeux. Les jeux dépendants du FPS, tels que les tireurs, ne peuvent pas être joués avec le bon niveau de confort. Le décalage d'entrée, bien que faible, mais de temps en temps, certains tics de l'image sont perceptibles, ce qui, bien qu'il n'interfère pas avec le tir, est ennuyeux.

Parsec surpasse exactement les autres solutions dans une coopérative locale. Étant donné que Parsec vous permet simplement de partager l'image du moniteur, il est possible de jouer à un jeu coopératif dans n'importe quel lieu sans problème. De plus, la distance entre vous n'a pas d'importance. J'ai aimé jouer à Cuphead avec un ami de Novossibirsk et je n'ai rencontré aucun problème avec la réaction.

Parsec est également bon au travail quotidien. Il est plus rapide, transfère une meilleure image que Teamviewer et ne limite pas le nombre de bureaux distants. Cependant, à de telles fins, j'utilise toujours RDP, ringard pour le système d'exploitation intégré et la possibilité de transmettre des disques locaux.

â–Ť Clair de lune


Il s'agit d'Open source, une solution entièrement gratuite pour les jeux à distance.
Je citerai leur site:
Moonlight (anciennement Limelight) est une implémentation open source du protocole NVIDIA GameStream. Nous avons implémenté le protocole utilisé par NVIDIA Shield et écrit un ensemble de clients tiers.

La réalisation la plus évidente et la plus importante de Moonlight est la possibilité de diffuser des vidéos 4K à 120 FPS ou plus avec une absence totale de tout retard.

Moonlight ne fonctionne que si la machine hôte dispose d'une carte Nvidia installée. Cela est dû au fait que le projet émule NVIDIA Shield et fonctionne directement avec le pilote. C'est ce qui vous permet de diffuser 4K 120FPS sans délai sur un réseau local.

De plus, le deuxième inconvénient de Moonlight est l'impossibilité de jouer sur Internet sans danser avec un tambourin supplémentaire.

â–Ť Clair de lune + Hamachi


Malheureusement, je n'ai pas de carte de capture et je ne peux tout simplement pas retirer le moniteur du téléphone ... Par conséquent, vous devrez soit croire mes paroles, soit tester indépendamment chaque solution. La bande passante de Hamachi est suffisante pour un jeu confortable en 2K 60-120FPS. Avec une résolution croissante, les microfrises deviennent considérablement plus fortes.

Il est possible de jouer à des jeux dépendants du FPS, mais ici et là, le jeu peut se bloquer pendant un quart de seconde. Parsec fait encore mieux en termes de minimisation des retards. Cependant, il perd en qualité d'image. Ici, c'est à vous de décider ce qui est le plus important: le retard d'entrée minimum et les artefacts d'image ou l'image parfaite, mais les micro-frises?

VPN Moonlight + Radmin VPN


Radmin VPN s'est comporté de la même manière que dans les synthétiques. Relativement confortable à jouer, il s'est avéré uniquement en FullHD et 60FPS. La résolution juste au-dessus a conduit à un diaporama insupportable. Et de temps en temps, l'image se figeait complètement pendant 2 secondes Malheureusement, ce groupe s'est avéré être le pire.

â–Ť Moonlight + ZeroTier


Et maintenant, nous sommes arrivés à un délicieux couple. Inutile de dire que le référentiel officiel Moonlight conseille ZeroTier spécifiquement pour la construction d'une connexion P2P. J'ai littéralement échoué à distinguer le gameplay d'un jeu lancé à distance du lancement sur un PC local. Toutes les fonctionnalités déclarées de Moonlight fonctionnent. C'est dommage que mon ami de Novossibirsk ait eu une carte AMD et ait dû tester dans la même ville, en appelant son frère (c'est le nord et le sud de Moscou).

L'image est d'une résolution fluide jusqu'à 4K et sans aucun frein. La réponse à la pression est instantanée, vous pouvez jouer à des tireurs comme celui-ci. Ce pack est peut-être la meilleure option pour les jeux en nuage.

résultats


ZeroTier est peut-être la meilleure solution abordable pour construire rapidement des réseaux peer-to-peer. Oui, sa fonctionnalité ne vous permettra pas de construire des réseaux complexes et ne donnera pas accès à toute la variété des paramètres du L2TP / IPsec classique. Mais ce n'est pas toujours nécessaire pour des tâches simples.

Parsec est probablement la seule option pour jouer à distance à des jeux qui prennent en charge une coopérative locale ou un écran partagé (je me suis immédiatement souvenu de Lovers in a Dangerous Spacetime). Il n'est pas lié à une technologie spécifique d'équipement physique et ne nécessite pas de paramètres réseau supplémentaires. Cependant, cela peut gravement compromettre la qualité de l'image. En l'absence de possibilité de se connecter au PC distant à l'aide de méthodes régulières, il convient à une assistance informatique rapide.

clair de lune- Si votre carte Nvidia est installée sur votre PC de jeu, alors Moonlight + ZeroTier est une paire idéale pour les jeux à distance. ZeroTier résout le problème de la mise en place d'un réseau virtuel de manière simple et élégante. Moonlight, grâce à l'émulation de Nvidia Shield, vous permet de transférer sans délai de superbes photos. Il ne permet pas la configuration de PC à distance, mais j'ai décrit d'autres solutions ci-dessus.


All Articles