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

KVM 802.1q (настройка VLAN с тегами)

Я много читал о тегах VLAN в сетях с мостами KVM, но меня очень смущает то, что нужно тегировать (физические сетевые устройства или мосты, подключенные к этим устройствам), и нужно ли гостю виртуальной машины пометить его внутреннее устройство, или это происходит на стороне хоста, когда гостевой виртуальный сетевой адаптер подключен к помеченному мосту.

Отказ от ответственности: Я делаю некоторые предположения ниже, основываясь на отрывках, которые я почерпнул из нескольких записей в блогах / технических страниц. Как и многие другие вещи, кажется, что есть много способов выполнить одну задачу. Если я совершенно не прав и кто-то знает хорошее руководство, пришлите мне URL-адрес, и я исправлю то, что сделал, и вернусь, если это не сработает.

У меня есть несколько виртуальных хостов KVM (включая их гостей), которые в настоящее время подключены к одной сети.

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

Настройка:

kvmhost1

kvmhost2

kvmhost3

Я делаю здесь некоторые предположения:

Извините за мое незнание, но мои знания о виртуальных локальных сетях весьма ограничены, и пока я действительно имел дело с ними только на физическом уровне (сетевая карта в порт коммутатора, подключенный к виртуальной локальной сети)

Любая помощь была бы замечательной, или даже руководство о том, как правильно это сделать.

Лучше всего поступить следующим образом:

  • пометьте интерфейс (или связь) - например, eth0 -> eth0.100 (или eth0 + eth1 -> bond0 -> bond0.100)
  • построить мост поверх помеченного интерфейса
  • подключить виртуальные машины к мосту

Таким образом будет отмечен весь трафик к виртуальным машинам и от них. Для немаркированного трафика лучше всего создать еще один мост на немаркированном интерфейсе и подключить к нему еще одну сетевую карту виртуальной машины.

То, что вы настроили, логически нормально.

Эти гости смогут видеть друг друга, потому что у них есть собственный vlan:
kh1guest1, kh1guest2, kh2guest1, kh3guest1

Эти гости смогут видеть друг друга, потому что они находятся в vlan 10:
kh2guest2, kh3guest2

Вашему администратору коммутатора может потребоваться настроить ваши порты коммутатора как «магистральные порты», чтобы иметь возможность передавать тег vlan, который вы добавляете. Сообщите им, что вы настроили, и ваши требования для наличия тега vlan.

Если вы находитесь в большой управляемой сети, вам может потребоваться выделить вам номер vlan, потому что что-то еще уже имеет vlan10.

Думайте о теге vlan как о «оболочке» вокруг фрейма Ethernet. Вам просто нужно определить одно место для добавления / удаления обертки. Все нижеперечисленное действительно, выделенный жирным шрифтом интерфейс показывает, где выполняется тегирование:

  • провод -> хост eth0 -> хост br0 -> хост br0.10 -> гость eth0
  • провод -> хост eth0 -> хост eth0.10 -> хост br10 -> гостевой eth0
  • провод -> хост eth0 -> хост br0 -> гость eth0 -> гость eth0.10

Если вы хотите связать физические интерфейсы на хосте, вы не можете добавить интерфейсы с тегами vlan в связь. Итак, это будет действительным:

  • провод -> хост ethX -> хост bond0 -> хост bond0 -> хост br0 -> хост br0.10 -> гость eth0
  • провод -> хост ethX -> хост bond0 -> хост облигация0,10 -> хост br10 -> гостевой eth0
  • Wire -> host ethX -> host bond0 -> host bond0 -> host br0 -> guest eth0 -> guest eth0.10

А это неправильно:

  • провод -> хост ethX -> хост ethX.10 -> связь с хостом -> и т. д.

Простое правило состоит в том, что соединение должно быть либо без тегов на обоих концах (на стороне хоста и на стороне гостя), либо на обоих концах.

Гости обычно не нуждаются в поддержке тегов. На данный момент игнорируйте тот факт, что вы находитесь в виртуализированной среде. Как бы был настроен каждый «гость», если бы это был физический компьютер? Затем реализуйте то же самое в KVM.

На kvmhost2 и kvmhost3 вам, вероятно, понадобится два моста, br0 и br1. br1 может иметь в качестве участника eth0.10. Затем kh2guest2 и kh3guest3 могут подключить свой eth0 к br1 соответствующего хоста.