Forcez la diffusion UDP IPv4 sur toutes les interfaces réseau sous Windows 7 et versions ultérieures.
Téléchargez la dernière version.
Si vous travaillez sous Windows, vous serez peut-être surpris que les paquets de diffusion IPv4 UDP envoyés à l'adresse de diffusion globale 255.255.255.255
(toutes les interfaces réseau disponibles) ne soient pas réellement transmis à toutes les interfaces réseau disponibles présentes sur le serveur. système.
En effet, l'implémentation réseau Windows des sockets BSD considère que ces paquets ne peuvent être livrés qu'à l'interface de priorité la plus élevée (celle « par défaut »). La priorité de l'interface réseau est déterminée par sa valeur métrique qui est (généralement) automatiquement attribuée par le système. L’interface avec la valeur métrique la plus basse serait l’interface ayant la priorité la plus élevée. Normalement, il s'agit de l'interface via laquelle votre PC est connecté à Internet (ou à votre routeur domestique). Vous pouvez vérifier les valeurs de métriques attribuées par Windows à toutes les interfaces réseau en exécutant cette commande dans PowerShell :
Get-NetIPInterface
Quelle que soit la raison de ce comportement, cela implique sérieusement que toutes les autres interfaces réseau ne recevront pas de paquets de diffusion UDP globaux, et qu'une certaine application rencontrera des problèmes de connectivité si elle dépend de la livraison correcte de ces paquets.
En quoi est-ce important ? Considérons un PC connecté au réseau local avec un sous-réseau standard de 192.168.179.0/24 et un VPN avec un sous-réseau de 100.100.100.0/24. Il existe désormais un service exécuté sur ce PC auquel les clients VPN doivent également accéder et ce service s'appuie sur des paquets de diffusion UDP globaux pour la communication.
Naturellement, la seule façon de résoudre ce problème sous Windows est de relier les deux réseaux. Mais le pontage est hautement indésirable, car cela exposerait l'ensemble de votre réseau local à un groupe connecté via VPN.
BROADcast résout bien ce problème en capturant les paquets de diffusion UDP globaux livrés à la route principale (également appelée route « préférée ») et en les relayant simplement vers toutes les autres interfaces réseau appropriées que Windows a décidé de simplement ignorer.
Sur la capture d'écran ci-dessus, BROADcast capture les paquets de diffusion UDP globaux livrés à l'adresse LAN réelle 10.10.10.100
(étant également la route préférée) et les relaie vers l'adresse VPN 100.100.100.1
. Sans l'exécution de BROADcast, les paquets seraient restés livrés uniquement au 10.10.10.100
, ignorant complètement le segment VPN du réseau.
Voici des exemples de logiciels qui dépendent essentiellement de cette fonctionnalité : les applications de chat LAN, certains jeux vidéo multijoueurs et d'autres applications décentralisées utilisées pour la collaboration.
Remarque : BROADcast nécessite des privilèges d'administrateur pour fonctionner. En effet, il doit capturer les paquets UDP à l'aide de sockets bruts, ce qui n'est autorisé que pour les comptes élevés.
BROADcast est une application console. Il peut également s'exécuter en arrière-plan en tant que service Windows.
Commencez à relayer les paquets de diffusion UDP globaux :
broadcast.exe -b
Ajoutez -d
pour afficher des messages de diagnostic détaillés (utiles pour le dépannage) :
broadcast.exe -b -d
Les paquets de diffusion seraient transmis à toutes les interfaces réseau, à l'exception de celle par défaut. Utilisez Ctrl+C pour quitter BROADcast proprement.
En prime, BROADcast permet de faire de n'importe quelle interface celle par défaut (ou préférée). Pour ce faire, il prend la valeur métrique actuelle de l'interface que vous souhaitez transformer en valeur par défaut et l'ajoute à chaque valeur métrique d'interface, ce qui en fait la valeur métrique la plus basse de toutes :
BROADcast.exe -i " Interface " -m
Exécutez à nouveau la commande sans l'argument -m
pour annuler toutes les modifications de valeurs de métrique et restaurer les valeurs automatiques gérées par le système :
BROADcast.exe -i " Interface "
« Interface » est le nom de l'interface réseau qui peut être recherché (et modifié) dans la section « Centre Réseau et partage » du Panneau de configuration Windows. Vous pouvez y accéder rapidement en appuyant sur Win+R et en ouvrant :
%windir%explorer.exe shell:::{992CFFA0-F557-101A-88EC-00DD010CCC48}
Pour installer (ou désinstaller) BROADcast en tant que service Windows, appelez-le avec l'argument approprié :
broadcast .exe [install | uninstall]
Le référentiel BROADcast contient un exemple de configuration OpenVPN et des scripts pour exécuter BROADcast après le démarrage d'un serveur OpenVPN à l'aide d'un périphérique TAP.
Notez que si vous avez l'intention de démarrer BROADcast à partir d'OpenVPN à l'aide de sa fonctionnalité de script démarrage/arrêt, vous devez également exécuter OpenVPN avec les privilèges d'administrateur, tout comme BROADcast.
Pour cette raison, il est fortement recommandé de démarrer BROADcast séparément en tant que service Windows.
Bien qu'elle ne soit pas du tout directement liée à la diffusion BROADcast ou UDP, ForceBindIP est une autre béquille réseau Windows utile.
Contrairement à BROADcast, qui fournit un correctif pour le protocole UDP, ForceBindIP fournit un correctif similaire pour le protocole TCP en forçant une application à se lier (ou à écouter) sur une interface réseau particulière au lieu de celle qu'elle choisit automatiquement (qui n'est souvent pas celle que vous choisissez). vouloir).
Créer un logiciel de qualité est difficile et prend du temps. Si vous trouvez BROADcast utile, vous pouvez m'acheter un ☕ !