Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Valentin Davydov                     2:5020/400     11 Dec 2006  11:32:59
 To : Vadim Goncharov
 Subject : Re: расщепить на несколько хостов
 -------------------------------------------------------------------------------- 
 
 >   From: Vadim Goncharov <vadimnuclight@tpu.ru>
 >   Date: Fri, 8 Dec 2006 16:16:18 +0000 (UTC)
 >
 > >>Есть хост А и некий сервер Б. Софтина на хосте А хочет сделать множество
 > >>подключений к серверу Б на порт определенного сервиса, но у сервиса вшит
 > >>низкий лимит на одновременное количество TCP-соединений с одного IP-адреса.
 > >>Хочется странного: прозрачно для хостов А и Б, представить для сервера Б
 > >>соединения приходящими с разных (фэйковых) IP-адресов (роутинг
 > >>обеспечить можно). Hо не представляю, как.
 > VD> Совсем-совсем прозрачно? Hельзя ли, скажем, софтине велеть, чтобы она не
 > VD> на Б ходила, а на (пусть тот же порт на) А?
 >
 >Можно, конечно, сменить ей адрес и порт, забыл написать (просто он один,
 >а не несколько).
 >
 > VD> А на хосту А на этот порт
 > VD> повесить tcp-proxy, слепленный жвачкой из inetd, netcat, bounce и т.д.
 > VD> и умеющий всё что ни попадя, в том числе и src ip round-robin.
 >
 >Хм, а вот тут поподробнее - как это будет выглядеть? Эти src ip таки
 >придется алиасами вешать или оно (кстати, кто из связки?) умеет
 >raw-сокеты?
 
 Берёшь сетку, скажем, 10.40/16. Пишешь на сервере Б роутинг на эту сетку
 так, чтобы он доходил до хоста А. Затем на хосту А ставишь все 65536 адресов
 из этой сетки на lo0 алиасами (с маской 32, разумеется). Пишешь в inetd.conf
 слушать тот порт, на который будет ходить твоя софтина, и запускать на каждое
 соединение примерно такой скрипт:
 #!/bin/sh
 exec nc -s 10.40.$(sockstat -4 -c |\ 
       awk "\$3==$$&&\$4==0{gsub(\".*:\",\"\",\$7);
        print int(\$7/256) \".\" \$7%256}"\
      ) $Б $порт_сервера
 
 Там ещё могут быть всякие тонкости, связанные с ограничениями количества
 одновременных соединений в inetd, корректностью закрытия tcp-соединений
 клиентом и/или сервером, environmentом запускаемых из скрипта команд, но
 при должной аккуратности всё это более-менее тривиально настраивается.
 
 Вал. Дав.
 
 --- ifmail v.2.15dev5.3
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 расщепить на несколько хостов   Vadim Goncharov   08 Dec 2006 00:47:42 
 Re: расщепить на несколько хостов   Valentin Davydov   08 Dec 2006 10:59:46 
 Re: расщепить на несколько хостов   Vadim Goncharov   08 Dec 2006 20:16:18 
 Re: расщепить на несколько хостов   Valentin Davydov   11 Dec 2006 11:32:59 
 Re: расщепить на несколько хостов   Vadim Goncharov   11 Dec 2006 19:40:03 
 Re: расщепить на несколько хостов   Valentin Davydov   12 Dec 2006 11:32:36 
 Re: расщепить на несколько хостов   Vadim Goncharov   12 Dec 2006 16:19:48 
 Re: расщепить на несколько хостов   Valentin Davydov   13 Dec 2006 11:27:21 
 Re: расщепить на несколько хостов   Vadim Goncharov   13 Dec 2006 17:42:38 
 Re: расщепить на несколько хостов   Mykola Dzham   11 Dec 2006 18:08:16 
 Re: расщепить на несколько хостов   Valentin Davydov   13 Dec 2006 11:27:21 
 Re: расщепить на несколько хостов   Mykola Dzham   13 Dec 2006 16:18:50 
Архивное /ru.unix.bsd/65777816ee25.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional