LINUX.ORG.RU
ФорумAdmin

IPTABLES

 , ,


0

2

помогите решить проблему.

Есть машина с OS Linux Raspbian, на машине запущено приложение (исходников нет),которое связывается с удаленным сервером, отправляя ему свой МАС и еще пару параметров, все эти параметры умещаются в содержимое одного пакета. Когда машина подключена к интернету через eth0, то всё работает идеально - пакет с необходимым содержимым отправляется, регистрация на сервере проходит. Когда подключаемся через 3g модем, то пакеты уходят пустыми, соединения с сервером не происходит.Соединение с интернетом есть, пакеты на шлюз сервера приходят. Сложилось следующее мнение: поскольку 3g модем работает по протоколу ррр, то у него отсутствует МАС адрес и приложение, обращаясь на ррр0 за МАС адресом ничего там не находит и выбрасывает пустой пакет.

Путь решения проблемы был выбран следующий: принудительно отправлять пакеты приложения на интерфейс eth0 и с него перенаправлять на ррр0, а от ррр0 уже в мир. IP адрес 3g модема - динамический. Прошу подсказать, правильный ли выбран путь, если да, то помогите с написанием правил в iptables.



Последнее исправление: Kalina (всего исправлений: 2)

Путь может быть и правильный, но пока не понятно, будет ли это работать вобще. Ведь зачем-то приложение шлёт свой MAC на другую сторону, и если он там нужен для формирования ответа, может вам поднять tap-тунель с другой стороной?

И ещё не понятно, как приложение выбирает интерфейс, он у него в конфиге задаётся? Потому что:

принудительно отправлять пакеты приложения на интерфейс eth0

звучит бредово. Если mac-адрес внутри ip-пакета, то он там должен быть до того, как пакет уйдёт через интерфейс, в тот момент, когда его формирует приложение. То есть нужно, чтобы приложение хотело отправить пакет через eth0, а на самом деле он уходил через ppp0.

И не понятно, mac-адрес там точно внутри ip-пакета, в протокол изучили?

mky ★★★★★
()

запускать это приложение в контейнере. При наличии aufs/overlayfs это совсем просто.

перенаправить на eth0 - странная затея. Кто в этом eth0 , будет пакеты назад возвращать ?

Приложение без исходников и названия?

vel ★★★★★
()

Предложенное решение неверное, высока вероятность заработать головную боль в будущем.

Средства iptables конечно позволяют манипулировать содержимым пакетов, но модификация payload у неизвестного протокола явно не его задача. mky уже озвучил проблемные моменты.

Рекомендую сделать иначе. Контейнеры тут уже продложили, но это слишком жирно для такой задачи.

Запустите это приложение в отдельном сетевом ns, с одним интерфейсом ( veth), обрабатывайте трафик в основной ns и маршрутизируйте в большой интернет.

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

Большое спасибо за ответ. Приложение шлет МАС для аутентификации. Пробовал объединить интерфейсы (eth0 ppp0), подошло, при задании ip адреса из подсети eth0 приложение работает, хотя и отправляет в содержимом пакета МАС адрес eth0 + параметры ррр0 порта, однако все равно информация уходит через eth0, а через ррр0 настроить не могу т.к. ip у него -динамический.

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

Спасибо за ответ, по поводу контейнеров - действительно жирно. «Запустите это приложение в отдельном сетевом ns, с одним интерфейсом ( veth), обрабатывайте трафик в основной ns и маршрутизируйте в большой интернет» Можно по подробнее? Также буду очень благодарен полезным ссылкам.

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