Не работает ip_forward

Cent OS, Scientific Linux

Модератор: Модераторы разделов

Andrey-MSK
Сообщения: 221
ОС: MBP13" OS X 10.6.3

Не работает ip_forward

Сообщение Andrey-MSK »

Всем привет!

Может где и описывалась эта проблема, но сколько искал и читал, не нашел ничего похожего.

Дело вот в чем. Есть две сети, 192.168.2.0 и 192.168.3.0. Сети разделены не физически, а логически. Выход в инет идет через сеть 192.168.2.0. Много всего прочитал про настройку шлюза между сетями, но везде есть одна команда для включения форвардинга.

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

когда команда выполняется, то в файл соответсвенно записывается 1, но при перезапуске сетевых интерфейсов выдается сообщение
"Запрещается маршрутизация пакетов IPv4: net.ipv4.ip_forward = 0"
И, как результат, вместо 1 соответсвенно стоит 0.
Подскажите, в чем проблема. И где копать?

Дистрибутив Fedora Core 6, ядро родное, не обновленное 2.6.18-1.2798
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Не работает ip_forward

Сообщение Liksys »

В сторону файла /etc/sysctl.conf
Настройки будут сохраняться.
Спасибо сказали:
Andrey-MSK
Сообщения: 221
ОС: MBP13" OS X 10.6.3

Re: Не работает ip_forward

Сообщение Andrey-MSK »

В этом файле все в порядке, стоит net.ipv4.ip_forward = 1.
Может надо покопать iptables?
И еще. При добавлении маршрута
route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.2.1 dev eth1
выдается сообщение
SIOCADDRT: Сеть не доступна.
Чтобы это значило?
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Не работает ip_forward

Сообщение Liksys »

А как ты сетку поднимал? Что есть в dmesg? Может попробовать из консоли поднять ифконфигами/роутами?
Спасибо сказали:
Andrey-MSK
Сообщения: 221
ОС: MBP13" OS X 10.6.3

Re: Не работает ip_forward

Сообщение Andrey-MSK »

Сеть работает нормально. Машинка с Linux инет видит, машина в сети 192.168.3.0 пингуется.
Настройки для eth0
DEVICE=eth0
BOOTPROTO=none
BROADCAST=192.168.2.255
IPADDR=192.168.2.200
NETMASK=255.255.255.0
NETWORK=192.168.2.0
ONBOOT=yes
GATEWAY=192.168.2.1
TYPE=Ethernet

для eth1

DEVICE=eth1
BOOTPROTO=none
BROADCAST=192.168.3.255
IPADDR=192.168.3.1
NETMASK=255.255.255.0
NETWORK=192.168.3.0
ONBOOT=yes
TYPE=Ethernet
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Не работает ip_forward

Сообщение Liksys »

Маршрутизация запрещается при перезапуске? А если после запуска включить ее? Работает?
Спасибо сказали:
Andrey-MSK
Сообщения: 221
ОС: MBP13" OS X 10.6.3

Re: Не работает ip_forward

Сообщение Andrey-MSK »

Перезапускал сеть командой
/etc/init.d/network restart
во время выполнения этой команды и выдается сообщение о запрете маршрутизации.
Что самое интересное, тока щас обнаружил что в файле ip_forward стоит значение 1.

Но при добавлении маршрута
route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.2.1 dev eth1
опять-же выдается что сеть не найдена.
Если добавлять маршрут без параметра dev eth1, то все срабатывает, но вешается все на eth0, а мне надо, чтоб перекидывало с сети 192.168.3.0 на сеть 192.168.2.0.
Чего где не так делал?
Спасибо сказали:
Lipen
Сообщения: 37

Re: Не работает ip_forward

Сообщение Lipen »

А что значит сети раэделены логически? И я всетаки не понял, что значит перекидывало с сети 192.168.3.0 на 192.168.2.0? Всё вешается на eth0, так правильно вешается, ведь там вторая подсеть.
Спасибо сказали:
Andrey-MSK
Сообщения: 221
ОС: MBP13" OS X 10.6.3

Re: Не работает ip_forward

Сообщение Andrey-MSK »

Lipen, просто есть одна физическая сеть, а в ней созданы две подсети 192.168.2 и 192.168.3
И надо сделать чтобы eth1 знал, что пакеты предназначеные для сети 192.168.2 и инета посылать на eth0.
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Не работает ip_forward

Сообщение Liksys »

Лучше тогда сделай так. Пусть один из интерфейсов смотрит только в сеть, а второй только в инет. В сети у всех компов поставь маску 255.255.0.0, тогда они будут нормально видеть друг друга. Серверу соотсно так же (с той стороны, которой он в сеть). У компов в сетку проложить маршрут по дефолту через сервер (ему сделай нейтральный IP, 192.168.100.100), на сервере разреши пересылку между интерфейсами, и сделай маскировку IP через IPTables.
Все будет работать :cool:
Спасибо сказали:
Andrey-MSK
Сообщения: 221
ОС: MBP13" OS X 10.6.3

Re: Не работает ip_forward

Сообщение Andrey-MSK »

Liksys, спасибо за совет. Щас будем попробывать ;)

вот что имею на настоящий момент

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

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.3.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
192.168.2.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth1
0.0.0.0         192.168.2.1     0.0.0.0         UG        0 0          0 eth0

откуда появилась подсеть 169.254.0.0 ума не приложу...
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Не работает ip_forward

Сообщение Liksys »

Ага, у меня тоже она есть. Я забил. Это какая-то Федоркина фича :)
Спасибо сказали:
Andrey-MSK
Сообщения: 221
ОС: MBP13" OS X 10.6.3

Re: Не работает ip_forward

Сообщение Andrey-MSK »

Теперь уже при загрузке машины выдает что маршрутизация запрещена :(
Че делать?

Могет чего SELinux перекрывает?
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Не работает ip_forward

Сообщение Liksys »

SELinux попробуй выключить.
Спасибо сказали:
Andrey-MSK
Сообщения: 221
ОС: MBP13" OS X 10.6.3

Re: Не работает ip_forward

Сообщение Andrey-MSK »

Liksys, завтре уже попробую, седне рабочий день к концу подошел :)
Че будет получаться, отпишу.
Спасибо сказали:
Andrey-MSK
Сообщения: 221
ОС: MBP13" OS X 10.6.3

Re: Не работает ip_forward

Сообщение Andrey-MSK »

