Маршрутизация между 2-мя подсетями (не могу осилить)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

FlySnake
Сообщения: 992
ОС: openSUSE

Маршрутизация между 2-мя подсетями

Сообщение FlySnake »

Поиском пользовался, читал разную литератутру, но так и не получается сделать задуманое.
Дистрибутив Slackware 12.0
На прикрепленном изображении нарисовано то, что нужно сделать. Имеем 2 подсети:
192.168.1.0 netmask 255.255.255.0 на eth1
192.168.2.0 netmask 255.255.255.0 на eth0
Делаю так:

Код: Выделить всё

route add -net 192.168.1.0 netmask 255.255.255.0 eth1
route add -net 192.168.2.0 netmask 255.255.255.0 eth0

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

Код: Выделить всё

route add default gw 192.168.2.100

но это ни к чему не приводит. От клиентов до 192.168.2.150 пинги доходят, т.е., как я предположил, он правильно отправляет пакеты из подсети 192.168.1.0 на 192.168.2.0, но дальше ничего не проходит.
Вот так выглядит текущая таблица маршрутизации:

Код: Выделить всё

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.2.0     *               255.255.255.0   U     0      0        0 eth0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth1
loopback        *               255.0.0.0       U     0      0        0 lo
default         192.168.2.100   0.0.0.0         UG    0      0        0 eth0

Очень прошу помощи гуру, ибо сам уже 2-й день с этим сижу без результатов.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: Маршрутизация между 2-мя подсетями

Сообщение Poor Fred »

FlySnake писал(а):
30.01.2008 10:59
После этого начинают ходить пинги и до ADSL-роутера, и до клиентов, но от клиентов до роутера - нет. Просто теряются пакеты без всяких сообщений. Пробую добавить шлюз по умолчанию:

И правильно. Комп просто не знает, что пакеты надо куда-то переправлять. Нужно как минимум установить sysctl

Код: Выделить всё

net.ipv4.conf.eth1.forwarding = 1

Ну и копать литературу на предмет Linux router.

Как-то так.
Убить всех человеков!
Спасибо сказали:
Аватара пользователя
landrew.xp
Сообщения: 396
Статус: Опытный новичок в оффлайне
ОС: OpenSUSE; Mandriva; Ubuntu

Re: Маршрутизация между 2-мя подсетями

Сообщение landrew.xp »

А что говорит

Код: Выделить всё

traceroute 192.168.2.100

с клиента?
Есть многое на свете, друг Горацио,
Что и не снилось нашим мудрецам.
Спасибо сказали:
FlySnake
Сообщения: 992
ОС: openSUSE

Re: Маршрутизация между 2-мя подсетями

Сообщение FlySnake »

Poor Fred писал(а):
30.01.2008 11:31
И правильно. Комп просто не знает, что пакеты надо куда-то переправлять. Нужно как минимум установить sysctl

Код: Выделить всё

net.ipv4.conf.eth1.forwarding = 1

Извеняюсь за глупый вопрос, но что с этим делать? :) В /etc/rc.d/rc.inet1.conf прописывать?
systtl стоит, но что с ним делать? В мане написано мол файл конфига /etc/sysctl.conf, но его там нет. Сейчас вечером уже соображаю плохо и не осилил что это за зверь и с чем его едят :) Впервые с этим сталкиваюсь, гугл обычно выкидывает на iptables и собственно route, мол этого достаточно. iptables не трогал пока вообще, ибо там с правилами показалось слишком геморно, а с route якобы проще :)
Насчёт Linux Router загуглил, но это не подходит т.к. со временем тут будет ещё http, ftp и ещё может много всего. Так уже всё на борту, и хочется таки разобраться с этим, на будущее пригодится.

landrew.xp писал(а):
30.01.2008 11:42
А что говорит

Код: Выделить всё

traceroute 192.168.2.100

с клиента?

Код: Выделить всё

traceroute to 192.168.2.100 (192.168.2.100), 30 hops max, 38 byte packets
 1  192.168.1.100 (192.168.1.100)  0.256 ms  0.195 ms  0.083 ms
 2  *  *  *
и так далее...
Спасибо сказали:
beloz
Сообщения: 3

Re: Маршрутизация между 2-мя подсетями

Сообщение beloz »

Код: Выделить всё

echo "1" > /proc/sys/net/ipv4/ip_forward

Собственно туда :) Это к вопросу перенаправления пакетов.
Ну вроде так :)
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: Маршрутизация между 2-мя подсетями

Сообщение Poor Fred »

FlySnake писал(а):
30.01.2008 20:04
Извеняюсь за глупый вопрос, но что с этим делать? :) В /etc/rc.d/rc.inet1.conf прописывать?
systtl стоит, но что с ним делать? В мане написано мол файл конфига /etc/sysctl.conf, но его там нет.


вот в /etc/sysctl.conf и пишешь:

Код: Выделить всё

net.ipv4.ip_forward = 0

Лучше ИМХО эту строку, а не ту, что я выше дал

FlySnake писал(а):
30.01.2008 20:04
Насчёт Linux Router загуглил, но это не подходит т.к. со временем тут будет ещё http, ftp и ещё может много всего. Так уже всё на борту, и хочется таки разобраться с этим, на будущее пригодится.

Ну и при чем тут? Что не подходит? Блин, имелся в виду не какой-то дистрибутив, а линукс как роутер.
Убить всех человеков!
Спасибо сказали:
Аватара пользователя
m@key
Сообщения: 186
Статус: заблудшая душа...
ОС: GNU/Linux & FreeBSD

