Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Как связать bridge и bonding ?

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Сети
Предыдущая тема :: Следующая тема  
Автор Сообщение
Andrew Grekhov



Зарегистрирован: 29.06.2005
Сообщения: 200

СообщениеДобавлено: Ср Апр 19 2006 15:51    Заголовок сообщения: Как связать bridge и bonding ? Ответить с цитатой

Имеем :
Ось OWL-2.0 (ядро 2.4.32)
Для поддержки бриджа и бондинга ядро пришлось пересобрать.

Комп с тремя сетевушками.
хочу сделать :
eth0 и eth1 оъединить в бондинг bond0 (mode6)
и с него сделать брижд на eth2.

после конфигурации бондинга настраиваю бридж --- ругается.
brctl addbr grekhov3
brctl addif grekhov3 eth2
brctl addbr grekhov3 bond0 --- вот тут то и ругается.

Если сделать отдельно бридж только между реальными
сетевушками, то всё отлично работает.

Как сделать чтобы брижд сидел на bond0 и eth2 ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Ср Апр 19 2006 16:24    Заголовок сообщения: Ответить с цитатой

Объясните мне тупому на кой хрен вы делаете 3-х портовый хаб на базе компа? Поставьте хаб или сделайте на свиче VLAN из 3-х портов и получите счастье.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Andrew Grekhov



Зарегистрирован: 29.06.2005
Сообщения: 200

СообщениеДобавлено: Чт Апр 20 2006 05:38    Заголовок сообщения: Ответить с цитатой

[quote]
Объясните мне тупому на кой хрен вы делаете 3-х портовый хаб на базе компа?
[/quote]

Есть здоровая (назовём корпоративная) сеть
где зарегистрировано где-то 1600 компов.
Левых пакетов(для нас конкретно)(в стокойное время) в ней 1000ШТ/мин.
Всё на свичах Sad
Есть желание хоть как-то отгородить наш отдел.

Была идея поставить бридж, и поскольку от нас
тянется два кабеля к магистральному использовать
бондинг. Дальше правила рулить через IPTABLES.

Я понимаю, что правильно переназначить ip'шники,
которые разбросаны по всему адресному пространству.
Поставить свой dhcp,dns.
На граничном компе прописать рунинг на нашу сетку и
всё ограничевать, через iptables.
Но в ближайшее время год-два неполучиться.

Насчет VLAN:
пока неразобрался что это такое и как это реализовать.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Чт Апр 20 2006 08:36    Заголовок сообщения: Ответить с цитатой

Расскажите-ка по-подробнее и как это вы будете фильтровать пакеты через iptables (третий уровень OSI) если у вас комп будет гонять пакеты в режиме моста (второй уровень OSI).

Не получится у вас ничего. Не тем путем идете. Пиннайте администратора, чтобы оптимизировал сеть.

Если уж так хочется, то сделайте так:
1. 2 канала в общую сеть. Это бондинг.
2. Внутри вашей сети своя адресация.
3. Для того, чтобы ходить наружу этот комп должен выполнять трансляцию адресов и ваш любимый iptables тут как раз в помощь.

Достоинства: Вы отгораживаетесь от проблем с магистралью и разгружаете свой сегмент сети.

Недостатки: Некоторое ПО может не работать через NAT.

Кардинальный подход:
Оптимизация сети. Выделение четких границ где магистраль, где сети отделов, где рабочие станции. Каждый отдел в своем VLAN-е. Если отдел очень большой, то несколько VLAN-ов.
Все VLAN-ы терминируются на высокопроизводительных свичах класса LAYER-3. Типа Catalyst 4500, 3COM 5500-GL, и им подобном решении от других производителей.

Тем самым резко сокращается кол-во паразитного трафика от других сетей, трафик от которых в вашем сегменте не нужен.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
C37



Зарегистрирован: 09.03.2005
Сообщения: 311

