Re: Ограничение на число исходящих соединений

Evgeniy Berdnikov bgx на protva.ru
Ср Окт 14 15:04:39 UTC 2015


On Wed, Oct 14, 2015 at 05:47:53PM +0300, Сергей Пузырёв wrote:
> Мне кажется, вы недопонимаете свою проблему.
> 
> Нельзя иметь более 65000 соединений к одному удаленному порту одного
> удаленного IP-адреса с одного локального IP-адреса.
> Можно иметь 65000 соединений к одному удаленному порту одного удаленного
> IP-адреса с одного локального IP-адреса и еще 65000 соединений к другому
> удаленному порту этого же удаленного IP-адреса с того же локального
> IP-адреса.

 +1

 Здесь возникает EADDRNOTAVAIL (99) при connect(2) вследствие того, что
 сервер, пытаясь создать tcp-соединение с квадруплетом параметров
 (src_ip, src_port, dst_ip, dst_port) исчерпывает диапазон src_port
 при фиксированных трёх других параметрах (src_ip=15.15.72.198,
 dst_ip=10.17.17.38, dst_port=5003). При вызове connect(2) ядро перебирает
 лишь возможные значения src_port и сталкивается с тем, что все квадруплеты
 уже заняты, потому и возвращает ошибку.

 Если увеличить число dst_port и/или dst_ip, то пространство состояний
 для возможных коннекций расширится.

> 14 октября 2015 г., 17:38 пользователь kpoxa <kpoxa на kpoxa.net> написал:
> 
> > При чем тут где бэкэнд? Коннекты к любому количестве внешних портов будут
> > идти всё равно он одного адреса, вопрос с исходящими соединениями на
> > севрере с nginx, а не с входящими где бэкэнд, первые ограничиваются числом
> > портов у используемого адреса, а вторые этого ограничения не имеют.
> >
> > 14 октября 2015 г., 17:33 пользователь Evgeniy Berdnikov <bgx на protva.ru>
> > написал:
> >
> > On Wed, Oct 14, 2015 at 05:14:55PM +0300, kpoxa wrote:
> >> > коннекты на 127.0.0.1 тоже конечны, разве что применять unix socket в
> >> этом
> >> > месте.
> >> > Вот если бы можно было сделать
> >> > upstream ws {
> >> >   server 10.17.17.38:5003 bind 10.17.17. <http://10.17.17.38:5003/>100;
> >> >   server 10.17.17.38:5003 bind 10.17.17. <http://10.17.17.38:5003/>101;
> >> >   server 10.17.17.38:5003 bind 10.17.17. <http://10.17.17.38:5003/>102;
> >> > }
> >> > но тут нужно внедрять это в код nginx.
> >>
> >>  А что мешает поднять бэкенд на разных портах: 10.17.17.38:5003,
> >>  10.17.17.38:5004, ..:5005, и т.д.? Или на разных ip-адресах.
> >> --
> >>  Eugene Berdnikov
> >>
> >> _______________________________________________
> >> nginx-ru mailing list
> >> nginx-ru на nginx.org
> >> http://mailman.nginx.org/mailman/listinfo/nginx-ru
> >
> >
> >
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru на nginx.org
> > http://mailman.nginx.org/mailman/listinfo/nginx-ru
> >
> 
> 
> 
> -- 
> С уважением,
> Сергей Пузырёв
> тел.: +7-916-980-70-45

> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru


-- 
 Eugene Berdnikov



Подробная информация о списке рассылки nginx-ru