Re: Маршрутизация между 2-мя подсетями

Сообщение m@key »

nesk писал(а):
29.01.2008 17:03
вот в /etc/sysctl.conf и пишешь:

Код: Выделить всё

net.ipv4.ip_forward = 0

Лучше ИМХО эту строку, а не ту, что я выше дал

поправка на ветер. а то вдруг что не понятно будет... с вашего позволения...

Код: Выделить всё

net.ipv4.ip_forward = 1
Yes, I am a criminal. My crime is that of curiosity. My crime is that of
judging people by what they say and think, not what they look like...
Спасибо сказали:
FlySnake
Сообщения: 992
ОС: openSUSE

Re: Маршрутизация между 2-мя подсетями

Сообщение FlySnake »

beloz писал(а):
30.01.2008 22:20

Код: Выделить всё

echo "1" > /proc/sys/net/ipv4/ip_forward

Собственно туда :) Это к вопросу перенаправления пакетов.
Ну вроде так :)

Не прокатило :(

Poor Fred писал(а):
31.01.2008 05:33
вот в /etc/sysctl.conf и пишешь:

Код: Выделить всё

net.ipv4.ip_forward = 0

Лучше ИМХО эту строку, а не ту, что я выше дал

Такого файла нет. Создал его сам, вбил туда это и опять не работает.
Разумеется перезагружался после этого.
Вот что ещё интересно:
с клиента

Код: Выделить всё

traceroute to 192.168.2.150 (192.168.2.150), 30 hops max, 38 byte packets
 1  192.168.2.150 (192.168.2.150)  0.226 ms  0.262 ms  0.098 ms

Получается он добивает до eth0 (192.168.2.150) минуя eth1 (192.168.1.100)? Как так, может у меня ошибка в маршрутизации?
Спасибо сказали:
FlySnake
Сообщения: 992
ОС: openSUSE

Re: Маршрутизация между 2-мя подсетями

Сообщение FlySnake »

Ура, мужики! Гугл принёс прозрение:

Код: Выделить всё

iptables -A POSTROUTING -o eth0 -t nat -j MASQUERADE

После чего пинги стали ходить между подсетями. Пока не могу полностью проверить т.к. надо всю контору инета лишать, но думаю уже справлюсь дальше с DHCP, NAT и DNS. Всем огромное спасибо!

-=UPDATED=-
Осилил DNS с DHCP, всё работает. Теперь осталось то, ради чего собственно и задумывался этот агрегат: мониторинг траффика. То есть нужно в любой момент подключится к нему по ssh и посмотреть кто что в данный момент качает (по IP клиентов). Пока что из приемлимых способов нагуглил ipac, но он просить ядро пересобрать - не хочется пока этого делать. Может кто подскажет такую штуку? Функционал нужен минимальный, типо табличка, в ней IP клиентов, траффик на эти IP, по возможности скорость up/down. Прокси не подходит.

-=UPDATED=-
Нашёл iptraf - то что нужно, ну практически.
Спасибо сказали:
Аватара пользователя
Trojan
Сообщения: 359
Статус: Системный ламер
ОС: CentOS 7

Re: Маршрутизация между 2-мя подсетями

Сообщение Trojan »

Ситуация похожа на ту, что у топикстартера. Есть две подсети 192.168.1.0/24 и 192.168.2.0/24.

192.168.1.0 ---|eth0| Ubuntu |eth1|--- 192.168.2.0

Нужно настроить маршрутизацию между двумя подсетями.

Также как и топикстартер прописываю маршруты, но результат также никакой.

Код: Выделить всё

route add -net 192.168.1.0 netmask 255.255.255.0 eth0
route add -net 192.168.2.0 netmask 255.255.255.0 eth1

В ответах выше пишется об установке дополнительных пакетов.
У меня вопрос: такую задачу только прописыванием маршрутов нельзя решить? Обязательно для этого надо ставить iptables и ему подобные пакеты?
Всегда думай то, что говоришь и никогда не говори то, что думаешь.

Спасибо сказали:
IMB
Сообщения: 2566
ОС: Debian

Re: Маршрутизация между 2-мя подсетями

Сообщение IMB »

Trojan писал(а):
01.02.2009 18:46
В ответах выше пишется об установке дополнительных пакетов.
У меня вопрос: такую задачу только прописыванием маршрутов нельзя решить? Обязательно для этого надо ставить iptables и ему подобные пакеты?

Такая задача нормально решается именно маршрутизацией :tongue:
Тут главное понять основные принципы:
- оправляющая сторона должна знать куда отправить
- принимающая сторона должна кому ответить
Trojan, в вашем случае все просто, привожу возможную схему реализации:
Ubuntu:

user@localhost

eth0 192.168.1.1/24 eth1 192.168.2.1/24 grep forward /etc/sysctl.conf # Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1

network 192.168.1.0 - gate 192.168.1.1
network 192.168.2.0 - gate 192.168.2.1
Ничего дополнительно не требуется.
Спасибо сказали:
Аватара пользователя
Trojan
Сообщения: 359
Статус: Системный ламер
ОС: CentOS 7

Re: Маршрутизация между 2-мя подсетями

Сообщение Trojan »

IMB, спасибо большое.
Всегда думай то, что говоришь и никогда не говори то, что думаешь.

Спасибо сказали: