Добрый день 2 года назад я написал сервер к которому подключено несколько сетей и который я поддерживаю. Когда сети были не очень большими я задавал статические системные маршруты, но сейчас многие диапазоны пересекаются и это создаёт большие проблемы при маршрутизации их я пробовал биндить сокеты не только к порту но и к интерфейсу, но при отправке данные всёравно идут через маршрутизацию, в send`е соответствующий флаг тоже игнорируется. посматриваю в сторону сырых сокетов но многое остаётся непонятное (например какой уровень мне необходимо заполнять вручную и как его заполнять). буду благодарен за любую подсказку или ссылку. чуть не забыл соединения tcp (неблокирующие сокеты), ос Linux
Это проблема как раз маршрутизации, может стоит подумать о реорганизации сети? Напишите какая у вас адресация в сетях.
Дело в том, что это не паритетные сети, и администраторы этих сетей не станут менять ip нескольким сотен пользователей только потому, что мне так удобно. Я должен сделать программу более универсальной. Может кто-то предложит другой вариант, я где-то читал что можно прописывать маршруты программно, но там было всё мутно и под windows
Попробуйте iptables с модулями route и connmark. Я не делал, но идея в том что бы когда приходит syn метить с какого интерфейса он пришел и в таблице OUTPUT судя по метке маршрутизировать его на тот же интерфейс.
http://iptables-tutorial.frozentux.net/other/iptables.html http://www.archivum.info/netfilter/2003-07/msg00460.html