Linux IPIP-туннель - отправка исходящих пакетов, отличных от IPIP - PullRequest
0 голосов
/ 13 марта 2020

У меня есть более необычный вопрос относительно туннелей IPIP в Linux. Я создал программу C, которая перенаправляет трафик c на другую машину через пакеты IPIP (он добавляет внешний заголовок IP и отправляет его с использованием сокетов Linux). Туннель IPIP на машине, на которую пересылается трафик c, работает в сетевом пространстве имен Linux.

Когда туннель IPIP отправляет трафик c обратно, он отправляет его через IPIP, что и следовало ожидать. Мне было интересно, есть ли способ сделать так, чтобы он не инкапсулировал пакеты через IPIP и просто отправлял исходящие пакеты, используя внутренний заголовок IP + транспортный протокол (например, TCP и UDP) вместе с полезной нагрузкой.

Я хотел бы, чтобы он отправлял пакеты, отличные от IPIP, и изменял адрес источника (во внутреннем заголовке IP) на что-то другое через IPTables (например, прослушивающий IP на машине, которая пересылает пакеты). В моем случае это сделало бы так, чтобы мне не приходилось направлять пакеты из туннеля IPIP обратно через машину, которая пересылает пакеты. Если я смогу изменить исходный адрес, все будет работать так, как задумано, поскольку клиент увидит, что это происходит с прослушивающего IP-адреса (если, конечно, хостинг-провайдер разрешает спуфинг для исходящего IP-адреса источника).

I Не знаю, возможно ли это, но решил, что я спрошу, так как я не могу найти что-либо об этом в Интернете или на страницах справочника по IPIP. Причина, по которой мне нравится использовать IPIP, заключается в том, что он позволяет мне выполнять NAT на машине, на которую пересылается трафик c (например, он перенаправляет на внутренний IP-адрес туннеля IPIP).

Любая помощь высоко ценится и благодарит Вы за свое время.

...