Страница 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
Спасибо громадное!!!