привязка программы к сетевому интерфейсу
привязка программы к сетевому интерфейсу
Задача следующая:
есть два выхода в инет (к примеру один шлюз 192.168.1.1; 2-й -- 192.168.2.1 (либо могут быть в одном диапазоне))
как ограничить какую-либо программу работой только с одним шлюзом?
система Debian
есть два выхода в инет (к примеру один шлюз 192.168.1.1; 2-й -- 192.168.2.1 (либо могут быть в одном диапазоне))
как ограничить какую-либо программу работой только с одним шлюзом?
система Debian
Stasevich, если речь о сферической программер в вакууме - то можно сделать:
1) средствами виртуализации типа xen/openvz/vserver
2) написанием собственного костыля для LD_PRELOAD перегружающего пару системных вызовов
3) Подменой source ip в netfilter - где-то около цепочек OUTPUT, POSTROUTING и таблицы nat предположительно. Хотя возможно придется и еще глубже вмешаться.
В целом, существет вомзожность классифицировать исходящие пакеты по PID или врадельцу процесса который их создает, маркировать их и затем на основе этой классификации маршрутизировать по-разному.
Выбирайте ,какой способ вам более по душе.
К прочтению рекомендуется:
http://www.opennet.ru/docs/RUS/LARTC/
1) средствами виртуализации типа xen/openvz/vserver
2) написанием собственного костыля для LD_PRELOAD перегружающего пару системных вызовов
3) Подменой source ip в netfilter - где-то около цепочек OUTPUT, POSTROUTING и таблицы nat предположительно. Хотя возможно придется и еще глубже вмешаться.
В целом, существет вомзожность классифицировать исходящие пакеты по PID или врадельцу процесса который их создает, маркировать их и затем на основе этой классификации маршрутизировать по-разному.
Выбирайте ,какой способ вам более по душе.
К прочтению рекомендуется:
http://www.opennet.ru/docs/RUS/LARTC/
Опыт растет прямо пропорционально выведенному из строя оборудованию