LINUX.ORG.RU
решено ФорумAdmin

организовать bridge без brctl

 ,


1

3

Задача: Есть раб машинка с CentOS 6.3 x64, две сетевые карты eth0 и eth1. К eth1 подключен ноут. Надо сделать бридж ноута в сеть, находящуюся за eth0. Но так, чтобы раб. станция имела два работающих интерфейса, и при соединении с ноутом, пакеты шли напрямую в eth1, а не через eth0 --->куда-то-там-дальше-по-свету ---> eth0 --->eth1.

Схема для наглядности:

Локальная сеть ---- |eth0 -раб. станция- eth1| ---ноут

Были мысли использовать ebtables, но так и не додумался назначить действие отправки пакета по интерфейсу. Потом понял, что это может iproute2, начал маркировать пакеты с маком источника на eth1 и назначения на eth0, и тут затык: какие правила добавлять в таблицы? Не работающий вариант:

ip rule add fwmark 0x2 dev eth0 table 101
ip rule add fwmark 0x3 dev eth1 table 101

Если нужен именно бридж (L2 уровень), то без bridge-utils никак. Ну разве что openvswitch.
Если же нужна просто «сетка» на ноуте, то настраивайте роутинг.
ebtables нужен для фильтрации траффика через бридж.

rand
()

Просто сделай бридж eth0-eth1 и повесь на него айпи адрес компа. Больше ничего не нужно. Пакеты будут идтить как надо.

ЗЫ: Если нужно, на интерфейсы в бридже тоже можно повесить адреса.

blind_oracle ★★★★★
()
Последнее исправление: blind_oracle (всего исправлений: 1)
Ответ на: комментарий от rand

насколько я понял, он может не только фильтровать, но делать SNAT и DNAT, только MAC-адресов. А ещё, там есть BROUTING. Интересный проект вообще, работает ещё ДО iptables.

leader32
() автор топика
Ответ на: комментарий от LonleyLockley

да, предполагается, что будут (даже должны быть) одинаковыми. DHCP-клиент ноута должен получать ip наравне с клиентом рабочей станции

leader32
() автор топика
Ответ на: комментарий от blind_oracle

на интерфейсы в бридже тоже можно повесить адреса

а что я смогу потом сделать с интерфейсом моста? Мне всегда казалось, что после соединения в мост двух интерфейсов, сервер пользоваться ими никак не может, только снифать или фильтровать.

Получается, если я повешу на eth0 адрес 10.0.0.1/24, притом что остальные узлы в сети находятся в данной подсети, то он будет использоваться системой, и eth0 становится, кроме функции моста, маршрутизируемым интерфейсом?

leader32
() автор топика
Ответ на: комментарий от leader32

Сейчас проверил - нет, не работает так.

Адрес вешается, с самого сервера с мостом он виден, снаружи - нет.

Но что-то мне кажется, что раньше так работало, на 60% уверен. Возможно, что-то подкрутили в ядре, надо посмотреть.

На самом деле непонятно, чего ты хочешь добиться. Просто сбриджевав интерфейсы ты получишь доступ ноута в локалку, этого мало? А на бридж интерфейс уже вешай айпи адреса, всё как обычно. За интерфейсом eth1 всё равно ничего кроме ноута нет, так?

blind_oracle ★★★★★
()
Ответ на: комментарий от leader32

IP-адрес надо вешать на интерфейс бриджа, а не на физический.

rand
()

ЯННП. Зачем ограничение на brctl?

Запихать интерфейсы в бридж, на бридж повесить адрес eth0. Все.

vasily_pupkin ★★★★★
()
Ответ на: комментарий от blind_oracle

На самом деле непонятно, чего ты хочешь добиться

Всё очень просто: идет сетевой кабель от свича. Мне надо ноут подрубить к локалке, а для этого нужен второй сетевой кабель от свича. Второго сетевого кабеля нет в ТЗ (портов не осталось, кабель кончился, патчкорды все заняты).

Зато есть одна сетевая карта, и свободный слот в машинке. Нужно, чтобы раб. станция работала, как и раньше, только ещё гоняла трафик ноута по eth0-eth1, не задумываясь ни о чем

Просто сбриджевав интерфейсы ты получишь доступ ноута в локалку, этого мало? А на бридж интерфейс уже вешай айпи адреса, всё как обычно.

ОК, завтра попробую так

За интерфейсом eth1 всё равно ничего кроме ноута нет, так?

да

leader32
() автор топика
Ответ на: комментарий от leader32

Ну, в таком случае, бридж с айпи адресом из сети за eth0 спасёт отца русской демократии, всё будет работать как надо. Рекомендации лучших собаководов :)

blind_oracle ★★★★★
()
Ответ на: комментарий от blind_oracle

Ай да молодца! В яблочко!

Success story:

/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"
HWADDR=<YourMAC_for_eth0>
BOOTPROTO="static"
IPADDR="0.0.0.0"
ONBOOT=yes
USERCONTROL="no"
BRIDGE="br0"

/etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE="eth1"
HWADDR=<YourMAC_for_eth1>
BOOTPROTO="static"
IPADDR="0.0.0.0"
ONBOOT=yes
USERCONTROL="no"
BRIDGE="br0"

/etc/sysconfig/network-scripts/ifcfg-br0

DEVICE="br0"
TYPE="Bridge"
IPV6INIT="no"
IPV6_AUTOCONF="no"
BOOTPROTO="dhcp"
STARTMODE="auto"

При статическом IP настройки аналогичные для обычных интерфейсов

leader32
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.