Сетевой мост, маршрутизация (iptables+bridge)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

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

-IRON-
Сообщения: 51
ОС: Suse Linux 10.3

Сетевой мост, маршрутизация

Сообщение -IRON- »

Доброго дня.
Администрирую домашнюю сеть на 3 компа. Сервер служит веб-сервером для локальной сети провайдера и раздачи инета. Локальные адреса провайдера 10.*.*.*, интернет через VPN. На сервере Debian. Домашние адреса 192.168.*.*
Также есть 2 клиента под виндами. Им сервер раздает локалку и инет след. образом (далее мой скрипт для настройки iptables):

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

$IPTABLES -t nat -A POSTROUTING -s 192.168.0.0/24 -o $LANCARD -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -s 192.168.0.0/24 -o $INTERNET -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -s 192.168.1.0/24 -o $LANCARD -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -s 192.168.1.0/24 -o $INTERNET -j MASQUERADE

eth0, eth2- клиентские интерфейсы
eth1 - локалка провайдера aka $LANCARD
ppp0 - интернет, aka $INTERNET.

Раздача ресурсов локалки и инета работает идеально.
Задача-обеспечить прямое соединение клиентских компьютеров, так чтобы доступны были виндовые шары, сетевые принтеры и проч.
Думал сделать мостом. Сам то мост поднимается успешно, но вопрос в таблесе и маршрутизации. При назначении мосту айпи адреса 192.168.1.3 маскардинг не работает, хотя по правилам должен бы.
$LANCARD и $INTERNET объединять с домашними интерфейсами не хочется.\

Также пытался сделать маршрутизацию между данными сетями. Что-то пока не выходит.

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

iptables -t nat -A POSTROUTING -s 192.168.0.2 -o eth0 -j MASQUERADE
route add -host 192.168.1.2 gw 192.168.1.1 dev eth0
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
From 10.171.208.43 icmp_seq=3 Destination Host Unreachable
From 10.171.208.43 icmp_seq=4 Destination Host Unreachable

уходит совершенно на другой шлюз (провайдера).

Вопрос выше:
Как сделать, что компьютеры могли видеть друг друга, в т.ч работать с шарами, сетевыми принтерами и проч.?
Спасибо сказали:
Аватара пользователя
Ariasp
Сообщения: 254
Статус: NixLander

Re: Сетевой мост, маршрутизация

Сообщение Ariasp »

-IRON- писал(а):
22.03.2009 17:09
eth0, eth2- клиентские интерфейсы

Это что - к каждой сетевой карте подключена одна клиентская тачка? Если так, то просто купите свич и поместите клиентские компы в одну подсеть.:D (это конечно не так интересно и занимательно, как превращать РС в двух-портовый свич + возиться потом на нём с маршрутами и маскированием, но это значительно проще и рациональнее).
Спасибо сказали:
FlySnake
Сообщения: 992
ОС: openSUSE

Re: Сетевой мост, маршрутизация

Сообщение FlySnake »

Непонятно откуда 2 подсети взялось 192.168.0.1/24 и 192.168.0.0/24
У Вас ведь мост 192.168.1.3 и клиентские машины, как я полагаю 192.168.1.1 и 2. Провайдерская локалка 10.* и ppp тут всё ясно, а в локалке зачем 2 подсети?
Загнать виндовые машины в одну подсеть с мостом на линуксовой тачки и маскарадить внешние (eth1 и ppp0) интерфейсы. По идеи так должно работать. По крайней мере я так в виртуалках эксперементировал, но с 1-м внешним интерфейсом и всё работало.
Спасибо сказали:
-IRON-
Сообщения: 51
ОС: Suse Linux 10.3

Re: Сетевой мост, маршрутизация

Сообщение -IRON- »

Это что - к каждой сетевой карте подключена одна клиентская тачка?

ога, именно так. Свич купить можно, но хотелось бы поковыряться самому и разобраться, хотя бы для опыта. Но с другой стороны понимаю что по большому счету это глупо. А сколько сейчас стоит свич, для общего развития? :)
В момент построения сети было доступно 5 сетевушек и ни одного свича :)

Непонятно откуда 2 подсети взялось 192.168.0.1/24 и 192.168.0.0/24

Ответ выше. Каждый сетевой интерфйес на один домашний комп. Вот оттуда и взялось. Повесить 2 интерфейса в одну подсеть не удалось.

Загнать виндовые машины в одну подсеть с мостом на линуксовой тачки

в том и дело, что они под мост загоняются нормально, но потом маскардинг на них не работает. Да и маршруты прописать не получается :(
Спасибо сказали:
FlySnake
Сообщения: 992
ОС: openSUSE

Re: Сетевой мост, маршрутизация

Сообщение FlySnake »

Так после объединения нескольких интерфейсов в мост адрес получается 1 на все сетевухи в этом мосту и все клиентские машины надо размещать именно в этой подсети, а иначе расширять подсеть на мосту что не есть логично. Сам мост может и работать, перекидывая пакеты как свитч, но дальше может не пойти. И маршруты так не получится ибо после создания моста становится 1 сетевой интерфейс на все карточки несмотря на ifconfig и соответственно маршрутизацию надо будет прикручивать к мосту, а не к eth0 и eth2. Вы же с помощь brctl объединяли интерфейсы eth0 и eth2 в мост?
Спасибо сказали:
-IRON-
Сообщения: 51
ОС: Suse Linux 10.3

Re: Сетевой мост, маршрутизация

Сообщение -IRON- »

Вы же с помощь brctl объединяли интерфейсы eth0 и eth2 в мост?

да.

То есть у нас получается нечто вроде:

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

brctl addbr bridge
brctl addif bridge eth0
brctl addif bridge eth2
ifconfig bridge 192.168.0.1 netmask 255.255.255.0 up

Затем назначаем клиентам адреса из пула 192.168.0.*

А затем проводим все махинации с маскардингом и роутами, вот так:

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

$IPTABLES -t nat -A POSTROUTING -s 192.168.0.1 -o $LANCARD -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -s 192.168.0.1 -o $INTERNET -j MASQUERADE


и добавляем роут вот такой:

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

route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1 dev bridge


Верно?
P.S: боюсь сейчас эксперименты ставить, сеть нужна
Спасибо сказали:
FlySnake
Сообщения: 992
ОС: openSUSE

Re: Сетевой мост, маршрутизация

Сообщение FlySnake »

Вроде почти да :)
Только рекомендуется перед добавлением интерфейса в мост назначить ему адрес 0.0.0.0.
У клиентов шлюзом по умолчанию прописать 192.168.0.1 т.е. сам мост и маскарадинг не только для этого адреса, а для всей подсети 192.168.0.0/24
И это, роут такой не нужен, т.е. не нужен шлюз 192.168.0.1, а просто route add -net 192.168.0.0 netmask 255.255.255.0 dev bridge

-IRON- писал(а):
23.03.2009 18:56
боюсь сейчас эксперименты ставить, сеть нужна
Если что от последствий этих эксперементов спасет перезагрузка :)
Спасибо сказали:
-IRON-
Сообщения: 51
ОС: Suse Linux 10.3

Re: Сетевой мост, маршрутизация

Сообщение -IRON- »

FlySnake, спасибо за помощь!
brctl addbr bridge
ifconfig eth0 0.0.0.0
ifconfig eth2 0.0.0.0
brctl addif bridge eth0
brctl addif bridge eth2
ifconfig bridge 192.168.0.1 netmask 255.255.255.0 up
route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1 dev bridge

А ларчик просто открывался :)
Спасибо сказали: