1

что я имею

У меня есть домашняя сеть Wi-Fi 192.168.1.0/24 с ресурсом DLNA 192.168.1.100.
У меня есть телевизор с Ethernet и нетбук с интерфейсами Wi-Fi и Ethernet.
Я хочу, чтобы мой ноутбук вел себя как маршрутизатор. Это означает, что он получает мою домашнюю сеть через Wi-Fi и передает его через интерфейс Ethernet на ТВ.

что я хочу

Я хочу, чтобы мой телевизор распознал мой ресурс DNS в моей домашней сети.

что я сделал

Я настроил dhcp сервер на интерфейсе eth0 нетбука со следующей подсетью:

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;
}

Я настроил свой интерфейс eth0 на нетбуке так:

ifconfig eth0 10.0.0.1/24 

я включил пересылку:

echo 1 > /proc/sys/net/ipv4/ip_forward

Я добавил правила пересылки в 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

Теперь мой телевизор получает IP-адрес 10.0.0.5, и я могу просматривать Интернет, но мой телевизор не может найти ресурсы DLNA.

Вопрос

Я думаю, что обнаружение ресурса происходит только через 10.0.0.1/24, поэтому мой телевизор не может найти ресурс 192.168.1.100. Скажите, пожалуйста, как я могу создать какой-нибудь псевдоним, чтобы 192.168.1.100 стал псевдонимом, например, 10.0.0.10?

2 ответа2

2

DLNA транслируется только. Таким образом, вы не сможете маршрутизировать широковещательные пакеты из сети 10.0.0.0/24 в сеть 192.168.1.0/24.

Поэтому лучшим подходом было бы вообще не маршрутизировать, а вместо этого использовать ноутбук в качестве моста и поместить ресурс DLNA и телевизор в одну сеть. Это шаги.

  1. Избавьтесь от правил сервера dhcp и таблицы IP с ноутбука
  2. Мост интерфейсов ноутбука. То, как вы это делаете, зависит от дистрибутива, поэтому я приведу синтаксис debian/ubuntu, и вы сможете адаптироваться к вашему дистрибутиву.

Это /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

Замените x текущим IP-адресом ноутбука.

3) Настройте телевизор на использование DHCP

И этого должно быть достаточно. Мост соединит проводное соединение от телевизора к ноутбуку с помощью соединения Wi-Fi от ноутбука к остальной части сети. Поскольку это мост, трансляции DLNA будут пересылаться через мост, и ответы будут возвращаться.

Кроме того, мост означает, что широковещательная рассылка DHCP с телевизора также будет проходить через ноутбук, поэтому вам не нужен отдельный DHCP-сервер, он может использовать его в домашней сети.

0

Попробуйте добавить DNS-серверы к вашим параметрам DHCP. Вашему телевизору также может понадобиться что-то еще, например, доменное имя. Если ваш телевизор работал с другим маршрутизатором, я бы посмотрел на инструмент мониторинга DHCP (не знаю ни одного из них), посмотрел, какие опции раздавал DHCP-сервер, и имитировал их в вашей конфигурации.

Кроме того, вы echo 1 > /proc/sys/net/ipv4/ip_forward?

В-третьих, если ваш раздел range действительно выглядит как range 10.0.05 10.0.0.10 его, вероятно, необходимо изменить на range 10.0.0.5 10.0.0.10 .

Хорошо, после небольшой домашней работы, кажется, DLNA использует SSDP в качестве протокола обнаружения. Со страницы Википедии "Простой протокол обнаружения услуг":

SSDP - это текстовый протокол, основанный на HTTPU. Он использует протокол пользовательских дейтаграмм (UDP) в качестве основного транспортного протокола. Услуги объявляются системой хостинга с многоадресной адресацией по специально назначенному IP-адресу многоадресной рассылки в порту 1900. В IPv4 адресом многоадресной рассылки является 239.255.255.250 [3], а SSDP через IPv6 использует набор адресов ff0X::c для всех диапазонов области действия, указанных X. [4]

У меня нет большого опыта работы с многоадресным трафиком в Linux, но, похоже, вам нужно включить прием и пересылку многоадресного трафика, чтобы это работало.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .