Как создать псевдоним IP-адреса, чтобы сделать ресурс DLNA доступным из другой IP-сети

Как создать псевдоним IP-адреса, чтобы сделать ресурс DLNA доступным из другой IP-сети

что у меня есть

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

что я хочу

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

что я наделал

Я настроил 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

решение1

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-сервер, можно использовать тот, что в вашей домашней сети.

решение2

Попробуйте добавить 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 в качестве протокола обнаружения. Со страницы Википедии "Simple Service Discovery Protocol":

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

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

Связанный контент