СообщениеДобавлено: Пт Апр 21 2006 14:35    Заголовок сообщения: Ответить с цитатой

and3008 писал(а):
Расскажите-ка по-подробнее и как это вы будете фильтровать пакеты через iptables (третий уровень OSI) если у вас комп будет гонять пакеты в режиме моста (второй уровень OSI).


Вот это-то как раз не составляет проблемы: при сборке ядра надо задать параметр CONFIG_BRIDGE_NF=y (мост с поддержкой фильтрации) - и наступает счастье, получается фильтрующий мост или "мостующий" брандмауэр Rolling Eyes


Andrew Grekhov писал(а):
brctl addbr grekhov3 bond0 --- вот тут-то и ругается

А как оно ругается?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Andrew Grekhov



Зарегистрирован: 29.06.2005
Сообщения: 200

СообщениеДобавлено: Пт Апр 21 2006 15:44    Заголовок сообщения: Ответить с цитатой

C37 писал(а):
and3008 писал(а):
Расскажите-ка по-подробнее и как это вы будете фильтровать пакеты через iptables (третий уровень OSI) если у вас комп будет гонять пакеты в режиме моста (второй уровень OSI).


Вот это-то как раз не составляет проблемы: при сборке ядра надо задать параметр CONFIG_BRIDGE_NF=y (мост с поддержкой фильтрации) - и наступает счастье, получается фильтрующий мост или "мостующий" брандмауэр Rolling Eyes


О-опс,CONFIG_BRIDGE_NF этого я как раз и
не нашел, щас специально смотрел.
Возможно это проблема в том, что
использую Owl.com там ядро 2.4.32 с ихнем пачем.
Конфиг ядра выложить надо?

Цитата:

Andrew Grekhov писал(а):
brctl addbr grekhov3 bond0 --- вот тут-то и ругается

А как оно ругается?


Код:

brctl addbr grekhov3
brctl addif eth2
brctl addif bond0
[color=red] br_add_interface: Cannot assign requested address[/color]

Добавлю strace -ff
неправильный bond0
Код:

execve("/usr/sbin/brctl", ["brctl", "addif", "grekhov3", "bond0"], [/* 19 vars */]) = 0
brk(0)                                  = 0x804c890
brk(0x804d000)                          = 0x804d000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=10832, ...}) = 0
old_mmap(NULL, 10832, PROT_READ, MAP_PRIVATE, 3, 0) = 0x127000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0PU\1\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=9955963, ...}) = 0
old_mmap(NULL, 1159316, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x12a000
old_mmap(0x23f000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x115000) = 0x23f000
old_mmap(0x243000, 8340, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x243000
close(3)                                = 0
mprotect(0x23f000, 8192, PROT_READ)     = 0
mprotect(0x125000, 4096, PROT_READ)     = 0
munmap(0x127000, 10832)                 = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3
ioctl(3, SIOCGIFBR, 0xbffff9e0)         = 1
ioctl(3, SIOCGIFBR, 0xbffff940)         = 1
brk(0)                                  = 0x804d000
brk(0x806e000)                          = 0x806e000
socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = -1 EAFNOSUPPORT (Address family not supported by protocol)
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 4
ioctl(4, SIOCGIFNAME, {ifr_index=12, ifr_name="grekhov3"}) = 0
close(4)                                = 0
ioctl(3, SIOCDEVPRIVATE, 0xbffff890)    = 0
ioctl(3, SIOCDEVPRIVATE, 0xbffff4d0)    = 0
ioctl(3, SIOCDEVPRIVATE, 0xbffff470)    = 0 #здесь появилась эта строчка после неё продолжение на eth2
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 4
ioctl(4, SIOCGIFINDEX, {ifr_name="bond0", ifr_index=5}) = 0
close(4)                                = 0
ioctl(3, SIOCDEVPRIVATE, 0xbffff990)    = -1 EADDRNOTAVAIL (Cannot assign requested address)
dup(2)                                  = 4
fcntl64(4, F_GETFL)                     = 0x2 (flags O_RDWR)
fstat64(4, {st_mode=S_IFCHR|0620, st_rdev=makedev(4, 1), ...}) = 0
ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x127000
_llseek(4, 0, 0xbffff8b8, SEEK_CUR)     = -1 ESPIPE (Illegal seek)
write(4, "br_add_interface: Cannot assign "..., 50) = 50
close(4)                                = 0
munmap(0x127000, 4096)                  = 0
exit_group(0)                           = ?

eth2
Код:
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 4
ioctl(4, SIOCGIFINDEX, {ifr_name="eth2", ifr_index=4}) = 0
close(4)                                = 0
ioctl(3, SIOCDEVPRIVATE, 0xbffff990)    = 0
exit_group(0)

т.е. до выделеной строчки одинаково
дальше отличия.

Дальше вопрос and3008:
не смог поднять /sbin/inmod bonding mode=6
miimon=100
2,3,5, нормально,а этот не хотит
ругань извини не записал Sad
кусок dmesg:
Код:
eepro100.c:v1.09j-t 9/29/99 Donald Becker http://www.scyld.com/network/eepro100.html
eepro100.c: $Revision: 1.36 $ 2000/11/17 Modified by Andrey V. Savochkin <saw@saw.sw.com.sg> and others
PCI: Found IRQ 12 for device 00:0a.0
divert: allocating divert_blk for eth0
eth0: Intel Corp. 82557/8/9 [Ethernet Pro 100], XX:XX:XX:XX:XX:XX, IRQ 12.



Последний раз редактировалось: Andrew Grekhov (Вт Май 16 2006 07:40), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Andrew Grekhov



Зарегистрирован: 29.06.2005
Сообщения: 200

СообщениеДобавлено: Пт Апр 21 2006 15:53    Заголовок сообщения: Ответить с цитатой

and3008 писал(а):

Пиннайте администратора, чтобы оптимизировал сеть.

Не всё так просто.
Админ другой работой загружен,
вот я и решил (с его ведома правда)
помоч немного.
and3008 писал(а):

Если уж так хочется, то сделайте так:
1. 2 канала в общую сеть. Это бондинг.

это понятно.
Цитата:

2. Внутри вашей сети своя адресация.

Я же писал не сейчас не получится.
Цитата:

3. Для того, чтобы ходить наружу этот комп должен выполнять трансляцию адресов и ваш любимый iptables тут как раз в помощь.

Достоинства: Вы отгораживаетесь от проблем с магистралью и разгружаете свой сегмент сети.

Недостатки: Некоторое ПО может не работать через NAT.

Нет ната не будет, так мы вообще всю сетку положим.
Максимум для инета сделаем.
Хотя... зачем?


Цитата:

Кардинальный подход:
Оптимизация сети. Выделение четких границ где магистраль, где сети отделов, где рабочие станции. Каждый отдел в своем VLAN-е. Если отдел очень большой, то несколько VLAN-ов.
Все VLAN-ы терминируются на высокопроизводительных свичах класса LAYER-3. Типа Catalyst 4500, 3COM 5500-GL, и им подобном решении от других производителей.

Тем самым резко сокращается кол-во паразитного трафика от других сетей, трафик от которых в вашем сегменте не нужен.

Отлично!
Ещёб кто нибудь это сделал.Sad
Извините допишу в ПН.


Последний раз редактировалось: Andrew Grekhov (Вт Май 16 2006 07:36), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Пт Апр 21 2006 18:43    Заголовок сообщения: Ответить с цитатой

Найдите файл bonding.txt и внимательно с ним ознакомьтесь.

Режим mode=6 требует, чтобы драйвер сетевой платы позволял изменять MAC-адрес сетевухи. Драйвер eepro100 этого не умеет.
А вот e100 - умеет. Делайте выводы.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
C37



Зарегистрирован: 09.03.2005
Сообщения: 311

СообщениеДобавлено: Пт Апр 21 2006 18:50    Заголовок сообщения: Ответить с цитатой

Поставил опыт на живых людях Laughing (на себе то есть) - "мостобондинг" собрался, правда, я использовал ядро 2.6.16, но в конфигурации принципиальных отличий от 2.4.32, по-моему, нет. По поводу режимов (mode) - надо читать /src/linux/Documentation/networking/bonding.txt, страшно полезный документ.
Порядок действий был примено таков:
Код:
modprobe bonding mode=1 miimon=100
ifconfig bond0 192.168.1.125
ifenslave bond0 eth0 eth1
ifconfig bond0 0.0.0.0
ifconfig eth2 0.0.0.0
brctl addbr br0
brctl addif br0 eth2
brctl addif br0 bond0
ifconfig br0 192.168.1.125 netmask 255.255.255.0 broadcast 192.168.1.255

На первый взгляд, это работает, но я не проверял работоспособность получившегося чуда далее простого доступа к сетям по обе стороны моста.

P.S. На сайте журнала "Системный администратор" выложена статья из старых номеров про фильтрующие мосты на Linux, поищите. Правда, там ничего нет про bonding.

P.P.S. Не могу понять, почему NAT должен "положить" сеть. Обычно он помогает навести порядок в отдельно взятой части сети, никак не затрагивая конфигурацию остальных.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Andrew Grekhov



Зарегистрирован: 29.06.2005
Сообщения: 200

СообщениеДобавлено: Ср Май 03 2006 15:54    Заголовок сообщения: Ответить с цитатой

Доброго времи суток!
Прошу прощения что так долго...
C37 писал(а):
Поставил опыт на живых людях Laughing (на себе то есть) - "мостобондинг" собрался, правда, я использовал ядро 2.6.16, но в конфигурации принципиальных отличий от 2.4.32, по-моему, нет. По поводу режимов (mode) - надо читать /src/linux/Documentation/networking/bonding.txt, страшно полезный документ.

Я сменил комп с ОС,
таким образом эксперементировал на ядре
2.6.9 (CentOS 4.1)
Цитата:

Порядок действий был примено таков:
Код:
modprobe bonding mode=1 miimon=100
ifconfig bond0 192.168.1.125
ifenslave bond0 eth0 eth1
ifconfig bond0 0.0.0.0
[/quote]
Вот тут то интересное и наступает!
Интерфейсы eth0 и eth1 статус не меняют!
Даже если им напомнить что они SLAVE,
а поднять и SLAVE'ом в промиске и сверху bond0
неполучается :(
[quote]
ifconfig eth2 0.0.0.0
brctl addbr br0
brctl addif br0 eth2
brctl addif br0 bond0
ifconfig br0 192.168.1.125 netmask 255.255.255.0 broadcast 192.168.1.255


т.к. eth0 и eth1 имеют IP адреса соответственно
они отражаются в таблице маршрутизации.
Пришлось их от туда удалить
Код:

route del -net 192.168.1.125/24 dev eth0
route del -net 192.168.1.125/24 dev eth1

Цитата:

На первый взгляд, это работает, но я не проверял работоспособность получившегося чуда далее простого доступа к сетям по обе стороны моста.

Я тоже, затра проверю и напишу.
Цитата:

P.S. На сайте журнала "Системный администратор" выложена статья из старых номеров про фильтрующие мосты на Linux, поищите. Правда, там ничего нет про bonding.

По ней и делал с самого начала.
Про bonding брал с opennet.ru и конечно
/usr/src/linux/Doc../bonding.txt
Правда у меня с английским хреновато.
P.S. Извените если что непонятно написал.


Последний раз редактировалось: Andrew Grekhov (Вт Май 16 2006 07:44), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
C37



Зарегистрирован: 09.03.2005
Сообщения: 311

СообщениеДобавлено: Ср Май 03 2006 17:05    Заголовок сообщения: Ответить с цитатой

1. Команда
Код:
route del -net 192.168.1.125/24 dev eth1

не удаляет интерфейс. Удаляется только маршрут через него.

2. Для создания bond0 нужно использовать ifenslave, а не ifconfig, причем лучше всего это делать сразу после загрузки драйверов до конфигурации соответствующих интерфейсов. Т.е примерно так:
Код:
modprobe <драйвер сетевой карты>
modprobe bonding mode=1 miimon=100
ifconfig bond0 192.168.1.125
ifenslave bond0 eth0 eth1
ifconfig bond0 0.0.0.0
ifconfig eth2 0.0.0.0
brctl addbr br0
brctl addif br0 eth2
brctl addif br0 bond0
ifconfig br0 192.168.1.125 netmask 255.255.255.0 broadcast 192.168.1.255

Суть в том, что bond0 должен получить IP адрес до того, как "поработит" eth0 и eth1, мало того, без адреса он вообще не соберется.

3. ifconfig <интерфейс> 0.0.0.0 как раз-таки включает режим промискуитета для данного интерфейса. Как мне подсказывает логика, этот режим должен быть включен не для eth0 и eth1 в отдельности, а для bond0 целиком.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Andrew Grekhov



Зарегистрирован: 29.06.2005
Сообщения: 200

СообщениеДобавлено: Вт Май 16 2006 08:36    Заголовок сообщения: Ответить с цитатой

Прошу огромного прощения за очередную задержку.

Спасибо за помощь и порция очередных проблем.
C37 писал(а):

2. Для создания bond0 нужно использовать ifenslave, а не ifconfig, причем лучше всего это делать сразу после загрузки драйверов до конфигурации соответствующих интерфейсов. Т.е примерно так:
Код:
modprobe <драйвер сетевой карты>
modprobe bonding mode=1 miimon=100
ifconfig bond0 192.168.1.125
ifenslave bond0 eth0 eth1
ifconfig bond0 0.0.0.0
ifconfig eth2 0.0.0.0
brctl addbr br0
brctl addif br0 eth2
brctl addif br0 bond0
ifconfig br0 192.168.1.125 netmask 255.255.255.0 broadcast 192.168.1.255

Суть в том, что bond0 должен получить IP адрес до того, как "поработит" eth0 и eth1, мало того, без адреса он вообще не соберется.

В предыдущем сообщении имел ввиду,
что после смены IP'адреса для bond0 на 0.0.0.0 статус его SLAVE интерфейсов не изменился(смотрел ifconfig'ом и ip).
Цитата:

3. ifconfig <интерфейс> 0.0.0.0 как раз-таки включает режим промискуитета для данного интерфейса. Как мне подсказывает логика, этот режим должен быть включен не для eth0 и eth1 в отдельности, а для bond0 целиком.

Ради эксперемента дал ip'шники интерфейсам bond0 и eth2.
Код:

ifconfig bond0 192.168.1.125 netmask...
ifconfig eth2 192.168.1.125 netmask...

На работе бриджа это почему-то никак не отразилось.

Теперь главное.
Сейчас компы подключены так.
Код:

/----------------\   /-------firewall-------\
| local_test eth0|---|eth2 --br0--bond0 -eth1 --свич - "малый инет"
\----------------/   \                  \eth2 /

В этой конфигурации:
я могу отправить любой пакет с Firewall'a и принять;
Но вот со связью local_test с
"малым инетом" возникают проблемы
Не может получить МАС-адрес того компа с которым связывается,
спустя некоторое время ARP-запись появляется,где то через минуты 3,
после чего можно слать туда пакеты. Минут через 5 ARP-таблица обнуляется и всё по новой.
Если же выдёргиваю один из шнурков
бондинга (любой), то всё отлично работает.
Режим бондинга менял с 6 на 2
ничего не поменялось.

И ещё вопросы: ламерский
как запретить прохождение IPX пакетов в данной конфигурации ?

как запретить прохождение STP от циски,
она его шлёт на Ethernet уровне,
как я понял используя спецмас 01:80:C2:00:00:00,
запретить по маку или есть более правильный способ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
C37



Зарегистрирован: 09.03.2005
Сообщения: 311

СообщениеДобавлено: Вт Май 16 2006 15:53    Заголовок сообщения: Ответить с цитатой

Andrew Grekhov писал(а):
после смены IP'адреса для bond0 на 0.0.0.0 статус его SLAVE интерфейсов не изменился(смотрел ifconfig'ом и ip).

Единственное, что могу сказать, что у меня ifconfig на работающем мосту не пишет, что его интерфейсы находятся в "промискуитетном" режиме.

Andrew Grekhov писал(а):
Ради эксперемента дал ip'шники интерфейсам bond0 и eth2.
На работе бриджа это почему-то никак не отразилось.

И не должно было. Если мост должен иметь адрес, то присваивать его надо интерфейсу моста, т.е. br0.

Andrew Grekhov писал(а):
Сейчас компы подключены так.
Код:

/----------------\   /-------firewall-------\
| local_test eth0|---|eth2 --br0--bond0 -eth1 --свич - "малый инет"
\----------------/   \                  \eth2 /

В этой конфигурации:
я могу отправить любой пакет с Firewall'a и принять; Но вот со связью local_test с "малым инетом" возникают проблемы Не может получить МАС-адрес того компа с которым связывается, спустя некоторое время ARP-запись появляется,где то через минуты 3, после чего можно слать туда пакеты. Минут через 5 ARP-таблица обнуляется и всё по новой.
Если же выдёргиваю один из шнурков бондинга (любой), то всё отлично работает. Режим бондинга менял с 6 на 2 ничего не поменялось.


Тут ничего конкретного сказать не могу, поскольку нет опыта с bonding кроме того давнего эксперимента на живых людях. Беглый просмотр документации подсказывает, что будет ли тот или иной режим работать как надо, зависит еще и от того, что умеет hub/switch, в который воткнуты провода от bonding.

Andrew Grekhov писал(а):
как запретить прохождение IPX пакетов в данной конфигурации ?

Собрать поддержку ipx в netfilter и создать правило вроде iptables -A FORWARD -p ipx -j DROP (или REJECT, в зависимости от того, что нужно)

Andrew Grekhov писал(а):
как запретить прохождение STP от циски, она его шлёт на Ethernet уровне, как я понял используя спецмас 01:80:C2:00:00:00, запретить по маку или есть более правильный способ?

А зачем его запрещать? Если в сети несколько мостов, они должны договариваться, как им работать. Можно отучить мост от общения с "коллегами" командой brctl stp br0 off

Впрочем, можно еще посмотреть в сторону ebtables - это что-то вроде iptables, но специально для случая моста.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Andrew Grekhov



Зарегистрирован: 29.06.2005
Сообщения: 200

СообщениеДобавлено: Чт Май 18 2006 15:24    Заголовок сообщения: Ответить с цитатой

Доброго времени суток!

C37 писал(а):
Andrew Grekhov писал(а):
после смены IP'адреса для bond0 на 0.0.0.0 статус его SLAVE интерфейсов не изменился(смотрел ifconfig'ом и ip).

