LINUX.ORG.RU
ФорумAdmin

правильный ли route?

 , , ,


0

2

Здравствуйте, я новичок в маршрутизации, погуглил что успел, но как всегда: все «надо было вчера», поэтому пишу в форум.

Задача: пробросить видеопоток с IP1(127.0.0.2) через определенную сетевую карту (usb1) на IP2 (xxx.xxx.xxx.xxx)

Вопрос 1: правильно ли я составил добавление маршрута?:

ip route add src 127.0.0.2 to xxx.xxx.xxx.xxx via 192.168.0.1 dev usb1

маршрут добавляется, но проброса нет. 127.0.0.2 пингуется и на него идет вещание. На xxx.xxx.xxx.xxx приема нет.

Вопрос 2 (необяз, но так было бы идеально) Можно ли составить маршруты, которые данные с одного IP адреса пробрасывали бы на другой IP одновременно через несколько интерфейсов? Если да, то можно хотя бы набросок?

Вопрос 3 (необяз, но тоже может стать выходом) как 4G модем определить как модем (см. детали ниже)?

ЗЫ (детали): Цель такого проброса: исключить потерю пакетов видеопотока, передавая его одновременно по нескольким каналам на IP2, где стоит сборщих пакетов. Ось Ubuntu 12.04. Одновременно работают несколько сетевых карт - это новейшие 4G USB модемы ZTE MF823, которые определяются только так, не считая режимов mass storage и cdrom. В отличие от 3G модемов, которые определяются как ttyUSBx, эти определяются как sdb, sdc и т.д.


А зачем указывать src? А на обратном интерфейсе то какой маршрут? Поди там у него указана локальная петля какая-нибудь, и он обратно на себя шлёт ответы.

DALDON ★★★★★
()

Вопрос поставлен так, что вроде бы все понятно, но я ничего не понял.

Почему IP1 живет в 127.0.0.0/8? IP2 (xxx.xxx.xxx.xxx) находится в 192.168.0.0/16, если нет, то в пределах прямой досягаемости от маршрутизатора, или где-то далеко в интернете? С машины xxx.xxx.xxx.xxx пингуется 192.168.0.1? Что-то мне подсказывает, что для достижения необходимого результата нужен DNAT и простой маршрутизации здесь не хватит.

В отличие от 3G модемов, которые определяются как ttyUSBx, эти определяются как sdb, sdc и т.д.

На сколько мне известно, LTE свисток и не должен определяться как ttyUSBx, а как блочное устройство sdx скорее всего определяется встроенная в модем флешка на которую производитель или кто-нибудь еще должен был записать драйвера и ПО для работы с модемом.

Deleted
()
Ответ на: комментарий от Deleted

Опишу подробнее:

видеопоток идет на нетбук на 127.0.0.1:5004 (IP1) и может дублироваться на любые другие адреса того же нетбука. Надо пробросить его в интернет (на IP2) через несколько USB модемов, которые определяются как сетевые карты. Втыкаю два USB модема:

результат route:

Kernel IP routing table
Destination.....Gateway.........Genmask.........Flags.Metric.Ref....Use Iface
default.............192.168.0.1.....0.0.0.0.........UG....0......0........0 usb0
link-local..........*...............255.255.0.0.....U.....1000...0........0 usb0
192.168.0.0.....*...............255.255.255.0U..U.....1......0........0 usb1
192.168.0.0.....*...............255.255.255.0...U.....1......0........0 usb0

результат ifconfig:...

usb0
Link encap:Ethernet HWaddr 36:4b:50:b7:ef:da
inet addr:192.168.0.153 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::344b:50ff:feb7:efda/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
...

usb1
Link encap:Ethernet HWaddr 36:4b:50:b7:ef:da
inet addr:192.168.0.154 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::344b:50ff:feb7:efda/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
...

titovk
() автор топика
Ответ на: комментарий от titovk

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

astupnikov
()
Ответ на: комментарий от astupnikov

второе: с локального IP нужно выкидывать пакеты в интернет через несколько интерфейсов одновременно

titovk
() автор топика
Ответ на: комментарий от titovk

Если вы получаете пакеты на локальный ip адрес, то вам нужно изменить адреса источника и назначения с помощью iptables (SNAT, DNAT) на адрес модема и адрес удаленной системы соответственно. Если механизм передачи видео позволяет получать данные через различные сессии, то можно использовать сразу оба модема, в противном случае придется использовать один, или поднимать vpn.

astupnikov
()
Ответ на: комментарий от astupnikov

вот примерно то что нужно, но ругается: «unknown protocol rtp». В целом правильно прописано?

iptables -t nat -I PREROUTING -d 127.0.0.2 -p rtp --dport 8086 -j DNAT --to-destination xxx.xxx.xxx.xxx:8086

iptables -t nat -I POSTROUTING -s xxx.xxx.xxx.xxx -o usb1 -p rtp -j SNAT --to-source 127.0.0.2:8086

titovk
() автор топика
Ответ на: комментарий от astupnikov

да, что-то не сообразил: RTP использует UDP, поэтому UDP и надо указывать

но трафик через модем все равно не идет :)

titovk
() автор топика
Ответ на: комментарий от titovk

В качестве IP адреса источника нужно испоьзовать usb модем, этот адрес потом занатит провайдер. Адрес 127.0.0.2 не маршрутизируется. Посмотрите в conntrack свои сессии, попробуйте логировать попадания в написанные правила. Можете с помощью wireshark посмотреть пакеты.

astupnikov
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.