Fuerce la transmisión UDP IPv4 en todas las interfaces de red en Windows 7 y versiones posteriores.
Descargue la última versión.
Si trabaja con Windows, le sorprenderá saber que los paquetes de transmisión UDP IPv4 enviados a la dirección de transmisión global 255.255.255.255
(todas las interfaces de red disponibles), bueno, en realidad no se entregarán a todas las interfaces de red disponibles presentes en el sistema.
Esto se debe a que la implementación de redes de Windows de sockets BSD considera que dichos paquetes se pueden entregar sólo a la interfaz de mayor prioridad (la "predeterminada"). La prioridad de la interfaz de red está determinada por su valor métrico que (normalmente) el sistema asigna automáticamente. La interfaz con el valor métrico más bajo sería la interfaz de mayor prioridad. Normalmente, esta es la interfaz a través de la cual su PC se conecta a Internet (o al enrutador de su hogar). Puede verificar los valores de métricas asignados por Windows a todas las interfaces de red ejecutando este comando en PowerShell:
Get-NetIPInterface
Cualquiera que sea el motivo de este comportamiento, tiene una implicación grave de que todas las demás interfaces de red no recibirán paquetes de difusión UDP globales, y una determinada aplicación experimentará problemas de conectividad si depende de que dichos paquetes se entreguen correctamente.
¿Qué importancia tiene esto? Considere una PC conectada a la red de área local con una subred estándar de 192.168.179.0/24 y una VPN con una subred de 100.100.100.0/24. Ahora hay un servicio ejecutándose en esta PC al que los clientes VPN también tienen que acceder y este servicio se basa en paquetes de transmisión UDP globales para la comunicación.
Naturalmente, la única forma de resolver este problema en Windows es unir ambas redes. Pero el puente es altamente indeseable porque hacerlo expondría toda su LAN a una parte conectada a través de VPN.
BROADcast resuelve muy bien este problema capturando paquetes de difusión UDP globales entregados a la ruta principal (también llamada ruta "preferida") y simplemente retransmitiéndolos a todas las demás interfaces de red adecuadas que Windows decidió pasar por alto.
En la captura de pantalla anterior, BROADcast captura paquetes de transmisión UDP globales entregados a la dirección LAN real 10.10.10.100
(que también es la ruta preferida) y los transmite a la dirección VPN 100.100.100.1
. Sin BROADcast en ejecución, los paquetes se habrían entregado solo a 10.10.10.100
, ignorando por completo el segmento VPN de la red.
Ejemplos de software que dependen vitalmente de esta funcionalidad incluyen: aplicaciones de chat LAN, algunos videojuegos multijugador y otras aplicaciones descentralizadas utilizadas para la colaboración.
Nota: BROADcast requiere privilegios de administrador para poder ejecutarse. Esto se debe a que tiene que capturar paquetes UDP utilizando sockets sin formato, y esto solo está permitido para cuentas elevadas.
BROADcast es una aplicación de consola. También puede ejecutarse en segundo plano como un servicio de Windows.
Comience a retransmitir paquetes de difusión UDP globales:
broadcast.exe -b
Agregue -d
para mostrar mensajes de diagnóstico detallados (útil para solucionar problemas):
broadcast.exe -b -d
Los paquetes de difusión se entregarían a todas las interfaces de red excepto a la predeterminada. Utilice Ctrl+C para salir de BROADcast limpiamente.
Como característica adicional, BROADcast permite hacer que cualquier interfaz sea la predeterminada (o preferida). Lo hace tomando el valor métrico actual de la interfaz que desea convertir en predeterminado y agregándolo a los valores métricos de cada interfaz, convirtiéndolo en el valor métrico más bajo de todos:
BROADcast.exe -i " Interface " -m
Ejecute el comando nuevamente sin el argumento -m
para deshacer todos los cambios de valores de métricas y restaurar los valores automáticos administrados por el sistema:
BROADcast.exe -i " Interface "
"Interfaz" es el nombre de la interfaz de red que se puede buscar (y cambiar) en la sección "Centro de redes y recursos compartidos" del Panel de control de Windows. Puede acceder a él rápidamente presionando Win+R y abriendo:
%windir%explorer.exe shell:::{992CFFA0-F557-101A-88EC-00DD010CCC48}
Para instalar (o desinstalar) BROADcast como un servicio de Windows, invoquelo con el argumento apropiado:
broadcast .exe [install | uninstall]
El repositorio de BROADcast contiene un ejemplo de configuración de OpenVPN y scripts para ejecutar BROADcast después de iniciar un servidor OpenVPN utilizando un dispositivo TAP.
Tenga en cuenta que si tiene intención de iniciar BROADcast desde OpenVPN utilizando su funcionalidad de script de inicio/detención, también debe ejecutar OpenVPN con privilegios de administrador, al igual que BROADcast.
Debido a esto, se recomienda encarecidamente iniciar BROADcast por separado como un servicio de Windows.
Si bien no está directamente relacionado con BROADcast o UDP, otro apoyo útil para las redes de Windows es ForceBindIP.
A diferencia de BROADcast, que proporciona una solución para el protocolo UDP, ForceBindIP proporciona una solución similar para el protocolo TCP al obligar a una aplicación a vincularse (o escuchar) en una interfaz de red particular en lugar de la que elige automáticamente (que a menudo no es la que usted desear).
Crear software de calidad es difícil y requiere mucho tiempo. Si encuentras útil BROADcast, ¡puedes comprarme un ☕!