Страница 1 из 1

привязка программы к сетевому интерфейсу

Добавлено: 28 фев 2008, 02:46
Stasevich
Задача следующая:
есть два выхода в инет (к примеру один шлюз 192.168.1.1; 2-й -- 192.168.2.1 (либо могут быть в одном диапазоне))

как ограничить какую-либо программу работой только с одним шлюзом?

система Debian

Добавлено: 28 фев 2008, 03:50
IceMan
Как вариант - создать алиас для сетевого интерфейса, привязать софтину к алиасу, в iptables промаркировать пакеты с адресом источника равного алиасу интерфейса и в конце роутить пакеты согласно выставленным маркам.

Добавлено: 28 фев 2008, 08:21
Stasevich
Если можно то по-подробнее как софтину к алиасу привязать?
И как разрулить 2 основных шлюза

Добавлено: 28 фев 2008, 13:11
Llama
Stasevich, если речь о сферической программер в вакууме - то можно сделать:
1) средствами виртуализации типа xen/openvz/vserver
2) написанием собственного костыля для LD_PRELOAD перегружающего пару системных вызовов
3) Подменой source ip в netfilter - где-то около цепочек OUTPUT, POSTROUTING и таблицы nat предположительно. Хотя возможно придется и еще глубже вмешаться.


В целом, существет вомзожность классифицировать исходящие пакеты по PID или врадельцу процесса который их создает, маркировать их и затем на основе этой классификации маршрутизировать по-разному.

Выбирайте ,какой способ вам более по душе.

К прочтению рекомендуется:
http://www.opennet.ru/docs/RUS/LARTC/

Добавлено: 28 фев 2008, 15:35
Stasevich
Спасибо большое.
Теперь хоть я сно в какую сторону копать.
Буду пробывать 3-ий вариант (хоть слова знакомые :) )

Может у кого хоть какие-то готовые наброски есть?
Буду очень признателен.

Добавлено: 28 фев 2008, 20:11
Stasevich
Еще один вопрос...
Как поставить метку на пакет по PID (по программе)?

Добавлено: 28 фев 2008, 21:41
Llama

Добавлено: 28 фев 2008, 23:24
Stasevich
Спасибо громадное!!!