Помогите настроить маршрутизаию

Здравствуйте! Не отправляйте плз в гугл, или на другие сайты, я читал докментаию по маршрутизации и перепробовал все что нашел, ничего не помогло. В общем начал я с http://www.gentoo.org/doc/ru/home-router-howto.xml безрезультатно...
Сори, немного попутал...
В общем, есть сеть с IP'aми 192.168.1.* и модем, работающий как роутер с IP 192.168.1.1 который идет в сеть и IP с 192.168.0.1 собственно внешка. Мне нужно поставить шлюз между модемом и сетью, чтобы знать на какие сайты заходят пользвоатели и ограничить им трафик(squid поставил, настроил вроде, ограничение трафика настроил с помощью SAMS) изменить IP на модеме я могу, но подключить его непосредственно к шлюзу я не могу по той причине, что логин\пароль вбит в модем и по этому сделать так не получится...
IP на шлюзе 192.168.1.212 (eth0) к которуму подлючен модем и 192.168.1.214 подлюченный в сеть.
Возможность чтобы проверить в реальных условиях будет только в понедельник, а пока мне нужно проверить будут ли доходить пакеты до 192.168.1.1. Для этого я eth0 подключил к сети а к eth1 подключил бук(Ip 192.168.1.215).
Пинги с linux машины идут на 192.168.1.1, с виндовых машин которые в сети с ip 192.168.1.190-210, доходят до обеих сетевых карт, но не доходят до бука 192.168.1.215, да и собственно с "шлюза" бук не пингуется. Помогите плз просто уже не знаю что делать, как правильно настроить так чтобы пакеты отправленные с 192.168.1.215 на 192.168.1.214 перенаправлялись на 192.168.1.212, а с 192.168.1.212 на 192.168.1.1...

Думается, стоит рассказать

Думается, стоит рассказать зачем это вообще нужно, а не работает оно от того что у тебя 2 сетевые карты имеют адреса из одной подсети.

Пробовал ставить одной

Пробовал ставить одной сетевой ip 192.168.1.212, которая идет в сеть, а второй 192.168.2.10, при этом ип бука был 192.168.2.15
При этом пробовал указать маршрут:

Цитата:
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
route add -net 192.168.2.0 netmask 255.255.255.0 dev eth1

В поисках решения наткнулся на такую тему: http://www.opennet.ru/openforum/vsluhforumID10/2212.html
В общем я так понял это мне и надо...

Цитата:
iptables -A PREROUTING -i eth0 -p all -d 192.168.1.212 -j DNAT --to-destination 192.168.1.1
iptables: No chain/target/match by that name

Что я не так делаю?

Может буду банален, но echo

Может буду банален, но
echo 1 > /proc/sys/net/ipv4/ip_forward делал ?

что до твоего правила в iptables, то допиши -t nat, т.е.
iptables -t nat -A PREROUTING -i eth0 -p all -d 192.168.1.212 -j DNAT --to-destination 192.168.1.1

Olek написал(а):Может буду

Olek написал(а):
Может буду банален, но
echo 1 > /proc/sys/net/ipv4/ip_forward делал ?

Делал...

Olek написал(а):
что до твоего правила в iptables, то допиши -t nat, т.е.
iptables -t nat -A PREROUTING -i eth0 -p all -d 192.168.1.212 -j DNAT --to-destination 192.168.1.1

Так прокатило. Исходя из того, что пользователи находятся в подсети 192.168.1.*, сетевая карта на шлюзе которая идет в сеть я так полагаю должна быть 192.168.1.212, какие IP тогда оптимально использовать на eth1(которая идет к модему) и какие IP нужно выставить на модеме?
И тогда на какой IP нужно вводить в выше написанном правиле? И можно ли оставить IP на модеме 192.168.1.1(который шел в сеть) и 192.168.0.1(которая внешняя), eth0 оставить 192.168.1.212 и если да, то какой IP поставить на eth1?
P.S. Попробовал максимальн овнятно сформулировать вопрос...

jaden написал(а): При этом

jaden написал(а):
При этом пробовал указать маршрут:

Цитата:
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
route add -net 192.168.2.0 netmask 255.255.255.0 dev eth1

А кто нить знает в этом случае, при указании маршрута пишется IP одной сетевой карты и сетевой интерфейс другой?

С IP'шниками я разобрался,

С IP'шниками я разобрался, остался только вопрос про iptables:
Собственно нужно перенапрвлять пакеты с eth0(192.168.1.1) на eth1(192.168.0.2), и затем отправлять их на модем, работающий как роутер(192.168.0.1).
Сначала ввожу правила с http://www.gentoo.org/doc/ru/home-router-howto.xml . Дальше пытаюсь настроить маршрутизацию:

Цитата:
iptables -t nat -A PREROUTING -i eth0 -p all -d 192.168.1.1 -j DNAT --to-destination 192.168.0.1 # Этой командой я перенаправляю все запросы с шлюза на роутер
iptables -t nat-A POSTROUTING -p all -d 192.168.0.1 -j SNAT --to-source 192.168.1.1 # этим я так понимаю я перенапрвляю ответы
iptables -t nat -A FORWARD -i eth0 -j ACCEPT # Разрешаю перенаправление
iptables -t nat -A PREROUTING -i eth0 -s 192.168.1.0 -d 192.168.1.1 -p all -j DNAT --to-destination 192.168.0.1 # этим правилом я перенаправляю все запросы из 1-ой подсети на шлюз, а далее они отправляются на роутер.
iptables -t nat-A POSTROUTING -p all -d 192.168.0.1 -j SNAT --to-source 192.168.1.1 # этим я так понимаю я перенапрвляю ответы

В общем вопрос, правильно ли я задаю правила, и собственно будут ли пакеты перенаправляться так или надо было еще указать чтобы пакеты отправляли сначала на 192.168.1.1 а затем уже на 192.168.0.2?

Тут тогда возникает вопрос -

Тут тогда возникает вопрос - зачем настраивался SQUID, если на него ни один пакет не попадает?

Каким образом вы хотите использовать прокси? Тут либо прозрачный либо обычный варианты.

Если обычный - настраиваете юзерские машины на юзание прокси, добавляете маршрут по умолчанию на шлюзе:

ip route add default via 192.168.0.1 dev eth1

Если хотите прозрачный, надо перенаправлять запросы с 80 порта шлюза на порт SQUID (3128).

iptables -t nat PREROUTING -i eth0 -p tcp --d-port 80 -j REDIRECT --to-port 3128

Это конечно не все. Но вы опеределитесь, чего именно хотите, и, быть может, вам подскажут, как это сделать ;)

ЗЫ
С пол года назад точно такую же задачу (с небольшими оговорками) решал... правда, сервер вне досягаемости сейчас, но если удастся, выложу свой конфиг iptables - там и фаерволл настроенный, и все необходимые редиректы.

Я не смог понять твой комментарий...
И по этому поводу решил подарить тебе запятую: ",". Используй её с умом!

Youshi написал(а):Каким

Youshi написал(а):
Каким образом вы хотите использовать прокси?

Честно? Я не знаю как лучше в моем случае... Наверно все таки использование обычного метода, но тогда вместе с
ip route add default via 192.168.0.1 dev eth1
не надо писать:
ip route add default via 192.168.1.0 dev eth0?

Pinkbyte написал(а):
я думаю, если бы уважаемый прочитал руководство по iptables с http://www.opennet.ru/docs/RUS/iptables/ то у мнего таких вопросов бы не возникло...

За ссылку спасибо. Руководство по iptables я не читал(но обязательно изучу), потому что когда я задал вопрос какую документацию прочитать по настройке шлюза, мне указали на эту, по которой я и пробовал настроить(знаю, надо было догадаться самому чтобы почитать документацию по iptables).

jaden написал(а):Youshi

jaden написал(а):
Youshi написал(а):
Каким образом вы хотите использовать прокси?

Честно? Я не знаю как лучше в моем случае... Наверно все таки использование обычного метода, но тогда вместе с
ip route add default via 192.168.0.1 dev eth1
не надо писать:
ip route add default via 192.168.1.0 dev eth0?

нет не надо.