SELinux отключил.
Но проблема не пропала :(
вот вывод /etc/init.d/network restart

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

Деактивируется интерфейс eth0:    [OK]
Деактивируется интерфейс eth1:    [OK]
Деактивируется интерфейс-петля:   [OK]
Запрещается маршрутизация пакетов IPv4:  net.ipv4.ip_forward = 0 [OK]
Активируется интерфейс loopback:  [OK]
Активируется интерфейс eth0:      [OK]
Активируется интерфейс eth1:      [OK]


Че делать? :(
Спасибо сказали:
Lipen
Сообщения: 37

Re: Не работает ip_forward

Сообщение Lipen »

Это всё нормально, маршрутизация при выключении запрещается, потом разрешается. Если конечно в sysctl.conf указано net.ipv4.ip_forward = 1
Спасибо сказали:
Andrey-MSK
Сообщения: 221
ОС: MBP13" OS X 10.6.3

Re: Не работает ip_forward

Сообщение Andrey-MSK »

А почему тогда машины из сети 192.168.3 не видят машин 192.168.2 и наоборот?
Че не так? Где копать?
Спасибо сказали:
Lipen
Сообщения: 37

Re: Не работает ip_forward

Сообщение Lipen »

Andrey-MSK писал(а): ↑
06.06.2007 11:49
А почему тогда машины из сети 192.168.3 не видят машин 192.168.2 и наоборот?
Че не так? Где копать?

Нужно создать виртуальный сетевой интерфейс

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

ifconfig eth0:1 192.168.3.1 up
и шлюзом в подсети 192.168.3 указать 192.168.3.1
Спасибо сказали:
Andrey-MSK
Сообщения: 221
ОС: MBP13" OS X 10.6.3

Re: Не работает ip_forward

Сообщение Andrey-MSK »

В смысле?
У меня на eth1 висит адрес 192.168.3.1
Спасибо сказали:
Lipen
Сообщения: 37

Re: Не работает ip_forward

Сообщение Lipen »

Тогда я в твоей сети вообще ничего не понимаю. Значит сети разделены физически. А интернет откуда берется?
Спасибо сказали:
Andrey-MSK
Сообщения: 221
ОС: MBP13" OS X 10.6.3

Re: Не работает ip_forward

Сообщение Andrey-MSK »

Lipen, ситуевина у меня такая. Постараюсь поподробнее.
Есть офис, два этажа. На втором стоит ADSL-модем, к нему подключен роутер, сам роутер подключен к свитчу и раздается на остальные машины. Основная сеть по роутеру 192.168.2. IP раздаются по DHCP роутера. Роутер аппаратный. Сеть одноранговая. Влезть в роутер не могу, так как поставщики запаролили его зачемто а пароль не дают. Вызывать их каждый раз, это платить деньги. Задача такая. Настроить роутер на машине с Linux, и подключить ее к ADSL-модему. Нужно это для подсчета траффа по сети, так как у нас инет лимитированный, и под конец месяца всегда начинает падать скорость. Нужно просто знать, кто где и по чем. В данный момент физически не могу перекинуть модем на машину с Linux пока не настрою все. Вот и решил разделить сети логически, т.е. одна физическая сеть, имеются ввиду физические соединения хабов, и щас для настройки сервера поставил на машину с Linux две сетевухи. И назначил им сети 192.168.2 и 192.168.3. Машины по своим сетям пингуются, но за пределы 2 и 3 не выходят. Вот такая проблема.
Спасибо сказали:
Lipen
Сообщения: 37

Re: Не работает ip_forward

Сообщение Lipen »

Ясно, в машине (линуксовом роутере) поставь дефолтным шлюзом адрес аппаратного роутера. Тогда третья подсеть (если шлюз у них 192.168.3.1) сможет ходить в и-нет. А во второй подсети (как я понимаю стоят виндовые машинки) нужно на рабочих станциях ввести постоянный маршрут чтобы в подсеть 192.168.3.0/24 они ходили через линуксовую машину. И всё. Например:

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

route add -p 192.168.3.0 mask 255.255.255.0 192.168.2.1 metric 20
Спасибо сказали:
Andrey-MSK
Сообщения: 221
ОС: MBP13" OS X 10.6.3

Re: Не работает ip_forward

Сообщение Andrey-MSK »

Параметр -р не принимает.
Сделал вот так:

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

route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.2.1 metric 1 dev eth1

Итог, выдается ошибка

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

SIOCADDRT: Сеть не доступна.


192.168.2.1 - IP аппаратного роутера
Спасибо сказали:
Lipen
Сообщения: 37

Re: Не работает ip_forward

Сообщение Lipen »

Andrey-MSK писал(а): ↑
06.06.2007 13:37
Параметр -р не принимает.
Сделал вот так:

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

route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.2.1 metric 1 dev eth1

Итог, выдается ошибка

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

SIOCADDRT: Сеть не доступна.


192.168.2.1 - IP аппаратного роутера

Это нужно ввести на виндовых машинах во второй подсети в консоли, после этого вторая подсеть должна видеть третью

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

route add -p 192.168.3.0 mask 255.255.255.0 192.168.2.200 metric 20
в третьей подсети дефолтным шлюзом должен быть 192.168.3.1
Спасибо сказали:
Andrey-MSK
Сообщения: 221
ОС: MBP13" OS X 10.6.3

Re: Не работает ip_forward

Сообщение Andrey-MSK »

Значит вот такие действия.
На машине с Windows в свойствах TCP/IP ставлю статический IP, к примеру 192.168.3.190, прописываю шлюз 192.168.3.1 (машинка с Linux), прописываю IP DNS провайдера, они же прописаны и на машинке с Linux. (Картинка прилагается) Итог, машины друг друга пингуют, пакеты не теряются, а вот инета нет. Значит на машине с Linux пакеты не пересылаются с eth1 на eht0.

netstat на машине с Linux показывает следующее:

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

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.3.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
192.168.2.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth1
0.0.0.0         192.168.2.1     0.0.0.0         UG        0 0          0 eth0


То есть и для сети 2 и для сети 3 стоит один и тот-же шлюз. Но пакеты до него не доходят :(
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
Andrey-MSK
Сообщения: 221
ОС: MBP13" OS X 10.6.3

Re: Не работает ip_forward

Сообщение Andrey-MSK »

Вопрос решился.
Всем огромное спасибо!!!
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Не работает ip_forward

Сообщение sergio »

откуда появилась подсеть 169.254.0.0 ума не приложу...

Это не "федоркина фича", а автоадрес DHCP, APIPA, аффтоматика долбаная... у Гугля спрашиваем, от знает...
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали: