
o que eu tenho
Eu tenho uma rede wifi doméstica 192.168.1.0/24 com recurso DLNA 192.168.1.100.
Eu tenho uma TV com ethernet e um netbook com interfaces wifi e ethernet.
Quero fazer meu notebook se comportar como um roteador. Isso significa que ele obtém minha rede doméstica por Wi-Fi e a encaminha pela interface Ethernet para a TV.
o que eu quero
Quero fazer com que minha TV reconheça meu recurso DLNA na minha rede doméstica.
o que eu fiz
Configurei um servidor DHCP na interface eth0 do netbook com a seguinte sub-rede:
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;
}
Eu configurei minha interface eth0 no netbook assim:
ifconfig eth0 10.0.0.1/24
eu habilitei o encaminhamento:
echo 1 > /proc/sys/net/ipv4/ip_forward
Adicionei regras de encaminhamento ao 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
Agora minha TV recebe um endereço IP 10.0.0.5 e consigo navegar na Internet, mas minha TV não consegue encontrar nenhum recurso DLNA.
Pergunta
Acho que a descoberta de recursos só passa por 10.0.0.1/24, então minha TV não consegue encontrar o recurso 192.168.1.100. Por favor, diga-me como posso criar algum tipo de alias, então 192.168.1.100 se tornou um alias como 10.0.0.10
Responder1
DLNA é apenas transmitido. Portanto, você não poderá rotear pacotes de transmissão da rede 10.0.0.0/24 para a rede 192.168.1.0/24.
A melhor abordagem seria, portanto, não rotear, mas usar seu notebook como ponte e colocar o recurso DLNA e a TV na mesma rede. Estas são as etapas.
- Livre-se do servidor DHCP e das regras da tabela IP do notebook
- Faça a ponte entre as interfaces do notebook. Como você faz isso depende da distribuição, então darei a sintaxe debian/ubuntu e você poderá adaptar para sua distribuição.
Isso é /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
Substitua x
pelo endereço IP atual do seu laptop.
3) Configure sua TV para usar DHCP
E isso deveria ser suficiente. A ponte unirá a conexão com fio da TV ao laptop com a conexão wi-fi do laptop ao resto da rede. Por se tratar de uma ponte, as transmissões DLNA serão encaminhadas pela ponte e as respostas retornarão.
Além disso, a ponte significa que as transmissões DHCP da TV também passarão pelo laptop, e é por isso que você não precisa de um servidor DHCP separado, ele pode usar o da sua rede doméstica.
Responder2
Tente adicionar servidores DNS às suas opções de DHCP. Sua TV também pode precisar de algo mais, como um nome de domínio. Se a sua TV funcionasse com algum outro roteador, eu procuraria uma ferramenta de monitoramento de DHCP (não conheço nenhuma), veria quais opções o servidor DHCP distribuiu e as imitaria com sua configuração.
Além disso, você fez echo 1 > /proc/sys/net/ipv4/ip_forward
?
Terceiro, se sua range
estrofe realmente parecer, range 10.0.05 10.0.0.10
provavelmente precisará ser alterada para range 10.0.0.5 10.0.0.10
.
Tudo bem, depois de fazer um pouco de lição de casa, parece que o DLNA usa SSDP como protocolo de descoberta. Na página da Wikipedia "Protocolo Simples de Descoberta de Serviço":
SSDP é um protocolo baseado em texto baseado em HTTPU. Ele usa o User Datagram Protocol (UDP) como protocolo de transporte subjacente. Os serviços são anunciados pelo sistema de hospedagem com endereçamento multicast para um endereço IP multicast especificamente designado na porta número 1900. No IPv4, o endereço multicast é 239.255.255.250[3] e o SSDP sobre IPv6 usa o conjunto de endereços ff0X::c para todo o escopo intervalos indicados por X.[4]
Não tenho muita experiência com tráfego multicast no Linux, mas parece que você precisa ativar a recepção e o encaminhamento de tráfego multicast para que isso funcione.