Единственное, что могу сказать, что у меня ifconfig на работающем мосту не пишет, что его интерфейсы находятся в "промискуитетном" режиме.

Я тоже не совсем понял как увидеть
промиск, разве что dmesg в момент перехода пишет.

Цитата:

Andrew Grekhov писал(а):
Сейчас компы подключены так.
Код:

/----------------\   /-------firewall-------\
| local_test eth0|---|eth2 --br0--bond0 -eth1 --свич - "малый инет"
\----------------/   \                \eth0 /

В этой конфигурации:
я могу отправить любой пакет с Firewall'a и принять; Но вот со связью local_test с "малым инетом" возникают проблемы Не может получить МАС-адрес того компа с которым связывается, спустя некоторое время ARP-запись появляется,где то через минуты 3, после чего можно слать туда пакеты. Минут через 5 ARP-таблица обнуляется и всё по новой.
Если же выдёргиваю один из шнурков бондинга (любой), то всё отлично работает. Режим бондинга менял с 6 на 2 ничего не поменялось.


Тут ничего конкретного сказать не могу, поскольку нет опыта с bonding кроме того давнего эксперимента на живых людях. Беглый просмотр документации подсказывает, что будет ли тот или иной режим работать как надо, зависит еще и от того, что умеет hub/switch, в который воткнуты провода от bonding.


