Назад | Перейти на главную страницу

CentOS, KVM, VLAN и мосты

Мне нужна помощь в проектировании сети для виртуализированных гостей с использованием KVM. Моя машина работает под управлением CentOS 7 и имеет 2 сетевых адаптера. Я бы хотел добиться следующего

Ссылка на концептуальный рисунок

Я новичок в libvirt и также не привык к Network Manager. Я искал документацию, но нашел противоречивую информацию, начиная с вопроса, можно ли настроить этот мост через сетевой менеджер. Я также читал о возможности позволить KVM выполнять переключение.

Я был бы благодарен либо за прямую помощь в настройке, либо за указатель на актуальную документацию, в которой не используются (в CentOS 7) устаревшие инструменты или обходные пути для устранения проблем, устраненных к тому времени.

Заранее спасибо.

То, что вы хотите, хоть и полезно, но делать непросто. По сути, у вас есть 3 возможности:

  1. использовать стек Open vSwitch для виртуализации моста / коммутатора
  2. использовать выделенный программный мост для каждого vlan
  3. на последних ядрах можно использовать "фильтр мостовой VLAN" возможность иметь один "умный" мост, чтобы управлять ими всеми

Решение №1 является (вероятно) наиболее полным, но самым сложным в настройке.

Решение №2 это то, что я использовал для своего лабораторного теста. Например, для VLAN 10 и 20 вам нужно было создать аналогичную настройку:

eth0 (physical interface) -> eth0.10 (VLAN tagged) -> br10 (bridge with eth0.10 and the relative virtual qemu/kvm interface)
eth0 (physical interface) -> eth0.20 (VLAN tagged) -> br20 (bridge with eth0.20 and the relative virtual qemu/kvm interface)

Обратите внимание: если вам нужен немаркированный трафик также на помеченном мосту, вы должен введите следующее правило ebtables: ebtables -t broute -A BROUTING -i eth0 -p 802.1Q -j DROP Это правило необходимо из-за того, как сетевой стек Linux управляет входящими пакетами. Для получения дополнительной информации см. Вот, Вот и Вот

Решение №3 должен быть умным, но для него нужна поддержка ядра (и libvirt тоже). CentOS7 должен иметь достаточно свежее ядро, но я не знаю, готовы ли все остальные части программного обеспечения.

Решение №4 (бонус один): если вам не нужно общение с гостем / хостом, взгляните на драйвер macvtap. Хотя я им не пользуюсь, вы сможете настроить аналогичное решение:

eth0 (physical interface) -> eth0.10 (VLAN tagged) -> MAC vtap on eth0.10
eth0 (physical interface) -> eth0.20 (VLAN tagged) -> MAC vtap on eth0.20

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

Наконец, посмотрите Вот, это стоит прочитать.