Код: Выделить всё
16:24:33.992091 IP 137.226.18.3.80 > 137.226.12.150.33012: . 2897:5793(2896) ack 114 win 91 <nop,nop,timestamp 63951179 5405908>
16:24:33.992205 IP 137.226.18.1 > 137.226.18.3: ICMP 137.226.12.150 unreachable - need to frag (mtu 1460), length 556
При поиске причины обнаружилось что MSS должен быть равен MTU -40 (иногда даже -60)
Решение для линукса есть почти в каждом втором форуме.
Код: Выделить всё
iptables -A FORWARD -p tcp --syn -s $WINXP_BOX -j TCPMSS --set-mss 1380
Код: Выделить всё
sysctl net.inet.tcp.mssdflt=1340
Сейчас прописал в mpd5
Код: Выделить всё
set iface enable tcpmssfix
Хотелось бы знать как можно вручную изменить MSS.
А теперь решение этой проблемы.
Решить как в линуксе в одну строчку не получилось, но всё же цель достигнута пакеты втиснуты в туннель
Для изменения mss используем packet filter, а в частности packet normalizator.
Для того что бы просто запустить pf, можно выполнить
Код: Выделить всё
kldload pf
Код: Выделить всё
device pf
Код: Выделить всё
echo 'scrub on gif0 max-mss 1380' >> /etc/pf.conf
Код: Выделить всё
echo 'pf_enable="YES"'>> /etc/rc.conf
Код: Выделить всё
pfctl -e
Специально написал всё так подробно, потому что приличного решения для ошибки типа unreachable - need to frag для freebsd найти не смог.
Огромное спасибо GRooVE за помощь!