Всё увы оказалось хуже Sad
1.Смена свича ничего не дала. К тому же пакеты с самого фаервола уходят отлично.(Приходят конечно тоже Smile )
2.На eth2 ВСЕ пакеты продублированы
что приходят с bond0. Такое ошущение что бондинга просто нет, только бридж,
но тем неменее "короткого замыкания" как у бриджа без STP не происходит.

C37 писал(а):

Andrew Grekhov писал(а):
как запретить прохождение IPX пакетов в данной конфигурации ?

Собрать поддержку ipx в netfilter

Если не сложно (и есть желание) раскажи по подробнее.
Цитата:

и создать правило вроде iptables -A FORWARD -p ipx -j DROP

Огромное спасибо за ebtables !!!
Не понятно почему его нет в моём дистрибутиве.
REM:Основное неприятное отличие от iptables нельзя читать текстовым редактором /etc/sysconfig/ebtales.*

Оказалось то что надо
Код:

ebtables -A FORWARD -p ipx -j DROP

Правда IPX'ные бродкасты (dest 000.fff) пролазят,но их не много так
что можно забыть.
C37 писал(а):

Andrew Grekhov писал(а):
как запретить прохождение STP от циски, она его шлёт на Ethernet уровне, как я понял используя спецмас 01:80:C2:00:00:00, запретить по маку или есть более правильный способ?

А зачем его запрещать? Если в сети несколько мостов, они должны договариваться, как им работать. Можно отучить мост от общения с "коллегами" командой brctl stp br0 off

STP на бридже я и не поднимал.
А запрешать? Так 20 пакетов/мин лезет которые просто некому не нужны.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
C37



Зарегистрирован: 09.03.2005
Сообщения: 311

СообщениеДобавлено: Пт Май 19 2006 14:34    Заголовок сообщения: Ответить с цитатой

1. По поводу IPX в netfilter я напутал. Нет там его. Google тоже ничего полезного не нашел про IPX firewall. Только следы того, что на него были желающие, модуль написать легко, но никто за это не взялся...

2. Как я понял, ifconfig показывает "неразборчивый" (promiscous) режим только для сконфигурированного интерфейса, т.е. для такого, у которого есть хотя бы IP адрес. У физических интерфейсов, "взятых" в мост или bonding IP адресов нет.

3. Если мост работает несмотря на выдергивание любого кабеля из bonding-а, значит bonding тоже работает (если сначала был собран bonding, а уже на нем мост). Проблема может быть в драйверах сетевых карт... Видимо, они не умеют чего-то важного (см. вывод dmesg). Кстати, можно создать правило, которое будет записывать в журнал пакеты, проходящие насквозь. Там будет нечто вроде IN=br0 OUT=eth0 PHYSIN=eth1 SRC=192.168.1.125 DST=62.118.250.7, но с намеком на bonding. В этом примере суть в том, что пакет вошел через мост (br0), куда он попал по кабелю, воткнутому в физический eth1, и ушел через самостоятельный eth0.

