Как маршрутизировать ответы TCP / IP через другой интерфейс?

У меня есть две машины, каждая с двумя действующими сетевыми интерфейсами, интерфейс Ethernet eth0 и интерфейс tun / tap gr0 . Цель состоит в том, чтобы запустить TCP-соединение на машине A с использованием интерфейса gr0 , но затем получить ответы (ACK и т. Д.) От машины B через интерфейс Ethernet, eth0 . Так, машина A отправляет SYN на gr0 , а машина B сама получает SYN gr0 , но затем отправляет свой SYN / ACK обратно через eth0 . Устройство tun / tap - это беспроводная связь GNU Radio, и мы просто хотим, чтобы ответы приходили через Ethernet.

Какой самый простой способ сделать это? Мне нужно больше узнать о TCP / IP, но я изначально думал, что исходящие пакеты с подменой источника сообщат получателю, что он должен ответить на поддельный адрес (который должен быть перенаправлен на eth0 ). Это потребует маршрутизации IP-адресов от интерфейсов tun / tap через gr0 , а остальной трафик оставит на eth0 .

Мы используем Linux, и решение Python было бы предпочтительнее.

Спасибо, что посмотрели!

7
задан Mr. Shickadance 25 May 2011 в 13:48
поделиться