LINUX.ORG.RU
решено ФорумAdmin

-j TCPMSS

 


0

1

заметил что -j TCPMSS –set-mss XXX изменяет mss только если в пакете значение больше чем в правиле. если в пакете mss меньше то значение не меняется. так и должно быть?

понимаю что это редкий кейс, но всё же

★★★★★

iptables -vnL -t mangle

Chain FORWARD (policy ACCEPT 24M packets, 27G bytes)
 pkts bytes target     prot opt in     out     source               destination         
 189K   11M TCPMSS     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp flags:0x06/0x02 TCPMSS clamp to PMTU
hbars ★★★★★
()
Ответ на: комментарий от hbars

у вас обычный кейс, как я вижу.

а мне для тестов надо было увеличить mss, а софтину лень писать для этого.

Rost ★★★★★
() автор топика
Ответ на: комментарий от Rost

разгадка (net/netfilter/xt_TCPMSS.c)

/* Never increase MSS, even when setting it, as
 * doing so results in problems for hosts that rely
 * on MSS being set correctly.
 */
if (oldmss <= newmss)
        return 0;
если кому надо будет - комментируем, компилируем модуль

Rost ★★★★★
() автор топика
Последнее исправление: Rost (всего исправлений: 1)
Ответ на: комментарий от Rost

Если кому надо будет сломать работу сети?

Промежуточный узел уменьшает MSS, если знает, что у него MTU меньше и пакет не пройдёт.

Теперь смотри. Один промежуточный узел уменьшает MSS на этапе согласования, чтобы через него трафик нормально проходил. А ты такой красивый берёшь и увеличиваешь, ломая работу path mtu discovery. И трафик ходить перестаёт. Зачем?

router ★★★★★
()
Последнее исправление: router (всего исправлений: 1)
Ответ на: комментарий от router

Зачем?

мне для тестов надо было

Rost ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.