Сетевой трафик не выходит из транка

8

Я готовлю некоторые новые серверы виртуализации, и часть этого состоит в том, чтобы подключить к ним несколько каналов с более высокой пропускной способностью. Конечная цель состоит в том, чтобы связать 4 порта GigE в одну магистраль, несущую маркированный трафик 802.1q. Я могу зайти так далеко, но столкнулся со странной проблемой. Но сначала диаграмма.

----------       ----------  1GbE trunks 
|        | 10GbE |        | ------------- --------
|  SW1   |-------|   SW2  | ------------- | VM1  |
|        |       |        | ------------- --------
----------       ----------
     |                |  1GbE  -----------
     | 1GbE           |--------| client2 |
     |                         -----------
----------
|        | 1GbE -----------
|  SW3   |------| client1 |
|        |      -----------
----------

Все коммутаторы являются коммутаторами HP ProCurve 2910al и не сложены. Client2 на диаграмме выше находится в той же VLAN, что и VM1. Клиент1 находится в другой VLAN. Для машины с виртуальной машиной (CentOS 6) iptables и SELinux были отключены.

Моя проблема заключается в том, что при использовании транкинга двусторонний сетевой трафик невозможен при общении с любым клиентским компьютером. TCPDUMP показывает, что они получают эхо-запросы и отправляют пакеты ECHO REPLY, но хост VM их не видит. В то же время, если я пытаюсь пропинговать виртуальную машину с клиентского компьютера, это также не работает. Тот факт, что я не могу пропинговать client2, который находится в той же подсети, предполагает, что что-то не так в сетевом уровне.

Странно, но с хоста VM я могу пинговать IP-адреса шлюза на любом из коммутаторов. Если я использую один интерфейс, все работает отлично как с тегами VLAN, так и без них. Если я просто привязываю один интерфейс и включаю теги VLAN на этом интерфейсе, я могу пойти куда угодно. Построить багажник, и я ограничен коммутационной фабрикой.

Тип ствола не имеет значения. Прямо сейчас они настроены с транками режима 0 (balance-rr), хотя использование LACP / 802.1qa ведет себя так же.

vlan 70 
   name "Virtualization Subnet" 
   untagged 35,36,38,40 
   tagged Trk1-Trk2,Trk5,Trk8 
   no ip address 
   jumbo 
   exit 

Это конфигурация VLAN на SW2 там. В определении VLAN 70 в SW1 определен «IP-адрес». Вышеприведенный фрагмент находится в полностью разряженном режиме. Когда я в багажнике:

trunk 35-36,38,40 Trk16 trunk
vlan 70 
   name "Virtualization Subnet" 
   tagged Trk1-Trk2,Trk5,Trk8,Trk16
   no ip address 
   jumbo 
   exit 

Версия 802.1qa / LACP меняет определение магистрали, trunk 35-36,38,40 Trk16 lacpно, как я уже сказал, не меняет представление проблемы.

Клиент2 действительно подключен к SW1, но размещение его там на диаграмме сделало бы форматирование более сложным. В любом случае единственная вещь в разделе Интерфейс - это nameдиректива; он указан как untaggedпорт в разделе VLAN 70 для SW1.

Что мне не хватает?

sysadmin1138
источник
Можете ли вы опубликовать раздел VLAN ваших коммутаторов Procurve? А также, какие порты используют гипервизор (aka VM) 1, клиенты 1 и 2?
Jftuga
@jftuga Стансы были введены.
sysadmin1138
Для коммутаторов sw1,2,3 все порты магистрали восходящей линии связи (для других коммутаторов) помечены в vlan 70? Кроме того, что Tracert показывает вам?
Jftuga
@jftuga Да, все ссылки между коммутаторами транкированы и помечены. SW3 не имеет VLAN 70 на нем. Traceroute не проявляет особого интереса, трасса умирает при прыжке, когда попадет на хост VM. Кроме того, изнутри самого коммутатора я не могу пропинговать IP-адрес хоста VM, когда транкинговое соединение. Я посмотрю, смогу ли я получить что-то на месте, чтобы понюхать этот набор транковых портов.
sysadmin1138
Вы говорите, что это виртуальная машина, как в виртуальной машине? Вы запускаете это на ESX (I)?
Пауска

Ответы:

7

После долгих дебатов в чате с участием MikeyB , Pauska и ChrisS проблема в итоге оказалась двоякой:

  1. Возможная ошибка в CentOS 6 не заключалась в изменении опций модуля для bondingмодуля как части service network restart, поэтому он не отслеживал мои изменения между режимом LACP (4) и roundrobin (0).
  2. Режим Round-Robin не любит работать с переключателями ProCurve.

Однажды я перевел связанный интерфейс в режим LACP / 802.1qa с помощью этой команды:

ifconfig bond0 down
echo "4" > /sys/class/net/bond0/bonding/mode
ifconfig bond0 up

И сервер, и коммутатор разговаривали. В этот момент, начиная с включения только одного интерфейса на коммутаторе, трафик начал работать нормально. Включение второго, третьего и, наконец, четвертого интерфейсов позволило поддерживать работоспособность трафика.

В конечном счете, LACP-режим - это то, что заставляет вещи работать. Подсказка заключалась в том, что режим циклического перебора работал, когда в магистрали был только один включенный порт коммутатора. Сервер переживает перезагрузку и загружается в правильном режиме. Однако, a service network restartне приводит к тому, что MODE="4"часть ifcfg-bond0файла /etc/sysconfig/network-scripts/вступает в силу. Если этот режим изменится, он останется тем, что было установлено при загрузке (или, что более вероятно, временем загрузки bondingмодуля).

sysadmin1138
источник
Рад помочь :)
MikeyB
Рад видеть, что вы это исправили.
Jftuga
Очень профессиональный вопрос и ответ. Должен помочь кому-то.
artifex
0

У вас есть в вашей конфигурации:

trunk 35-36,38,40 Trk16 trunk
vlan 70 
   name "Virtualization Subnet" 
   tagged Trk1-Trk2,Trk5,Trk8,Trk16
   no ip address 
   jumbo 
   exit 

Не должно ли это быть:

   untagged Trk16
   tagged Trk1-Trk2,Trk5,Trk8
MikeyB
источник
Ну, есть ошибка в оригинальном сообщении, но не то, что вы предлагаете. Под нетранкованным конфигом должен быть "нетегированный Trk16" на vlan 70.
pauska
Я тоже попробовал этот вариант. Оба варианта работают одинаково, не работает. Использование untagged 35-36,38,40и то и tagged 35-36,38,40...другое работает, пока я не пытаюсь объединить интерфейсы на сервере Linux. untagged Trk16и tagged Trk16...оба не работают.
sysadmin1138
Запустил Xen? Centos 6 все еще портит определения интерфейса? Я вспоминаю проблему, которая возникла, когда интерфейсы vlan создавались из неправильного интерфейса (физ вместо моста или наоборот), и происходили странные вещи.
MikeyB