Принудительная фрагментация IP и повторная сборка для некоторого трафика через VPN-туннель

Есть ли способ принудительно фрагментировать IP-пакеты, прежде чем они перейдут в tun0, а затем принудительно собрать их на другой стороне устройства tun?

У меня есть некоторый трафик IPSec, который я не могу контролировать, и он хочет 1500 MTU и просто сбрасывается на устройстве настройки.

Я предполагаю, что возможно было бы инкапсулировать трафик в поток TCP, а затем повторно собрать поток обратно в пакеты - но это определенно не так, как это должно работать по разным причинам. Поэтому мне интересно, есть ли способ заставить фрагментацию и повторную сборку хотя бы для некоторых совпадающих пакетов на уровне ОС в Linux?

1 ответ

Ты пытался

 ip link set mtu xxx dev tun0

где ххх, что вы считаете целесообразным?

РЕДАКТИРОВАТЬ:

Вы можете взглянуть на это: у этого парня есть проблема, похожая на вашу,

У меня та же проблема спустя некоторое время. Мой восходящий канал не передает tcp-пакеты с длиной более 1496 байт. Я решаю это путем очистки DF-бита во всех исходящих tcp-пакетах. Linux по умолчанию не позволяет очистить DF-бит, и я написал небольшие модули ядра и патч для iptables для очистки DF-бит.

Использование: для очистки DF на исходящих пакетах:

iptables -t mangle -A POSTROUTING -j DF --clear

для чистого DF на входящих пакетах:

iptables -t mangle -A PREROUTING -j DF --clear

А также разрешены другие варианты iptables.

Ссылки на его код неактивны, но вы можете попробовать написать его, avl@strace.net.

Другие вопросы по тегам