чт, 23 мар. 2023 г. в 14:01, Eugene Berdnikov <b...@protva.ru>:

> On Thu, Mar 23, 2023 at 01:26:04PM +0400, Maksim Dmitrichenko wrote:
> >    Хочется поиметь такой HTTP Proxy сервер, который:
> >    а) будет балансировать соединения из внутренней сети в Интернет по
> >    определенному набору внешних айпишников (к каждому из которых на хосте
> >    прокси имеется, например, VPN-соединение, то есть айпишники не на
> >    интерфейсах хоста, где запущен прокси, а до них ещё один хоп).
> >    б) умеет группировать айпишники по группам (с помощью конфигурации), а
> >    клиент имеет возможность выбрать группу (например в заголовке к методу
> >    CONNECT).
>
>  Ну, это всё незамысловато строгается через squid+iproute+iptables...
>  Даёте группе свой выходной src_ip, и через ip rule его на нужный шлюз.
>

Таким образом нельзя программно-протокольным образом выбрать группу
адресов, через которую отправится предстоящее соединение. Если я правильно
понял предлагаемую схему.


>  Вот только установка своих заголовков может быть лишь в палате для буйных,
>  где каждый себе своего клиента строчит и свои заголовки в запрос вставить
>  может. А простые юзеры могут лишь в настройках браузера порт или ip-адрес
>  прокси выбрать (по порту и ip сквид разрулить трафик может).
>

Причем здесь браузер и простые юзеры? Что вообще за чушь вы тут понаписали,
буйный вы наш? Есть, например, такие инструменты как haproxy, и они,
понятное дело, нужны совсем не для того, чтобы некий Уасилий через него в
своём Internet Explorer'е сайтики открывал.


> >    в) умеет гарантировать, что для отдельного взятого клиента очередной
> >    CONNECT поедет через такой айпи, через который данный клиент ещё не
> >    законнекчен или выдаст ошибку (типа 429). Идентификацию клиента можно
> >    делать авторизацией или каким-то уникальным значением, которое
> передается,
> >    например, опять же в одном из заголовков к методу CONNECT.
>
>  Боюсь, для столь удивительной задачи ничего готового не найти.
>  Тем более что статус 4xx по превышению числа коннекций это точно не для
>  людей, даже из палаты для буйных. :)
>

Нормальное поведение любой REST-овой APIшки возвращать 429, если превышен,
например, RPS к её вызовам. Вам что-то буйные мерещатся в каждом абзаце.
И задача, в общем-то, вполне прозаическая для тех, кому приходится работать
со сторонними REST API, которые режут RPS по IP. То, что вам в жизни не
приходилось этого делать, не делает задачу удивительной ни на йоту.

-- 
With best regards
  Maksim Dmitrichenko

Ответить