[bridge][bonding] Не создаются «вложенные» интерфейсы. [SOLVED]
Здравствуйте.
Вкратце опишу задачу: имеется несколько физических сетевых, к примеру, две: eth1 и eth2. Их надо объединить средствами bonding и создать канал с протоколом 802.3ad (может и другим, не суть важно). Поверх этого канала нужны несколько VLANs, некоторые из них надо засунуть в bridge, чтобы можно было отдать виртуальной машине.
Файл /etc/conf.d/net :
config_eth1="null" config_eth2="null" rc_need_bond0="net.eth1 net.eth2" slaves_bond0="eth1 eth2" config_bond0="null" mode_bond0="802.3ad" xmit_hash_policy_bond0="layer2" lacp_rate_bond0="fast" miimon_bond0="100" mtu_bond0="2369" mtu_eth1="2369" mtu_eth2="2369" txqueuelen_eth1="5000" txqueuelen_eth2="5000" vlans_bond0="2 20 21" vlan2_flags="reorder_hdr off gvrp on loose_binding on" vlan20_flags="reorder_hdr off gvrp on loose_binding on" vlan21_flags="reorder_hdr off gvrp on loose_binding on" config_bond0_2="172.16.0.1/29" config_bond0_20="null" config_bond0_21="null" rc_need_br2="net.bond0" bridge_br2="bond0.20" brctl_br2="setfd 1 sethello 2 stp on" config_br2="null"
Сетевые карты eth1 и eth2 одинаковые от Realtek, используют драйвер r8192.
Запуск интерфейсов разнесён по уровням:
Runlevel: boot net.bond0 Dynamic Runlevel: hotplugged net.eth0 net.eth1 net.eth2 Runlevel: default net.br2
При загрузке я получаю kernel panic с таким текстом:
BUG: unable to handle kernel NULL pointer dereference at (null) IP: [< (null)>] (null) …
Если я пробую в конфиге добавить строку bridge_add_bond0_20="br2"
вместо bridge_br2="bond0.20"
, то на этапе загрузки получаю
fs_1 kernel: [ 5109.712340] Call Trace: <IRQ> [<ffffffff8103cb8f>] warn_slowpath_common+0x80/0x98 … ---[ end trace 4afefdaed4665755 ]--- r8169 0000:03:00.0: eth2: link up r8169 0000:02:00.0: eth1: link up
, видимо, из-за того, что bonding не успевает подняться.
Если убрать из моей конфигурации один из шагов, к примеру, создание VLANов, создавая бридж на bond0 или создавая VLANы без бриджа, то работает нормально.
Ядро 2.6.39-gentoo-r1.
Описанное — баг или я что-то неправильно делаю?
- Для комментирования войдите или зарегистрируйтесь
Похоже, что баг. Дома, на
Похоже, что баг.
Дома, на Marvell Technology Group Ltd. 88E8056 , указанная желаемая конфигурация на 39 ядре взлетела как положено. Даже после перезагрузки. Соответственно, жду, когда придут сервера с нормальными сетевухами. Надеюсь, Интел не подведёт.
Реалтек же реально бажные сетевухи делает или драйвера для него не ок. Как минимум, через раз сетевые при загрузке просто не запускаются. Вообще. Приходится перезагружаться. Ввиду этого, я не удивляюсь тому, что в каких-то режимах наблюдается вышеописанное.
реалтек конечно не самая
реалтек конечно не самая крутая сетевуха, но все таки не должно так быть. Чем вызвана необходимость запуска сети в boot ? почему eth* в хотплаге - их выдергивают при работе сершака ?
версия ядра ?
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
slepnoga написал(а): реалтек
Не должно, а есть. Вот не знаю, почему так. Затем и задал здесь вопрос.
Потому что кое-какие службы, требующие сеть, запускаются ещё на этапе boot. Плюс, это исключает влияние всяких переходных режимов текущих интерфейсов на последующие интерфейсы. Например, при включении интерфейса bond0, должно пройти какое-то время, чтобы сетевые карты синхронизировались. Этот момент я отметил в самом первом сообщении. В логах ядра видно же.
Потому что в хотплаг их засовывает udev. А когда драйвер или железка глючит, то он их никуда не засовывает, потому что они не запускаются. К слову, на этих же компьютерах стоят старые 100Мбитные сетевые карты от 3com. Почему-то они себя так не ведут. Но я не расстраиваюсь, т.к. ковыряю тестовую конфигурацию. В работу эти риалтеки не пойдут.
А внимательней пару постов посмотреть? Многие вопросы уйдут.
Потому что кое-какие службы,
специально для таких любителей странного придуман файлик /etc/rc.conf
сорри за "сершак", но таки сетевые не хотплаг, и гадать потом за сотню километров, поднялась оно или нет весьма странно.
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Ну вот, сегодня приехало
Ну вот, сегодня приехало железо. Сервера от supermicro и дискретные сетевые карты от интел. Сперва, попробовал поставить такую сетевую на вышеописанные проблемные хосты. Получил те же самые ошибки. Соответственно, претензии к Realtek снимаются.
На новый сервер поставил гентушечку с абсолютно тем же ядром и конфигом (разве что, сменил модели сетевых карт и дисковой подсистемы в драйверах). И всё… заработало.
Ещё, в интернетах наткнулся на такое: http://www.spinics.net/lists/linux-net/msg16854.html — как раз мой случай, те же сообщения выскакивали. Однако, за столько времени не поправили? Или, может быть, на конкретном железе такие проблемы? Странно, в общем.
Самое главное, что на железе в продакшн такое не вылезло, а то был бы эпик фейл.