для особо страждующих кратко отвечаю: в поставленных условиях задача не разрешима.Теперь объяснение:
Разберем на примере службы - например http-сервер(порт 80).
Итак у нас есть сервер с 2 каналами в Интернет и висящим веб-сервером на обоих интерфейсах.
Например это будет:
ISP1: интерфейс eth1, ip=1.1.1.1
ISP2: интерфейс eth2, ip=2.2.2.2
пусть приходит к нам на первый адрес пакет:
выглядеть будет так
SRC_IP:>1024 -> 1.1.1.1:80
окей - он обработается веб-сервером и вернется ответ в виде:
1.1.1.1:80 -> SRC_IP:>1024
заметим что нигде вообще не фигурирует интерфейс никоим образом. Далее наш сервер подумает а куда же мне направить пакет у которого DST_IP = SRC_IP - обратившись к таблице маршрутизации выберет нужный интерфейс и канал.
К большому сожалению в IP_header отстутсвует информация об интерфейсе - и следовательно узнать а куда же нам рулить пакет когда он уже вернется к нам после обработки службой выше IP не представляется взможным.
Спасибо за внимание.