маршрутизатор на linux
маршрутизатор на linux
Прошу помощи у народа по данному вопросу. Посоветуйте что почитать, какие man, т.к. вобще не знаю с чего начать.
Проблема в том, чтобы организовать маршрутизацию трафика между двумя подсетями (10.0.0.0/8 и 10.5.5.0/25). Попробую предположить (поправте, если буду неточен): набиваются таблицы маршрутизации вручную к примеру, ну а поверх работает файервол (iptables какой-нить), что дает возможность очень тонко производить конфигурацию.
Про iptables есть какие-то представления, а вот что нужно для переадресации между сетевыми интерфейсами трафика, и как это все осуществить, для меня загадка, просветите, плиз
Проблема в том, чтобы организовать маршрутизацию трафика между двумя подсетями (10.0.0.0/8 и 10.5.5.0/25). Попробую предположить (поправте, если буду неточен): набиваются таблицы маршрутизации вручную к примеру, ну а поверх работает файервол (iptables какой-нить), что дает возможность очень тонко производить конфигурацию.
Про iptables есть какие-то представления, а вот что нужно для переадресации между сетевыми интерфейсами трафика, и как это все осуществить, для меня загадка, просветите, плиз
http://gazette.linux.ru.net/rus/article ... index.html
http://gazette.lrn.ru/rus/articles/ipta ... orial.html
http://ipsysctl-tutorial.frozentux.net/ ... orial.html
http://gazette.lrn.ru/rus/articles/ipta ... orial.html
http://ipsysctl-tutorial.frozentux.net/ ... orial.html
Опыт растет прямо пропорционально выведенному из строя оборудованию
Код: Выделить всё
(subnet1)----------(eth0)-|Linux Router|-(eth1)--------------------(subnet2)
(10.5.5.0/25) (10.5.5.100) ^ (192.168.1.100) (192.168.1.0/24)
(eth2)
(172.16.1.100)
^
^
|ADSL Modem|
(172.16.1.1)
Хотелось бы настроить маршрутизацию. Хотя бы для начала можно откинуть eth2 интерфейс. Остаются eth0 и eth1, которые будут соединять 2 подсети( 10.5.5.0/25 и 192.168.1.0/24). Вроде делаю все как надо, а именно (все интерфейсы подняты и работают). Из subnet2 пингуется eth1 сервера, а из subnet1 пингуется eth0 сервера. Но никакие пинги не проходят к машинам из subnet1 в subnet2.
* 1)$ ip ro
10.5.5.0/25 dev eth0 proto kernel scope link src 10.5.5.100
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.100
*Примечание:
#Т.е. как я здесь понимаю: пакет пришел например из сети 10.5.5.0/25 с адресом назначения например 192.168.1.10 (маска 192.168.1.0./24)
#исходя из этого ядро принимает пакет, считывает адрес назначения и перенаправляет его на eth1 (в нужную подсеть). Так?
* 2) $ iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level warning
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level warning
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
*Примечание:
#Пересылаемые пакеты все разрешены... Все вроде просто (iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT и наоборот -i eth1 -o eth0)
#Что касается логов /var/log/messages, то там ничего особого не пишется (я имею ввиду входящие пакеты или перенаправленые), вобще не
#видно подобных правил. Есть толкьо пару записей насчет 127.0.0.1
* 3) $ ip ru
0: from all lookup local
32763: from 192.168.1.0/24 to 10.5.5.0/25 lookup main
32764: from 10.5.5.0/25 to 192.168.1.0/24 lookup main
32765: from 10.254.10.10 lookup main
32766: from all lookup main
32767: from all lookup default
* 4) $ cat /proc/sys/net/ipv4/ip_forward
1
*Примечание:
#Т.е. поддержка ip_forward в ядре включена
Сомнения возникают насчет способности ядра к маршрутизации (ядро 2.4.26). Объясните, какие опции должны быть в нем включены для этого?[/code]
ситуация такова: стоит у меня сервак, в нем пока 2 сетевухи, и линк от моей домашней машины и 2 линка сервака идут в один свич.
Я периодически меняю у себя ип на 192.168.1.10 (255.255.255.0), шлюз: 192.168.1.100. Ip шлюза при этом пингуется, но напр модем который в 10.5.5.0/25 (ip 10.5.5.1) не пингуется.
Я периодически меняю у себя ип на 192.168.1.10 (255.255.255.0), шлюз: 192.168.1.100. Ip шлюза при этом пингуется, но напр модем который в 10.5.5.0/25 (ip 10.5.5.1) не пингуется.
Debian GNU/Linux 3.1 Sarge
Kernel 2.6.16
Kernel 2.6.16
cranium, для того чтобы работала маршрутизация между двумя произвольными хостави по разные стороны маршрутизатора должны быть нормально настроены таблицы маршрутизации на этих хостах. Маршрутизатор вообще трогать не надо, в случае с linux будут работать настройки маршрутизации по умолчанию, надо только разрешить пережачу пакетов между интерфейсами, что как я понял уже сделано.
PS: echo 1 > /proc/..... имет смысл только до перезагрузки
PS: echo 1 > /proc/..... имет смысл только до перезагрузки
Опыт растет прямо пропорционально выведенному из строя оборудованию
хотел поинтересоваться, может кто работал с протоколом PPPoE.
Хочу сделать вот что: (см. рис. 4-го поста). ADSL модем в сети работает в режиме bridge (инет провайдер раздает по протоколу PPPoE). Нужно сделать таким образом, чтобы этот мост, подключенный к интерфейсу сервера eth2 обменивался только с subnet1 (eth0). Связь eth2 <-> eth1 запрещена.
До недавних пор смутно представлял как PPPoE работает, благо в RFC2516 все подробно расписано.
Насколько я понимаю, трафик, идущий с eth0 нужно неким образом "отбирать" по определенному критерию, критерию принадлежности к PPPoE сессии (т.е. он предназначается в eth2). C eth2 трафик можно смело "заворачивать" на eth0. Пока что видится 2 способа:
1) Извлекать содержимое поля ETHER_TYPE (2 байта) из заголовка кадра Ethernet. Оно может принимать только 2 значения (rfc2516): 0x8863 (для поиска PPPoE-сервера) и 0x8864 (для установленной PPPoE-сессии). И только эти кадры перенаправлять с eth0 на eth2.
2) По mac-адресам. MAC сервера провайдера известен. Только протокол работает следующим образом: при обнаружении PPPoE-сессии, первый посылаемый кадр является широковещательным (0xffffffffffff). Т.е. можно все broadcast`ы прокинуть с eth0 на eth2, и далее, зная mac PPPoE-сервера, прокидывать пакеты, подходящие под этот критерий также на модем.
Господа, как быть? У кого какие соображения?
Хочу сделать вот что: (см. рис. 4-го поста). ADSL модем в сети работает в режиме bridge (инет провайдер раздает по протоколу PPPoE). Нужно сделать таким образом, чтобы этот мост, подключенный к интерфейсу сервера eth2 обменивался только с subnet1 (eth0). Связь eth2 <-> eth1 запрещена.
До недавних пор смутно представлял как PPPoE работает, благо в RFC2516 все подробно расписано.
Насколько я понимаю, трафик, идущий с eth0 нужно неким образом "отбирать" по определенному критерию, критерию принадлежности к PPPoE сессии (т.е. он предназначается в eth2). C eth2 трафик можно смело "заворачивать" на eth0. Пока что видится 2 способа:
1) Извлекать содержимое поля ETHER_TYPE (2 байта) из заголовка кадра Ethernet. Оно может принимать только 2 значения (rfc2516): 0x8863 (для поиска PPPoE-сервера) и 0x8864 (для установленной PPPoE-сессии). И только эти кадры перенаправлять с eth0 на eth2.
2) По mac-адресам. MAC сервера провайдера известен. Только протокол работает следующим образом: при обнаружении PPPoE-сессии, первый посылаемый кадр является широковещательным (0xffffffffffff). Т.е. можно все broadcast`ы прокинуть с eth0 на eth2, и далее, зная mac PPPoE-сервера, прокидывать пакеты, подходящие под этот критерий также на модем.
Господа, как быть? У кого какие соображения?
Debian GNU/Linux 3.1 Sarge
Kernel 2.6.16
Kernel 2.6.16