Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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ШТ/мин.
Всё на свичах
Есть желание хоть как-то отгородить наш отдел.
Была идея поставить бридж, и поскольку от нас
тянется два кабеля к магистральному использовать
бондинг. Дальше правила рулить через 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 (мост с поддержкой фильтрации) - и наступает счастье, получается фильтрующий мост или "мостующий" брандмауэр
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 (мост с поддержкой фильтрации) - и наступает счастье, получается фильтрующий мост или "мостующий" брандмауэр
|
О-опс,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, нормально,а этот не хотит
ругань извини не записал
кусок 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, и им подобном решении от других производителей.
Тем самым резко сокращается кол-во паразитного трафика от других сетей, трафик от которых в вашем сегменте не нужен. |
Отлично!
Ещёб кто нибудь это сделал.
Извините допишу в ПН.
Последний раз редактировалось: 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 Заголовок сообщения: |
|
|
Поставил опыт на живых людях (на себе то есть) - "мостобондинг" собрался, правда, я использовал ядро 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 писал(а): | Поставил опыт на живых людях (на себе то есть) - "мостобондинг" собрался, правда, я использовал ядро 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.
|
Всё увы оказалось хуже
1.Смена свича ничего не дала. К тому же пакеты с самого фаервола уходят отлично.(Приходят конечно тоже )
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 секунды, шло пока не прирезал. |
|
Вернуться к началу |
|
 |
|