LINUX.ORG.RU
ФорумAdmin

ограничение на количество адресов ifconfig

 ,


0

2

Добрый день.

Есть сервер на Ubuntu-14.04-amd64. Необходимо поднять на нём много прокси (использую 3proxy). После того, как количество адресов, добавляемых для интерфейса, переваливает за 300 (даже если прокси-сервер все их не использует), прокси перестают работать все сразу.

Адреса добавляю вот так: ifconfig tun6to4 inet6 add 2001:470:c842:69d:798a:3d1d:307d:bbef/48

299 адресов - работают. 301 - не работают.

Начал искать, думал, нужно изменить ограничение на количество сокетов, но не помогло (пользовался http://forum.ubuntu.ru/index.php?topic=81465.0).

Поиск в переменных sysctl: Код

# sysctl --all | grep 300 kernel.keys.gc_delay = 300 net.core.netdev_budget = 300 net.ipv4.neigh.default.base_reachable_time_ms = 30000 net.ipv4.neigh.eth0.base_reachable_time_ms = 30000 net.ipv4.neigh.lo.base_reachable_time_ms = 30000 net.ipv4.neigh.sit0.base_reachable_time_ms = 30000 net.ipv4.neigh.tun6to4.base_reachable_time_ms = 30000 net.ipv4.route.gc_timeout = 300 net.ipv6.neigh.default.base_reachable_time_ms = 30000 net.ipv6.neigh.lo.base_reachable_time_ms = 30000 net.ipv6.neigh.sit0.base_reachable_time_ms = 30000 net.ipv6.neigh.tun6to4.base_reachable_time_ms = 30000 vm.dirty_expire_centisecs = 3000

Вроде, ничего подходящего.

Подскажите, пожалуйста, с чем может быть связано, как исправить это ограничение?


А что именно не работает? Адреса-то добавляются? После этого они пингуются? Насколько я знаю, никаких ограничений на количество адресов на интерфейс в современных ядрах нет. Если всё добавляется без ошибок и пингуется, то надо смотреть в сторону настроек 3proxy.

shell-script ★★★★★
()
Ответ на: комментарий от shell-script

Адреса добавляются и пингуются с этого же сервера. Почему я не грешил на 3proxy? Я поднимал 200 адресов и на них вешал 400 прокси на разных портах - работало. Или это ещё ничего не значит?

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

Вот честно, ни разу не работал с 3proxy, но если адреса сами по себе работают, логично предположить, что проблема не в ограничениях системы. Когда-то давно было ограничение в 255 адресов на интерфейсе, но я уже не помню даже, как давно это было. Поэтом и подумал, что может проблема не в ядре и не в сетевых настройках.

Тем более, раз удалось запустить 400 прокси, значит и не в количестве сокетов проблема. Сокет занимается не тогда, когда ты адрес на интерфейс вешаешь, а когда ты порт занимаешь.

shell-script ★★★★★
()
Ответ на: комментарий от shell-script

Хотел попробовать создать два одинаковых интерфейса и поделить адреса между ними:

allow-auto tun6to4
iface tun6to4 inet6 v4tunnel
pre-up modprobe ipv6
dns-nameservers 2001:4860:4860::8888 2001:4860:4860::8844
address 2001:470:c842::2
netmask 48
gateway 2001:470:c842::1
endpoint 216.66.84.42
local 185.154.20.80
ttl 255

allow-auto tun6to42
iface tun6to42 inet6 v4tunnel
pre-up modprobe ipv6
dns-nameservers 2001:4860:4860::8888 2001:4860:4860::8844
address 2001:470:c842::2
netmask 48
gateway 2001:470:c842::1
endpoint 216.66.84.42
local 185.154.20.80
ttl 255

но второй интерфейс не поднялся. ни автоматом, ни вручную:

#ifup tun6to42
add tunnel "sit0" failed: No buffer space available
Failed to bring up tun6to42.

Я так понял, не получится два одинаковых создать? А подскажите,можно ли две копии 3proxy запустить? Он работает как служба, я им управляю через #service 3proxy start/stop. Как это сделать?

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

Автор 3proxy ответил: В 3proxy нет ограничений. Смотри в сторону ограничений на сокеты, процессы, и т.п. (каждый сервис требует открытого порта и пораждает отдельный поток).

ants
() автор топика

какие-то адовые костыли изобретаешь. лучше заплати кому-нибудь, пусть напишет тебе non_local_bind for ipv6 патч для ядра. ну и ботосрань свою научи биндится на радномные адреса.

Rost ★★★★★
()

Могу сильно путать. Имхо что-то такое тут пробегало, но не уверен что именно про 3proxy, возможно и про squid, или какой другой еще прокси. Там в коде было захардкодено кол-во причем именно какое-то ровное число.

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

Адреса добавляются и пингуются с этого же сервера.

А снаружи?

Почему я не грешил на 3proxy? Я поднимал 200 адресов и на них вешал 400 прокси на разных портах - работало. Или это ещё ничего не значит?

Возможно и не значит. Я 3proxy не пользовал, но не исключаю варианта, что он пытается биндить все все адреса которые находит на интерфейсах а не только прописанные в конфиге.
ЗЫ Мне вообще казалось, хотя так же могу путать, что народ тут и большее кол-во ipv6 поднимал на одном интерфейсе.

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

Да, знакомый у меня поднимал 500 без особых проблем. Так как проблем не было, то он мне не может помочь.

===================================================

А это моя переписка с техподдержкой: Моё сообщение: [/]Здравствуйте. Скажите, установлено ли у Вас какое-либо ограничение на количество адресов, добавляемых к сетевому интерфейсу? Поднимаю прокси на сервере. Заметил, что при добавлении более, чем 300 адресов, даже если не на всех из них висит прокси, перестают работать сразу все.

Долго искал ошибку в своих действиях. Но на одном из форумов (http://levup.org/viewtopic.php?t=26751) увидел сообщение (http://levup.org/viewtopic.php?p=254895#254895):

«Я: Пробовал ставить по этому мануалу и столкнулся на другом хостинге с тем что при попытке добавить более 310-315(точно не считал) адресов прокси переставали работать. Память на сервере была 1 гиг и 2 ядра. Не подскажете это ограничение метода или ограничение выходит из-за ресурсов? На ваших VPS тоже не получится на одном сервере поднять более 320 прокси? Поддержка :К сожалению, на текущем ПО ISPsystems есть ограничения и сеть перестает так же работать. Я: Подскажите это ограничение искусственное или это ограничение технологии? Поддержка: Это ограничение технологии, на уровне сети. В ближайшее время исправим»

Из этого сообщения я понял, что ограничение создаётся программным обеспечением, используемым Вами. Скажите, можно ли данное ограничение изменить/обойти/убрать?

Спасибо. Их ответ: От: Виталий - 2016-11-06 23:55:25 Каляев Иван Платонович,

Ограничений мы не ставим, но они есть в самой ОС. А именно limits sysconfig и поддержка ядра

net.ipv6.conf.eth0.proxy_ndp=1 net.ipv6.conf.all.proxy_ndp=1 net.ipv6.conf.default.forwarding=1 net.ipv6.conf.all.forwarding=1 net.ipv6.ip_nonlocal_bind = 1

С уважением Виталий | системный администратор | Cloud VPS | Cloud4box.com

=============================================

Добавил в /etc/sysctl.conf строки: net.ipv6.conf.eth0.proxy_ndp=1 net.ipv6.conf.all.proxy_ndp=1 net.ipv6.conf.default.forwarding=1 net.ipv6.conf.all.forwarding=1 net.ipv6.ip_nonlocal_bind = 1

Получаю: # sysctl -p net.ipv6.conf.eth0.proxy_ndp = 1 net.ipv6.conf.all.proxy_ndp = 1 net.ipv6.conf.default.forwarding = 1 net.ipv6.conf.all.forwarding = 1 sysctl: cannot stat /proc/sys/net/ipv6/ip_nonlocal_bind: No such file or directory

Это результата не принесло. По поводу nonlocal_bind

Гугление показало: net.ipv4.ip_nonlocal_bind = 0. Установка этой переменной позволяет отдельным локальным процессам выступать от имени внешнего (чужого) IP адреса. Т.е. это не должно влиять количественно. Идея с nonlocal_bind хороша, но... Малой кровью обойтись может быть всё таки можно?

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

Увидел волшебное слово VPS - проверьте локально (в виртуалке) туже конфигурацию. Если заработает то проблема на уровне VPS.

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

решил проблему с помощью nonlocal_bind и ndppd

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