IPTV и интернет на разных интерфейсах - как? [Решено]
На компьютере имеются два сетевых адаптера: один (eth0=192.168.1.251) подключен в локальную сеть 192.168.0-1.x и получает интернет через шлюз 192.168.1.2 и другой (eth1=192.168.2.3) - подключен к модему (192.168.2.1), с которого вещается IPTV.
config_eth0=( "192.168.1.251 netmask 255.255.254.0 broadcast 192.168.1.255" ) routes_eth0=( "default gw 192.168.1.2" ) config_eth1=( "192.168.2.3 netmask 255.255.255.0 broadcast 192.168.2.255" ) routes_eth1=( "default gw 192.168.2.1" )
Адреса IPTV-каналов имеют вид rtp://@238.0.2.9:8028 (rtp://@238.0.2.x:yyyy).
Варианты:
1. Активен только интерфейс eth0 - работает только интернет:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 0.0.0.0 255.255.254.0 U 0 0 0 eth0 127.0.0.0 127.0.0.1 255.0.0.0 UG 0 0 0 lo 0.0.0.0 192.168.1.2 0.0.0.0 UG 3 0 0 eth0
2. Активен только интерфейс eth1 - работает только IPTV:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 127.0.0.0 127.0.0.1 255.0.0.0 UG 0 0 0 lo 0.0.0.0 192.168.2.1 0.0.0.0 UG 2 0 0 eth1
3. Активны оба интерфейса (в системе два шлюза по умолчанию и два широковещательных адреса) - работает только IPTV:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 192.168.0.0 0.0.0.0 255.255.254.0 U 0 0 0 eth0 127.0.0.0 127.0.0.1 255.0.0.0 UG 0 0 0 lo 0.0.0.0 192.168.2.1 0.0.0.0 UG 2 0 0 eth1 0.0.0.0 192.168.1.2 0.0.0.0 UG 3 0 0 eth0
Если удалить default маршрут через eth1 - интернет начинает работать, но перестаёт IPTV.
Прописывание route add 238.0.2.0/24 gw 192.168.2.1 dev eth1 вместо удалённого default eth1 не помогает - IPTV не работает.
Пробовал поиграться с метриками default-маршрутов обоих интерфейсов - не помогает.
В общем, как можно заставить работать одновременно и IPTV, и интернет?
- Для комментирования войдите или зарегистрируйтесь
У меня для клиента openvpn
Возможно требуется ещё поднять nat на соответствующем интерфейсе.
Можно попробовать заюзать
Можно попробовать заюзать iptables - траффик iptv отправлять на его интерфейс, а всё остальное на интерфейс интернета. Для этого надо выяснить отличительные особенности пакетов iptv.
Или же данные с портов
Или же данные с портов используемых iptv отправлять толко на его интерфейс. Но если портов много и они могут меняться, то 1-й вариант предпочтительнее.
В общем, решил я поэкспериментировать..
Оставил со по умолчанию шлюзом второй (IPTV) интерфейс, а на первый (с интернетом) вешать по одному роуты вида x.0.0.0/8, меняя (добавляя) x от 0 до 255, т.е., грубо говоря, прописывать default через eth0 "постепенно", до пропадания вещания. В итоге оказалось, что при добавлении адреса 10.0.0.0/8 к eth0 пропадает вещание, т.е. для IPTV оказалось нужным прописывать этот маршрут.
Итак, рабочая комбинация внезапно и неожиданно оказалась следующей:
,
то есть шлюзом по умолчанию нужно было оставить "интернетовский", а через "IPTV"-шный шлюз пропускать 238.0.2.0/24 (ну это адреса потоков, понятно) и 10.0.0.0/8 (а это ну совсем непонятно, диапазон-то из выделенных под локальные сети).
Интересно было бы узнать объяснение всему этому, но именно с 10.10.10.0/8 машрутом всё отлично работает, и никак иначе. Так что помечу тему как решённую.