Bekijk de volledige versie : wl-500gp сервера за NAT
Приветствую.
Наклюнулась тут проблемка.. Имею 2 сервера за роутером (http, socks). На роутере оба сервера добавлены в virtual servers
Но существует проблема. Достучаться до серверов извне крайне проблематично. Особенно если делать это в несколько потоков (сразу несколько клиентов http или несколько запросов по socks). Пакеты не теряются, а как будто становятся в дикую очередь и никак не пролазят :(
Был бы рад дельному совету.
Спасибо.
Приветствую.
Наклюнулась тут проблемка.. Имею 2 сервера за роутером (http, socks). На роутере оба сервера добавлены в virtual servers
Но существует проблема. Достучаться до серверов извне крайне проблематично. Особенно если делать это в несколько потоков (сразу несколько клиентов http или несколько запросов по socks). Пакеты не теряются, а как будто становятся в дикую очередь и никак не пролазят :(
Был бы рад дельному совету.
Спасибо.
Имею такую же байду. При этом ситуация очень неустойчивая - "дикая очередь" наблюдается только с одной из моих площадок. С других все нормально, с проблемной площадки на винт прямо на роутере - тоже нормально.
Причем проблема именно с аплоадом в локалку сквозь роутер, и безразлично, принимает их ftp в режиме port, passive или вообще scp. Если же я тупо делаю изнутри wget проблемная-площадка/чего-нибудь-толстое, то всасывается все на ура.
Такое ощущение, что на роутере как-то коряво работает связка conntrack/dnat.
может с mtu поиграться?
tcpdump на роутере периодически выдает:
шлюз_провайдера > ИП_моего_сервера: icmp 68: time exceeded in-transit
на роутере как-то коряво работает связка conntrack/dnat.
Я думаю, вы правы. Не может свойство VSERVER добавлять одну строку в nat_rules а PRE/POSTROUTING при этом быть гораздо сложнее;)
Я думаю, вы правы. Не может свойство VSERVER добавлять одну строку в nat_rules а PRE/POSTROUTING при этом быть гораздо сложнее;)
У меня сложилось ощущение, что не работает mtu path discovery. И не работать оно может если не проходит icmp. Вот только почему оно через SNAT работает, а через DNAT - нет?
У меня сложилось ощущение, что не работает mtu path discovery. И не работать оно может если не проходит icmp. Вот только почему оно через SNAT работает, а через DNAT - нет?
Вам же доступны файлы /tmp/filter_rules и /tmp/nat_rules
Посмотрите, покурите маны по их модификации, сравните настройки DNAT и SNAT.
Хотя, делать statefull проброс icmp на сервер за nat имхо не целесообразно, нужно по-другому делать path mtu discovery между роутером провайдера и компьютером за nat.
Можно просто статически изменить mtu.
Второй вариант - поставить и настроить вместо NAT прокси в реверс-режиме.
Кстати, может быть просто несоответствие mtu внутри и снаружи, тогда может быть нужно поставить mtu поменьше для локалки и интернета, заведомо меньше того, что предлагает роутер провайдера.
Вам же доступны файлы /tmp/filter_rules и /tmp/nat_rules
Посмотрите, покурите маны по их модификации, сравните настройки DNAT и SNAT.
Спасибо за совет. Курю уже третью неделю :) Не говоря уже о том, что 15 лет работаю с сетями. К сожалению, все не так просто.
У меня в роутер входят два внешних интерфейса. Один - ppp0 с mtu 1460. Второй - ethernet с mtu 1500. Картина идентична для обоих. Зато вот анализ трафика с проблемной площадкой показывает, что обмен идет пакетами размером 1300, т.е. заведомо в рамках обоих mtu. Т.е. выставляет такой размер кто-то по пути между площадкой и роутером.
Я вообще сюда написал с целью новых идей получить, пусть самых бредовых. Потому что у меня идеи уже кончились.
Достучаться до серверов извне крайне проблематично. Особенно если делать это в несколько потоков (сразу несколько клиентов http или несколько запросов по socks). Пакеты не теряются, а как будто становятся в дикую очередь и никак не пролазят
Может, это работает защита от DoS (в iptables цепочка SECURITY)? Она как раз занимается ограничением частоты новых соединений.
Может, это работает защита от DoS (в iptables цепочка SECURITY)? Она как раз занимается ограничением частоты новых соединений.
Нет, не она - проверено.
В настройках Internet Firewall есть пункт "Number of connections to track" по умолчанию стоит 4096 вроде
увеличил до 8192 - проблем больше не наблюдаю.