Re: Вопрос по модулю stream - хочу проксировать TCP в UDP

Pavel Odintsov pavel.odintsov на gmail.com
Чт Сен 29 12:34:35 UTC 2016


Добрый день!

Нет ли новостей на этот счет? Все же хочется транслировать tcp udp запросы
изве в бэкенд, который умеет только udp (dns сервис).

On Wednesday, 6 July 2016, Pavel Odintsov <pavel.odintsov на gmail.com> wrote:

> Тут вопрос сложный. Конкретно мне от TCP нужна возможность принять от
> клиента не более XX байт запроса, передать их бэкэнду, забрать его
> ответ и раздать клиенту по TCP. Мне нужен spoon feeding в чистом виде.
>
> Если клиент прислал запрос по TCP больше, чем 65к (сколько предельно
> лезет в UDP) вполне разумно ожидать, что в этом случае он будет
> дропнут.
>
> 2016-07-06 19:26 GMT+03:00 Konstantin Tokarev <annulen на yandex.ru
> <javascript:;>>:
> >
> >
> > 06.07.2016, 17:48, "Pavel Odintsov" <pavel.odintsov на gmail.com
> <javascript:;>>:
> >> Очень жаль, но технических преград получается этому нету?
> >
> > Протоколы, основанные на UDP, часто зависят от того, что каждая
> датаграмма содержит независимое сообщение. Примитивное преобразование TCP
> -> UDP, которое можно было бы сделать в универсальном сервере вроде Nginx,
> будет разбивать непрерывный TCP-поток на датаграммы произвольным образом.
> Если этот вариант устраивает, тогда технических препятствий действительно
> нет. В противном случае в nginx придется реализовать отдельный протокол для
> пересылки датаграмм через TCP, а это уже более серьезная доработка
> >
> >> Вопрос сугубо в том, что нет опции для поддержки этой фичи?
> >>
> >> On Wednesday, 6 July 2016, Roman Arutyunyan <arut на nginx.com
> <javascript:;>> wrote:
> >>> Добрый день,
> >>>
> >>> On Wed, Jul 06, 2016 at 04:55:38PM +0300, Pavel Odintsov wrote:
> >>>> Всем привет!
> >>>>
> >>>> Очень нравится модуль stream - прекрасная фишка ;)
> >>>>
> >>>> Но захотелось немного странного, имеется UDP сервер, к которому
> >>>> хочется добавить "быстрый" TCP и TLS силами Nginx.
> >>>>
> >>>> Но проблема в том, что  при вот такой конфигурации:
> >>>> stream {
> >>>>     upstream backend {
> >>>>         server 127.0.0.1:1122 weight=5;
> >>>>         server 127.0.0.22:1122 weight=1;
> >>>>     }
> >>>>     server {
> >>>>         # Listen UDP
> >>>>         listen 127.0.0.1:53 udp;
> >>>>         # Listen TCP
> >>>>         listen 127.0.0.1:53;
> >>>>
> >>>>         # Listen TLS/SSL
> >>>>         listen 127.0.0.1:853 ssl;
> >>>>         proxy_connect_timeout 1s;
> >>>>         proxy_timeout 3s;
> >>>>         proxy_pass backend;
> >>>>         ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
> >>>>         ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
> >>>>     }
> >>>> }
> >>>>
> >>>> Если запрос на Nginx приходит по UDP, то он отправляется на бэкэнд по
> >>>> UDP. Если приходит по TCP либо SSL - он уходит по TCP на бэкэнд.
> >>>>
> >>>> Мне вот нужно, чтобы связь с бэкэндом была сугубо по UDP, но как этого
> >>>> достичь - не понимаю.
> >>>
> >>> Пока никак.  Протокол проксирования всегда тот же, что и протокол
> клиента.
> >>>
> >>> На текущий момент не ясно, насколько востребовано проксирование по
> >>> другому протоколу.
> >>>
> >>> --
> >>> Roman Arutyunyan
> >>>
> >>> _______________________________________________
> >>> nginx-ru mailing list
> >>> nginx-ru на nginx.org <javascript:;>
> >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
> >>
> >> --
> >> Sincerely yours, Pavel Odintsov
> >> ,
> >>
> >> _______________________________________________
> >> nginx-ru mailing list
> >> nginx-ru на nginx.org <javascript:;>
> >> http://mailman.nginx.org/mailman/listinfo/nginx-ru
> >
> >
> > --
> > Regards,
> > Konstantin
> >
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru на nginx.org <javascript:;>
> > http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
>
>
> --
> Sincerely yours, Pavel Odintsov
>


-- 
Sincerely yours, Pavel Odintsov
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20160929/a4cad5bf/attachment.html>


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