Есть ли способ принудительно выполнить фрагментацию IP-пакетов до того, как они попадут в tun0, а затем принудительно собрать их на другой стороне устройства tun?
У меня есть некоторый трафик IPSec, который я не могу контролировать, он хочет 1500 MTU и просто сбрасывается на устройстве tun.
Я предполагаю, что можно было бы инкапсулировать трафик в поток TCP, а затем повторно собрать поток обратно в пакеты, но это определенно не так, как это должно работать по разным причинам. Поэтому мне интересно, есть ли способ заставить фрагментацию и повторную сборку хотя бы для некоторых совпадающих пакетов на уровне ОС в Linux?
Ты пробовала
ip link set mtu xxx dev tun0
где xxx - это то, что вы считаете подходящим?
РЕДАКТИРОВАТЬ:
вы можете захотеть взглянуть на этот: у этого парня проблема похожая на вашу,
Через некоторое время у меня возникла такая же проблема. Мой аплинк не пропускает tcp-пакеты, длина которых превышает 1496 байт. Я решаю эту проблему, очищая DF-бит во всех исходящих TCP-пакетах. Linux по умолчанию не позволяет очищать DF-бит, и я написал small = 20 модулей ядра и патч для iptables для очистки DF-бита.
Использование: для очистки DF исходящих пакетов:
iptables -t mangle -A POSTROUTING -j DF --clear
для чистого DF на входящих пакетах:
iptables -t mangle -A PREROUTING -j DF --clear
Также разрешены другие параметры iptables.
Ссылки на его код мертвы, но вы можете попробовать написать ему, avl@strace.net.