На DGS создан влан 12, назначен тегированным на порт, смотрящий в сторону 3028 (2й) и на порт, смотрящий в сторону сервера (1й). Настроено правило трансляции create vlan_translation ports 2 cvid 34 add svid 12. Для порта 1 задана роль nni, для 2 — uni. Для всех портов установлен tpid 0x8100.
На DES создан влан 34, назначен тегированным на порт, смотрящий в сторону DGS и унтегированным на порт компьютера.
На сетевом интерфейсе компьютера и на интерфейсе eth0.12.34 назначены ip из одной подсети, пинги ходят, вроде все работает.
Однако, исходящий от компьютера трафик ходит с каким-то явными проблемами. Если замерять скорость при помощи iperf, то в направлении от сервера к компьютеру все в порядке, а в обратном — 10-20 килобит. Если воспользоваться сервисом типа speedtest.net (сервер просто маршрутизирует трафик в интернет, NAT не используется), то тест на download проходит отлично, а тест на upload начинается с большой задержкой и показывает низкие значения. Подобные проблемы наблюдаются при любом исходящем трафике, при использовании различного софта, различных компьютеров, различных DES и даже различных DGS.
При использовании влана с одним тегом все в порядке. При этом на DGS создаем влан 34, назначаем тегированным на 1,2 порты и создаем другое правило трансляции: create vlan_translation ports 1 cvid 34 replace svid 34. На сервере используем влан 34. В этом случае проблем с трафиком нет ни в каком направлении.
Интуиция подсказывает проблему с MTU. Уменьшение MTU на компьютере до 1492 проблему вроде бы решает.
Вопрос: как можно решить проблему, не меняя MTU на компьютере?
Проблема решена использованием следующего правила на сервере:
iptables -t mangle -A POSTROUTING -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1454