4. При создании моста STP включается автоматически, отключать его стоит только тогда, когда в сети только один мост или есть гарантия, что в ней нет петель... Судя по наличию BPDU, в сети есть минимум еще один мост.

5. С Cisco дела никогда не имел, но, может быть, есть возможность ограничить ее активность, т.е. уменьшить количество BPDU до, скажем 5 в минуту?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Andrew Grekhov



Зарегистрирован: 29.06.2005
Сообщения: 200

СообщениеДобавлено: Ср Июн 07 2006 08:54    Заголовок сообщения: Ответить с цитатой

Доброго времени суток!
Прошу прощения за задержку,
переделывал тестовый стенд.
C37 писал(а):

3. Если мост работает несмотря на выдергивание любого кабеля из bonding-а, значит bonding тоже работает (если сначала был собран bonding, а уже на нем мост).

Так и сделано. Но бондинг правильно
отрабатывает (при двух воткнутых шнурках) при отправке пакетов
с самого firewall'a т.е.
цепочки INPUT,OUTPUT. А при пересылке (FORWARD) дублирует
Код:

[local_test] ping -c1 any_host.ru
eth2(к local_test):
12:14:08.428395 arp who-has any_host.ru tell IP_local_test
bond0(к инету):
12:17:57.911420 arp reply any_host.ru is-at 00:a9:40:0f:fe:c3
br0:
12:24:00.566575 arp who-has any_host.ru tell IP_local_test
12:24:00.566666 arp who-has any_host.ru tell IP_local_test
12:17:57.911420 arp reply any_host.ru is-at 00:a9:40:0f:fe:c3