команда ip route add default via 192.168.0.1 dev eth1 нужна, чтобы все пакеты, идущие не в сети 192.168.0.0, 192.168.1.0, отправлялись прямиком в интернет через шлюз 192.168.0.1

также это можно сделать, добавив в /etc/conf.d/net строчку:

routes_eth1=( "default gw 192.168.0.1" )

Я не смог понять твой комментарий...
И по этому поводу решил подарить тебе запятую: ",". Используй её с умом!

Сделал как вы сказали... Пока

Сделал как вы сказали... Пока доступа к роутера у меня нет, поэтому для проверки я подключил linux-машину в сеть, к одной сетевой карте подлючен бук(eth5 ip 192.168.0.1) вторая идет в сеть(eth4 Ip 192.168.1.212). Так вот, пинги из 1-ой подсети доходят до бука(ip 192.168.0.2), но с бука пинги в 1-ую подсеть не идут... Пинги с Linux машины до бука тоже не идут...

ip route
192.168.1.0/24 dev eth4  proto kernel  scope link  src 192.168.1.212
192.168.0.0/24 dev eth5  proto kernel  scope link  src 192.168.0.1
127.0.0.0/8 dev lo  scope link
default via 192.168.1.1 dev eth4
tracert 192.168.1.1
Трассировка маршрута к 192.168.1.1 с максимальным числом прыжков 30:
1 4ms 4ms 4ms 192.168.0.1
2 

И дальше пакеты теряются...
Или таким способом не проверишь будет работать или нет? И еще вопрос а если я настрою linux машину бриджем(судя по мануалам тогда пинги ходить меджу сетями должны), будет ли инет у пользователей?

jaden написал(а): Сделал как

jaden написал(а):
Сделал как вы сказали... Пока доступа к роутера у меня нет, поэтому для проверки я подключил linux-машину в сеть, к одной сетевой карте подлючен бук(eth5 ip 192.168.0.1) вторая идет в сеть(eth4 Ip 192.168.1.212). Так вот, пинги из 1-ой подсети доходят до бука(ip 192.168.0.2), но с бука пинги в 1-ую подсеть не идут... Пинги с Linux машины до бука тоже не идут...

ip route
192.168.1.0/24 dev eth4  proto kernel  scope link  src 192.168.1.212
192.168.0.0/24 dev eth5  proto kernel  scope link  src 192.168.0.1
127.0.0.0/8 dev lo  scope link
default via 192.168.1.1 dev eth4
tracert 192.168.1.1
Трассировка маршрута к 192.168.1.1 с максимальным числом прыжков 30:
1 4ms 4ms 4ms 192.168.0.1
2 

И дальше пакеты теряются...
Или таким способом не проверишь будет работать или нет? И еще вопрос а если я настрою linux машину бриджем(судя по мануалам тогда пинги ходить меджу сетями должны), будет ли инет у пользователей?

Пинги и не должны идти.
Точнее должны идти следующим образом: Из обеих сетей до Linux-машины и от Linux-машины в обе подсети.
Как я говорил ранее - это только начало :)

Теперь можно включить форвардинг. Тогда да - все будут видеть всех.

Таким образом у вас получится, что весь трафик будет свободно гулять между инетом и сетью, но весь http будет заворачиваться на SQUID. Должен по крайней мере.

Поэтому сначала, проверьте, работает ли прокси (не включая форвардинг! а то не поймете ниче :)). А потом уже можете дальше настраивать.

ЗЫ
если на шлюзе будет/стоит Apache, то придется правило для squid немного подправить:

iptables -t nat PREROUTING -i eth5 -p tcp ! -d 192.168.0.1 --d-port 80 -j REDIRECT --to-port 3128

Я не смог понять твой комментарий...
И по этому поводу решил подарить тебе запятую: ",". Используй её с умом!

Цитата: я читал докментаию по

Цитата:
я читал докментаию по маршрутизации

я думаю, если бы уважаемый прочитал руководство по iptables с http://www.opennet.ru/docs/RUS/iptables/ то у мнего таких вопросов бы не возникло...

Нейтральность - высшее достижение сознания!

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".