|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Eugene M. Zheganin 2:5054/79.2 18 Dec 2002 18:54:26 To : Sergey Zaikov Subject : Социализм - это учет и контроль ;)) -------------------------------------------------------------------------------- 18 Dec 02 в 11:19, Sergey Zaikov -=> Eugene M. Zheganin о "Социализм - это учет и контроль ;))": [...] EZ>> И без алиасов его пpидется читать. В основном надо немнеого EZ>> подумать и написать на бумажке. Hапpимеp. Для наглядности. SZ> rl0 - быстрый инет, rl1 - внутреняя сетка, rl2 - медленный инет SZ> Вот что придумалось: SZ> #быстрый инет SZ> ${fwcmd} add divert natd all from 192.168.107.1/29 to any via rl0 SZ> out SZ> ${fwcmd} add divert natd all from any to 192.168.107.1/29 via SZ> rl0 in SZ> #медленный инет SZ> ${fwcmd} add divert natd all from 192.168.107.100/29 to any via rl2 SZ> out SZ> ${fwcmd} add divert natd all from any to 192.168.107.100/29 via rl2 in SZ> Похоже на правду? Почти нет. 8) а) Один сокет- один нат. Это явствует из мана. б) Если ты дивертишь все пакеты в один нат (а у тебя нарисовано именно так), то все они побегут с одним ipsrc. А дальше сложно сказать. Как рутинг и fwd нарисуешь, но это дебри. Тебе 2 ната нужно и 2 дайверт-сокета. в) Ответы от внешнего мира _все_ идут как для твоего интерфейса. Внешний мир ничего не знает про твои приватные сети, поэтому ответы шлет как будто для твоего публичного адреса (одного из двух). г) Понять, в каких иименно входящих на внешний интерфейс пакетах нужно транслировать обратно ipdst может только natd, так как у него все ходы записаны. Поэтому предлагать к обратной трансляции нату нужно все пакеты, а он уж сам разберется. Соответственно. Hарисовать нужно, казалось бы, следующее. - не забыть запустить второй натд. - не забыть нарисовать дайверт-сокет в /etc/services нарисовать нечто вроде (плюс тебе же не только нужно по адресам побить, насколько я понял- но еще и пот портам, например всякие флэшгеты и прочую ftp-шную муть выкинуть в медленный канал) по портам сам нарисуешь, рисую по адресам # Быстрый ipfw add divert natd all from 192.168.107.1/29 to any out via rl0 ipfw add divert natd all from any to any in via rl0 # Медленный ipfw add divert natd all from 192.168.107.100/29 to any out via rl2 ipfw add divert natd all from any to any in via rl2 Hо. Теперь есть самый интересный нюанс. Чтобы пакеты подайвертились правильно, нужно чтобы они получили тэг via <iface>. Для этого система должна сначала их зарулить на этот интерфейс, а это она будет делать в соответствии с маршрутизацией. И вот в этом месте появляется необходимость рулить рутингом в зависимости от адресов и, по возможности, от портов. И че-то я не соображу, как это сделать. Придется просить помощи у старших товарищей. Плюс еще важно, как ISP траффик считать будет. От ipsrc, или от канала. Если от канала, тогда наверное вообще забить на ipsrc и на наты, и все разруливать fwd. Если от ipsrc, то тогда надо курить доки. Самый простой способ- забить на порты, разбить клиентов на две сети по типу желаемого соединения, и настроить им разные шлюзы в зависимости от. 2 Олл: и что делать в случае, когда не хочется все же так делать ? Снимите с ручника. Или я вообще не в тут сторону все делаю ? Hа этом остаюсь искренне Ваш, Евгений. --- GoldED+/BSD 1.1.5 * Origin: ----> Default GoldED Origin <---- (2:5054/79.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/28173e007104.html, оценка из 5, голосов 10
|