mr.Scamp Опубликовано 9 января, 2011 · Жалоба Подскажите эффективный способ подстраивать TCP MSS в проходящем через gre-туннель трафике для FreeBSD, для Linux и iptables это выглядит вот так -j TCPMSS --clamp-mss-to-pmtu. Включил в pf, scrub on gre0 fragment reassemble max-mss 1436, но к сожалению, не помогло, возможно, потому что все правила ниже без keep state. Пробовал ng_tcpmss, трафик через ноду проходит, эффекта нет. 16:32:13.275214 IP 193.106.144.36.4372 > 193.0.6.139.80: S 2105092612:2105092612(0) win 65535 <mss 1436,nop,nop,sackOK> 16:32:13.322461 IP 193.0.6.139.80 > 193.106.144.36.4372: S 2148163758:2148163758(0) ack 2105092613 win 5840 <mss 1460,nop,nop,sackOK> 16:32:13.322721 IP 193.106.144.36.4372 > 193.0.6.139.80: . ack 1 win 65535 16:32:13.323908 IP 193.106.144.36.4372 > 193.0.6.139.80: P 1:429(428) ack 1 win 65535 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
marikoda Опубликовано 9 января, 2011 (изменено) · Жалоба а как трафик на ng_tcpmss направляете? Изменено 9 января, 2011 пользователем marikoda Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wed Опубликовано 9 января, 2011 · Жалоба посмотри на программу tcpmssd tcpmssd -p 8670 -m 1396 ipfw add 1 divert 8670 all from any to any via ng\* Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mr.Scamp Опубликовано 9 января, 2011 (изменено) · Жалоба marikoda, так, как советовалось в мане kldload ng_ipfw kldload ng_tcpmss ngctl mkpeer ipfw: tcpmss 100 qqq ngctl msg ipfw:100 config '{ inHook="qqq" outHook="qqq" maxMSS=1436 }' ipfw add 300 netgraph 100 tcp from any to any tcpflags syn via gre0 sysctl net.inet.ip.fw.one_pass=0 wed, перенаправлять весь трафик в юзерспейс не считаю хорошей идеей, может пострадать производительность. Изменено 9 января, 2011 пользователем mr.Scamp Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 9 января, 2011 · Жалоба Включил в pf, scrub on gre0 fragment reassemble max-mss 1436, но к сожалению, не помогло, возможно, потому что все правила ниже без keep state.Скруб - это отдельная категория правил, как и нат.Выполняется только одно скруб правило, первое под которое попал трафик. Те траффик не будет проходить через все нормализации, только через одну. Убедитесь что у вас scrub только один трафик через него проходит. Возможно нужно добавить proto tcp к правилу. Ещё можно использовать ng_tcpmss, если умеете с нетграфом работать. Через неё нужно пропускать весь траффик, предварительно сконфигурировав: связать два хука в оба направления и мсс задать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
marikoda Опубликовано 9 января, 2011 (изменено) · Жалоба Вспомнил. может понадобится. Когда-то давно была задача забриджевать ethernet со стандартным mtu 1500 через линк с маленьким mtu. Тогда пользовались vtund поверх tcp или udp, с одной стороны был linux, с другой - freebsd. Работало, на удивление, неплохо. Изменено 9 января, 2011 пользователем marikoda Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mr.Scamp Опубликовано 9 января, 2011 · Жалоба %sudo pfctl -vvsr | head @0 scrub on gre0 proto tcp all no-df max-mss 1436 fragment reassemble [ Evaluations: 8443501 Packets: 657112 Bytes: 103976377 States: 0 ] не помогает. ng_tcpmss пробовал, см. выше. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 10 января, 2011 · Жалоба Поставьте 576. Может у вас где то дальше мту ещё падает и ицмп заблочен. ПФ на работоспособность не проверял этот функционал, а вот нода 100% работает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mr.Scamp Опубликовано 10 января, 2011 · Жалоба Спасибо за совет! Поставил 576 - все заработало. Опытным путем установил, что максимальный MSS для этого линка равен 1396. Как pf scrub, так и ng-нода работают отлично. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...