ledge5 Опубликовано 20 февраля, 2007 · Жалоба Имеется следующая связка ADSL -> (rl1)FreeBSD(rl0) -> клиенты. В сторону adsl провайдера поднято ПППоЕ. клиенты подключается посредством ВПН к FreeBSD и получают через нат доступ в интернет. ВПН реализован на базе MPD. Все клиенты сидят на WinXP и 1 клиент на freebsd Работало это всё примерно года 2 и не просило каши. Буквально вчера у всех клиентов перестал открываться яндекс и работать аська(весь остальной интернет доступен) Стал разбираться. В итоге, после двухчасовых плясок с бубном, выясняю следующее: если натить пакеты на клиентов в обход туннеля, то вуаля -- у всех всё работает. возвращаю MPD на место и смотрю на MTU (в mpd.conf сервера выставлена опция set iface mtu 1500) в ifconfig'e всё красиво: ng0: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500 ng1: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500 ng2: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500 НО, когда приходит клиент с виндой, то MTU меняется и выглядит всё так: ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1396 inet 10.10.0.1 --> 10.10.0.2 netmask 0xffffffff покурил man mpd, добавил еще пару опций в конфиг: set link mtu 1500 set link mru 1500 После этого, о, чудо! У клиента с бсд MTU стал равен 1496, яндекс и аська заработали. Но на проклятых клиентов с виндой это все равно не подействовало. МТУ у них все равно продолжал меняться на 1396 при подключении. Ладно пошел на микрософт.ком в поисках услады, нашел: http://support.microsoft.com/kb/826159 всё выставил, перегрузился -- не помогло. В конце концов, обматерившись, я пошел смотреть tcpdump'ом, что ж там такого гадкого мне АОЛ с яндексом шлют. И обнаружил, что и у того и у другого во всех ответных IP-пакетах выставлена опция Don't Fragment и mss равен 1440 :)) всё, тут я сдаюсь. проблему так и не решил, клиенты волнуются :( кто-нибудь с подобным сталкивался? P.S. на tun0 к провайдеру MTU 1492, на езернетах - 1500 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
PommeFritz Опубликовано 20 февраля, 2007 · Жалоба пропиши в mpd.conf костыль set iface enable tcpmssfix Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan M. Kluchnick Опубликовано 20 февраля, 2007 · Жалоба или: cd /usr/ports/net/tcpmssd; make; make install; make clean /usr/local/bin/tcpmssd -b -m 1280 -p 1234 ipfw add 1 divert 1234 all from any to any via tun0 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ledge5 Опубликовано 20 февраля, 2007 · Жалоба пропиши в mpd.conf костыль set iface enable tcpmssfix костыль этот есть, не помогает или: cd /usr/ports/net/tcpmssd; make; make install; make clean /usr/local/bin/tcpmssd -b -m 1280 -p 1234 ipfw add 1 divert 1234 all from any to any via tun0 так если дивертить всё в tcpmssd первым правилом, то, как я понял, в natd эти пакеты уже не попадут? :-) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
umike Опубликовано 20 февраля, 2007 · Жалоба а ADSL провайдер тоже NAT'ит? Кстати можно рассматривать как одну из палок в колесо перепродавцам трафика - ставь флаги на все пакеты идущие в сторону клиента и веселуха )) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ledge5 Опубликовано 20 февраля, 2007 · Жалоба а ADSL провайдер тоже NAT'ит? Кстати можно рассматривать как одну из палок в колесо перепродавцам трафика - ставь флаги на все пакеты идущие в сторону клиента и веселуха )) нет, провайдер дает реальный ip, без всяких натов. флаги, всмысле DF? мне вот интересно узнать чем бы этот флаг с проходящих пакетов снимать в условиях ipfw Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sirmax Опубликовано 21 февраля, 2007 · Жалоба Я борол эту проблему линухом снимая флаг DF =) http://mordor.strace.net/iptables/ Хотя почему яндекс ставит флаг DF мне так и не ясно =( Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mikevlz Опубликовано 22 февраля, 2007 · Жалоба судя по инфе с форумов этот флаг любит ставить винда(1). ограничением на клиент PPTP VPN в реализации майкрософт является тот самый MTU. Вроде не исправимо. Проще на сервере доступа(в MPD) выставить 1460(в примере конфига для MS-совместимого VPN-сервера не просто так сказно avoid GRE-packet fragmentation). Головная боль должна подрассосаться. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
witch Опубликовано 23 февраля, 2007 (изменено) · Жалоба 4 недели назад появилась похожая проблема... перестали открываться некотрые сайты (microsoft.com e-mail.ru .... перестали работать программы "Банк-Клиент") причём, только на реальных IP адресах выданных провайдером. адрес используемый для NAT не входящий ни в одну из этих сетей, работал прекрасно.... пришлось для "клиент банка" диверт делать, стит freebsd 6.2 ....кувыркались 4 с лишним недели, нашли 2 косяка с маршрутизацией (оба у провайдера), но ничего не помогало.... клиенты были готовы порвать нас.... проверили всё что только можно, изнасиловали поддержку провайдера полностью.... вобщем когда дело дошло уже до гл. инженера провайдера, проблема была решена за 10 минут...... :( :( 4 недели назад нас переключили на новый канал(upgrade скорости)и чегото намутил провайдер с MTU гдето на своих рутерах.......... поменяли MTU и всё заработало :) попросите провайдера проверить с своей стороны может у них чего.... Изменено 23 февраля, 2007 пользователем witch Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
balamutang Опубликовано 23 февраля, 2007 · Жалоба Я борол эту проблему линухом снимая флаг DF =) http://mordor.strace.net/iptables/ Хотя почему яндекс ставит флаг DF мне так и не ясно =( http://www.freebsd.org/cgi/query-pr.cgi?pr=103454 патч для ipfwpf умеет снимать DF без патча Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
lanc Опубликовано 24 февраля, 2007 · Жалоба Система FreeBSD 6.0, mpd 3.18, ipfw из портов Проблема так и не решена, на интерфейсах ng mtu стоит 1500 ровно до тех пор пока виндовая машина не зацепится... т.е. сразу после подключения по VPN на фряху виндового клиента, интерфейс ng сразу же получает MTU 1396 руками запросто могу переделать на 1500...типа ifconfig ng0 mtu 1500 Весь инет перерыл, Уже ставил и убирал и в комбинации пробовал mpd.conf set iface mtu 1500 set link mtu 1500 и так пробовал mpd.conf set iface enable tcpmssfix и опять же в комбинации.. Знающие люди откликнитесь пожалуста... что я делаю нетак? [b] mpd.conf [/b] default: load pptp1 load pptp2 load pptp3 load pptp4 load pptp5 pptp1: new -i ng01 pptp1 pptp1 load pptp_standart pptp2: new -i ng02 pptp2 pptp2 load pptp_standart pptp3: new -i ng03 pptp3 pptp3 load pptp_standart pptp4: new -i ng04 pptp4 pptp4 load pptp_standart pptp5: new -i ng05 pptp5 pptp5 load pptp_standart pptp_standart: set iface disable on-demand set iface enable proxy-arp set iface enable tcpmssfix set bundle disable multilink set bundle enable compression # set bundle enable noretry # set bundle yes crypt-reqd set link yes acfcomp protocomp set link no pap chap set link enable chap-msv2 set link keep-alive 60 180 set ipcp yes vjcomp set ipcp dns xxxxxxx set ccp yes mppc set ccp yes mpp-e40 set ccp yes mpp-e128 set ccp yes mpp-stateless set pptp self 192.168.1.254 1723 set pptp enable always-ack set pptp disable delayed-ack set pptp disable windowing set pptp enable incoming set pptp disable originate set iface mtu 1500 set link mtu 1500 set link mru 1500 set radius config /etc/radius.conf set radius retries 3 set radius timeout 5 set radius server 10.1.1.2 xcxcxcxc 1812 1813 set radius acct-update 300 set ipcp enable radius-ip set bundle enable radius-auth radius-fallback set bundle enable radius-acct # set iface enable radius-idle radius-session radius-route # set iface enable radius-idle radius-session radius-mtu radius-route set ccp enable radius [b] тут я уже пробую раные комбинации... типа вдруг где то правильно... т.е. показываю вам какие варианты уже перепробовал mpd.link [/b] pptp1: set link type pptp set pptp enable incoming set pptp disable originate set pptp disable windowing set pptp enable always-ack pptp2: set link type pptp set pptp enable incoming set pptp disable originate set pptp disable windowing set pptp enable always-ack pptp3: set link type pptp set pptp enable incoming set pptp disable originate pptp4: set link type pptp set pptp enable originate incoming outcall pptp5: set link type pptp set pptp enable incoming set pptp disable originate Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ledge5 Опубликовано 10 марта, 2007 · Жалоба Система FreeBSD 6.0, mpd 3.18, ipfw из портов я проблему так и не решил. просто поднял PPPoE на MPD вместо PPTP. и проблема ушла. set link mtu 1492 set link mru 1492 set iface mtu 1500 mtu, когда цепляется винда: 1476 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
PeterPen Опубликовано 10 марта, 2007 (изменено) · Жалоба set iface mtu 1500 set link mtu 1450 (3 версия с 1460 подымает НГ на 1400) !!! Это при ППтП и ГРЕ инкапсуляцией, компресия работать не будет !!!! Пинг бегает а странички не отключаються Изменено 10 марта, 2007 пользователем PeterPen Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
PeterPen Опубликовано 10 марта, 2007 · Жалоба Сорри это я для ГРЕ писал, попробуйте 1485 или 1480. Или перебирайтесб на 4 МПД Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
McSim Опубликовано 12 марта, 2007 · Жалоба в mpd.conf у интерфейсов пропиши эти трис трочки set iface mtu 1500 set link mtu 1500 set iface enable tcpmssfix у меня так: pptp0: new -i ng0 pptp0 pptp0 set iface mtu 1500 set link mtu 1500 set iface enable tcpmssfix set ipcp ranges x.x.x.x/32 x.x.x.x/32 load pptp_standart и все прекрасно работает! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
eddy_mut Опубликовано 14 марта, 2007 (изменено) · Жалоба Целый год мучился с этой проблемой и в конце концов получился вот такой конфиг (точнее кусочек от него), версия MPD 4.1, может вам поможет: pptp_standart: set link mtu 1300 set link mru 1300 set iface mtu 1300 set iface enable tcpmssfix set bundle disable multilink set iface disable on-demand set iface disable proxy-arp set iface idle 0 set link yes acfcomp protocomp set link no pap chap set link enable chap set link keep-alive 10 60 set ipcp yes vjcomp set ipcp dns x.x.x.x y.y.y.y set iface up-script "/usr/local/abills/libexec/linkupdown mpd up" set iface down-script "/usr/local/abills/libexec/linkupdown mpd down" # # The five lines below enable Microsoft Point-to-Point encryption # (MPPE) using the ng_mppc(8) netgraph node type. # set bundle enable compression set ccp yes mppc # set ccp yes mpp-compress set ccp yes mpp-e40 set ccp yes mpp-e128 set ccp yes mpp-stateless set pptp enable incoming set pptp disable originate set link max-redial -1 set auth enable radius-auth set auth enable radius-acct set auth acct-update 10 set auth max-logins 1 set radius server localhost testing123 1812 1813 set radius me 127.0.0.1 set radius timeout 10 set radius retries 3 Значение 1300 взял из оффициальной документации MPD - Раздел траблшутинг, предпоследний пункт: I'm using mpd as PPTP server for Windows XP clients, when accessing bigger websites, or listing larger ftp directories, then the connection seems to hang. Windows XP insists on a very low MTU (usualy 1396 Bytes), this needs fragmentation, if bigger packets should be transmited over the link. Fragmentation is negotiated at ICMP level, if there is a bad router somewhere in the network, who drops such packets, then the connection seems to hang. The first thing what you can try is reducing mpd's MTU value, by setting: set link mtu 1300 and set bundle disable multilink, this should help in most cases. For TCP connections it's possible enabling the TCP-MSS-Fix: set iface enable tcpmssfix (available since mpd-3.15). Изменено 14 марта, 2007 пользователем eddy_mut Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
banec Опубликовано 15 марта, 2007 · Жалоба у меня такая же байда была прошил D-link-500 в акорп и там MTU выставил вроде помогло :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
adron2 Опубликовано 15 марта, 2007 · Жалоба то же самое было. Только сервер под linux. Модем dsl-500t. Видимо некоторые нехорошие adsl провы ставят флаг DF чтобы их траф не перепродавали. Нашел патч для ядра который этот DF убирает. Работает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...