т.е. запрос дублируется,ответ сам по себе приходит, но не пролазит.
any_host.ru --- комп в локальной сетке.
также в логах регулярно(при двух кабелях) появляется сообщение:
Код:

bond0: received packet with own address as source address

При выдернутом любом шнурке, всё работает как часы.
C37 писал(а):

Проблема может быть в драйверах сетевых карт... Видимо, они не умеют чего-то важного (см. вывод dmesg).

Да вроде все нормально драйвера e100,e1000
cat /proc/net/bonding/bond0
Код:

Bonding Mode: load balancing (xor)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: XX:XX:XX:XX:XX:XX

Slave Interface: eth0
MII Status: down
Link Failure Count: 3
Permanent HW addr: YY:YY:YY:YY:YY:YY

Могу переключить режим бондинга с 2 на 6 , но это ничего не изменит.
C37 писал(а):

Кстати, можно создать правило, которое будет записывать в журнал пакеты, проходящие насквозь. Там будет нечто вроде IN=br0 OUT=eth0 PHYSIN=eth1 SRC=192.168.1.125 DST=62.118.250.7, но с намеком на bonding. В этом примере суть в том, что пакет вошел через мост (br0), куда он попал по кабелю, воткнутому в физический eth1, и ушел через самостоятельный eth0.

См.выше я сделал, то что ты имел ввиду ?
C37 писал(а):

4. При создании моста STP включается автоматически,

Наверно зависит от дистрибутива.

brctl show
Код:

bridge name     bridge id               STP enabled     interfaces
br0                8000.00304875c3ab       no              bond0
                                                        eth2

Как видиш был отключен.
C37 писал(а):

отключать его стоит только тогда, когда в сети только один мост или есть гарантия, что в ней нет петель... Судя по наличию BPDU, в сети есть минимум еще один мост.

Да как я понял все (жуть просто) наши циски работаю в режиме моста.
Интересно я почему то, видел BPDU только с одним исходным маком.
Что STP от других через мост для меня не пролазит?
Цитата:

5. С Cisco дела никогда не имел, но, может быть, есть возможность ограничить ее активность, т.е. уменьшить количество BPDU до, скажем 5 в минуту?

Уменьшить наверняка возможно, только прав нет. BPDU шло стабильно 1 пакет в 2 секунды, шло пока не прирезал.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Сети Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...