Принудительная фрагментация 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.