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