|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Vadim Goncharov 2:5020/400 12 Dec 2006 16:19:48 To : Valentin Davydov Subject : Re: расщепить на несколько хостов -------------------------------------------------------------------------------- Hi Valentin Davydov! On Tue, 12 Dec 2006 07:32:36 +0000 (UTC); Valentin Davydov wrote about 'Re: расщепить на несколько хостов': 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 ? VD> В общем, необязательно на lo0, можно, допустим, и на lo1, просто lo0 обычно VD> уже есть в системе и не надо заботиться о его создании. А на внешние VD> интерфейсы, по-моему, не стоит: зачем в сети лишний 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}"\ ) $Б $порт_сервера >>Благодарю за скриптик. Конечно, хотелось бы более изящно, чем куча >>алиасов на одном хосте, но и это сойдет. VD> Другие варианты (хитровывернутый nat, альтернативный tcp/ip стек на bpfах и VD> т.д.) представляются мне ещё менее изящными. Hу почему же? При алиасах система будет проверять эту кучу алиасов для каждого входящего пакета, а при хитром нате - только для пакетов по этим соединениям, что меньше. Альтернативный стек конечно изврат, да. VD>> Там ещё могут быть всякие тонкости, связанные с ограничениями количества VD>> одновременных соединений в inetd, корректностью закрытия tcp-соединений VD>> клиентом и/или сервером, environmentом запускаемых из скрипта команд, но VD>> при должной аккуратности всё это более-менее тривиально настраивается. >>А какие тут могут быть тонкости? Разрешить достаточное количество >>одновременных соединений, и пусть висит. VD> Hаиболее неприятной тонкостью, с которой я встречался, было честное висение VD> nc в процессах вплоть до истечения всевозможных таймаутов при некоррректном VD> обрыве tcp-соединения одной из сторон. Это при RST ? а с какой стороны он это не отработал? >>Зачем nc и awk окружение, тоже непонятно... VD> Да хотя бы PATH. А, ну это как бы само собой подразумевается. Хотя можно и абсолютные пути прописать. -- WBR, Vadim Goncharov. ICQ#166852181 mailto:vadim_nuclight@mail.ru [Moderator of RU.ANTI-ECOLOGY][FreeBSD][http://antigreen.org][LJ:/nuclight] --- slrn/0.9.8.1 on FreeBSD 4.11/i386 * Origin: Nuclear Lightning @ Tomsk, TPU AVTF Hostel (2:5020/400@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/10359ca5c837f.html, оценка из 5, голосов 10
|