Вариант имени Алиеча

Мы пойдём своим путём!

Простая и удобная сеть для виртуальных машин на базе VDE

Когда-то весьма давно я топил за использование vde_switch для организации сети виртуальных машин в домашних условиях. Использовал я его вместо мост-устройства, как этакий сетевой хаб. Ну и на каждую сеть по такому хабу. Потом захотелось окошек, virt-manager’а и прочих извращённых утех от Red Hat’а. Но я вернулся…

Короче, отринем же этот велосипед на базе linux-bridge/netfilter/dnsmasq в пользу настоящего виртуального сетевого L2-свитча! С возможностью раскидать L2-сегменты внутри этого свитча как вам заблагорассудится! Итак, конфиг vde_switch’а:

port/setnumports 24
port/createauto
port/createauto
port/createauto
port/createauto
port/createauto
port/createauto
port/createauto
port/createauto
port/createauto
port/createauto
port/createauto
port/createauto
vlan/create 1
vlan/create 2
vlan/create 3
port/setvlan 2 1
port/setvlan 3 1
port/setvlan 4 1
port/setvlan 5 1
port/setvlan 6 2
port/setvlan 7 2
port/setvlan 8 2
port/setvlan 9 2
port/setvlan 10 3
port/setvlan 11 3
port/setvlan 12 3
port/setvlan 13 3

Запускается так:

vde_switch --sock vde.ctl --mode 0600 --tap vdetap0 --rcfile vde.rc

где vde.ctl — имя сокета vde, которым будет оперировать свитч; vdetap0 — имя tap-устройства в системе, к которому подключается свитч первым портом; vde.rc — имя конфигурационного файла vde_switch. В окне терминала, после запуска, доступен cli-интерфейс управления vde_switch’а.

Конфигурация, изложенная выше, обеспечивает нам следующее:

  • свитч ограничен 24мя портами;
  • первый порт подключен к tap-устройству в vlan’е #0;
  • порты 2-5 изолированы в vlan’е #1;
  • порты 5-9 изолированы в vlan’е #2;
  • порты 9-13 изолированы в vlan’е #3;
  • порты 2-13 доступны к подключению только при указании номера порта при подключении.

Я лично вывел vlan #0 в мост с домашней сетью:

auto br0
iface br0 inet dhcp
	bridge_stp	off
	bridge_maxwait	0
	bridge_fd	0
	bridge_ports	enp2s0 vdetap0
	pre-up		/usr/sbin/vde_tunctl -u aliech -t vdetap0
	post-down	/usr/sbin/vde_tunctl -d vdetap0

А теперь вопрос? А зачем? Вот он — мост? Чего бы в него не засунуть tap-устройства виртуальных машин? А тут всё просто: он один. В него установлено одно tap-устройство, доступное пользователю. Только поднятие данного мост-устройства и создание tap-интерфейса требует наличие root-привилегий. Остальное нам теперь доступно из user-space’а.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

69 − 60 =