
lo que tengo
Tengo una red wifi doméstica 192.168.1.0/24 con recurso DLNA 192.168.1.100.
Tengo un televisor con ethernet y una netbook con interfaces wifi y ethernet.
Quiero que mi computadora portátil se comporte como un enrutador. Eso significa que obtiene mi red doméstica a través de wifi y la reenvía a través de la interfaz Ethernet al televisor.
lo que quiero
Quiero que mi televisor reconozca mi recurso dlna en mi red doméstica.
que he hecho
Configuré un servidor dhcp en la interfaz eth0 de la netbook con la siguiente subred:
subnet 10.0.0.1 netmask 255.255.255.0 {
range 10.0.0.5 10.0.0.10;
option routers 10.0.0.1;
}
Configuré mi interfaz eth0 en una netbook de esta manera:
ifconfig eth0 10.0.0.1/24
He habilitado el reenvío:
echo 1 > /proc/sys/net/ipv4/ip_forward
Agregué reglas de reenvío a iptables:
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
Ahora mi televisor obtiene una dirección IP 10.0.0.5 y puedo navegar por Internet, pero mi televisor no puede encontrar ningún recurso DLNA.
Pregunta
Creo que el descubrimiento de recursos solo pasa por 10.0.0.1/24, por lo que mi televisor no puede encontrar el recurso 192.168.1.100. Por favor, dígame cómo puedo crear algún tipo de alias para que 192.168.1.100 se convierta en un alias como 10.0.0.10.
Respuesta1
DLNA solo se transmite. Por lo tanto, no podrá enrutar paquetes de transmisión desde la red 10.0.0.0/24 a la red 192.168.1.0/24.
Por lo tanto, el mejor enfoque sería no enrutar en absoluto, sino utilizar su computadora portátil como puente y colocar el recurso DLNA y el televisor en la misma red. Estos son los pasos.
- Deshágase del servidor dhcp y las reglas de la tabla IP del portátil
- Puentee las interfaces del portátil. La forma de hacer esto depende de la distribución, por lo que le daré la sintaxis de Debian/ubuntu y podrá adaptarla a su distribución.
Esto es /etc/network/interfaces
:
auto lo br0
iface lo inet loopback
iface br0 inet static
bridge_ports eth0 wlan0
address 192.168.1.x
netmask 255.255.255.0
Reemplácela x
con la dirección IP actual de su computadora portátil.
3) Configure su televisor para usar DHCP
Y eso debería ser suficiente. El puente unirá la conexión por cable del televisor al portátil con la conexión wifi del portátil al resto de la red. Como es un puente, las transmisiones DLNA se reenviarán a través del puente y las respuestas volverán.
Además, el puente significa que las transmisiones DHCP desde el televisor también atravesarán la computadora portátil, por lo que no necesita un servidor DHCP separado, puede usar el de su red doméstica.
Respuesta2
Intente agregar servidores DNS a sus opciones de DHCP. Es posible que su televisor también necesite algo más, como un nombre de dominio. Si su televisor funcionara con algún otro enrutador, buscaría una herramienta de monitoreo DHCP (no conozco ninguna), vería qué opciones ofrece ese servidor DHCP y las imitaría con su configuración.
Además, ¿lo hiciste echo 1 > /proc/sys/net/ipv4/ip_forward
?
En tercer lugar, si su range
estrofa realmente parece que range 10.0.05 10.0.0.10
probablemente deba cambiarse a range 10.0.0.5 10.0.0.10
.
Muy bien, después de hacer un poco de tarea, parece que DLNA usa SSDP como protocolo de descubrimiento. De la página de Wikipedia "Protocolo simple de descubrimiento de servicios":
SSDP es un protocolo basado en texto basado en HTTPU. Utiliza el Protocolo de datagramas de usuario (UDP) como protocolo de transporte subyacente. Los servicios son anunciados por el sistema de alojamiento con direcciones de multidifusión a una dirección de multidifusión IP específicamente designada en el puerto número 1900. En IPv4, la dirección de multidifusión es 239.255.255.250[3] y SSDP sobre IPv6 utiliza la dirección establecida ff0X::c para todos los alcances. rangos indicados por X.[4]
No tengo mucha experiencia con el tráfico de multidifusión en Linux, pero parece que posiblemente necesites habilitar la recepción y el reenvío del tráfico de multidifusión para que esto funcione.