|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Igor Suvorov 2:5020/400 08 Feb 2003 18:51:23 To : Aleksey Barabanov Subject : Re: pass stream over separate interface -------------------------------------------------------------------------------- Aleksey Barabanov <alekseybb@mtu-net.ru> writes: > >> Вот здесь и "секрет порылся" ;) Посмотрите как у вас описана сеть, > >> которая на eth2 в линуксовом рутере, на каждой из машин. > > > > Идентично.. В проблемном варианте - это линк на два адреса с маской 252. > > Шлюз за eth0. > Т.е. для перенаправления трафика в сторону обработчика вы должны делать на > рутере DNAT на PREROUTE с eth1. Это так ? Или вы его рутите по каким-то > критериям ? iptables -A PREROUTING -i eth1 -t mangle -p tcp --dport 80 \ -j MARK --set-mark 1 ip rule add fwmark 1 table my.route ip route add 0/0 via x.x.x.x dev eth2 table my.route где х.х.х.х - адрес обработчика. > >> Когда вы разносите на разные машины вход и выход, то фактически вы > >> заводите межу ними последовательный рутинг, где каждая следующая для > >> предыдущей служит дефолтным гейтом. > Hо здесь то я хоть правильно понял ситуацию с разнесением входа/выхода по > разным машинам ? Т.е. если исходящий трафик в Сеть направляется не через > первоначальный рутер с eth0 а через другой хост в той же сети (ну уже > естественно с другой маской), то все ОК ? Да, правильно. Я даже очень сильно подозреваю, что если я подниму на роутере eth4, расширю маску сети с 252 на 248, присвою ему адрес также из этой сети и сделаю на обработчике шлюзом его, то все заработает. И, с другой стороны, в процессе экспериментов я заводил eth2:1 и второй виртуальный интерфейс на обработчике, пытаясь разнести входящий и исходящий потоки по виртуальным интерфейсам. Hе работает. Впрочем, тут голову на отсечение не дам - до конца детально я этот вариант не вылизывал, мог что нибудь и потерять. > >> Если то, что я предположил правильно (могу и ошибаться ибо по письму > >> трудно представить все в точности), то у вас трафик обработчиком > >> отдается, а вот линуксовым рутером на eth2 не принимается, точнее снова > >> посылается в eth2. > > > > В eth2 заворачивается только то, что либо адресовано непосредственно > > обработчику, либо пришло с eth1 и было помечено через iptables как > > необходимое для перенаправления в eth2. Кроме того, через tcpdump никакого > > ping pong'a там не наблюдается.. Пакеты просто тихо умирают. > Видимо то, что было адресовано непосредственно обработчику ходит без > проблем. А проблемы у вас происходят с перенаправляемым трафиком. Именно.. > Вопрос в том, как вы его помечаете и перенаправляете и что происходит > с адресами при обработке. А не хотите ли попробовать наложить на сеть > в eth2 другую с нужным направление роутинга, и после обработки менять > SNAT ? Я адреса не меняю. Вообще по идее там потом задумывался squid в режиме transparent proxy. А точнее, реализация "transparent caching using policy based routing" из http://squid.visolve.com/white_papers/trans_caching.htm Собственно, в том числе и эксперименты со сквидом позволяют сделать дополнительный вывод о том, что пакеты сбрасывает именно обработчик. Т..к. tcpdump на обработчике пакеты видит, но access.log сквида при этом девственно чистый. Если сквид запущен, на eth2 должен вернуться уже его запрос. Ан нет. -- Igor --- ifmail v.2.15dev5 * Origin: no gnus is bad news (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/3677048032d5.html, оценка из 5, голосов 10
|