<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://support.qbpro.ru/index.php?action=history&amp;feed=atom&amp;title=Open_vSwitch_%D0%BA%D0%B0%D0%BA_%D1%8F%D0%B4%D1%80%D0%BE_%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D1%81%D0%B5%D1%82%D0%B8</id>
	<title>Open vSwitch как ядро виртуальной сети - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://support.qbpro.ru/index.php?action=history&amp;feed=atom&amp;title=Open_vSwitch_%D0%BA%D0%B0%D0%BA_%D1%8F%D0%B4%D1%80%D0%BE_%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D1%81%D0%B5%D1%82%D0%B8"/>
	<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=Open_vSwitch_%D0%BA%D0%B0%D0%BA_%D1%8F%D0%B4%D1%80%D0%BE_%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D1%81%D0%B5%D1%82%D0%B8&amp;action=history"/>
	<updated>2026-05-13T21:03:59Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.38.1</generator>
	<entry>
		<id>https://support.qbpro.ru/index.php?title=Open_vSwitch_%D0%BA%D0%B0%D0%BA_%D1%8F%D0%B4%D1%80%D0%BE_%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D1%81%D0%B5%D1%82%D0%B8&amp;diff=3573&amp;oldid=prev</id>
		<title>Vix в 17:05, 5 апреля 2023</title>
		<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=Open_vSwitch_%D0%BA%D0%B0%D0%BA_%D1%8F%D0%B4%D1%80%D0%BE_%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D1%81%D0%B5%D1%82%D0%B8&amp;diff=3573&amp;oldid=prev"/>
		<updated>2023-04-05T17:05:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 20:05, 5 апреля 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;В данной статье для виртуализации используется KVM/libvirt, но сразу отмечу, статья не столько о KVM, сколько именно об особенностях преимуществах использования Open vSwitch для объединения виртуальных и физических сетевых устройств посредством технологии VLAN (802.1q). В былинные времена для проброса тегированного трафика в гипервизор использовались всевозможные костыли и подпорки различной степени неожиданности (tuntap, brctl, vconfig, ebtables и прочее), что приводило к захламлению операционной системы, хостящей гипервизор, большим количеством ненужных виртуальных сетевых интерфейсов, мозолящих глаза в выводе ifconfig и вообще огорчало администраторов необходимостью строить стандартное сетевое устройство (коммутатор) из отдельных частей как какой-то велосипед. Помимо поддержки 802.1q от коммутатора на самом деле сегодня требуется еще много функций. Так необходимость в виртуальном устройстве максимально соответствующем по функционалу стандартному современному управляемому коммутатору привела к появлению проекта Open vSwitch (далее — OVS).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;В данной статье для виртуализации используется KVM/libvirt, но сразу отмечу, статья не столько о KVM, сколько именно об особенностях преимуществах использования Open vSwitch для объединения виртуальных и физических сетевых устройств посредством технологии VLAN (802.1q). В былинные времена для проброса тегированного трафика в гипервизор использовались всевозможные костыли и подпорки различной степени неожиданности (tuntap, brctl, vconfig, ebtables и прочее), что приводило к захламлению операционной системы, хостящей гипервизор, большим количеством ненужных виртуальных сетевых интерфейсов, мозолящих глаза в выводе ifconfig и вообще огорчало администраторов необходимостью строить стандартное сетевое устройство (коммутатор) из отдельных частей как какой-то велосипед. Помимо поддержки 802.1q от коммутатора на самом деле сегодня требуется еще много функций. Так необходимость в виртуальном устройстве максимально соответствующем по функционалу стандартному современному управляемому коммутатору привела к появлению проекта Open vSwitch (далее — OVS).&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Файл:Opsw1.png]]&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;--&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;На КДПВ (Рисунок 1) изображен юзкейс OVS для построения песочницы для подготовки к замене наших устаревших VPN-маршрутизаторов на новые. Нужно сконфигурировать новые VPN-маршрутизаторы аналогично уже инсталлированным в нашей компании с теми же IP адресами, правилами фильтрации и настройками динамической маршрутизаци. И протестировать всё в песочнице, эмулирующей ISP (через которые соединяются VPN-маршрутизаторы) и сайты нашей локалки. Но повторюсь, эта статья не о сложностях настройки наших VPN-маршрутизаторов, а о том, как подключить их к нашей уютной виртуальной песочнице посредством VLAN вообще и OVS в частности.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;На КДПВ (Рисунок 1) изображен юзкейс OVS для построения песочницы для подготовки к замене наших устаревших VPN-маршрутизаторов на новые. Нужно сконфигурировать новые VPN-маршрутизаторы аналогично уже инсталлированным в нашей компании с теми же IP адресами, правилами фильтрации и настройками динамической маршрутизаци. И протестировать всё в песочнице, эмулирующей ISP (через которые соединяются VPN-маршрутизаторы) и сайты нашей локалки. Но повторюсь, эта статья не о сложностях настройки наших VPN-маршрутизаторов, а о том, как подключить их к нашей уютной виртуальной песочнице посредством VLAN вообще и OVS в частности.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Начнём с самого начала, установив чистую копию ubuntu-14.04.1-server-amd64 с опцией «Virtual Machine host». После установки система имеет следующий вид:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Начнём с самого начала, установив чистую копию ubuntu-14.04.1-server-amd64 с опцией «Virtual Machine host». После установки система имеет следующий вид:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l113&quot;&gt;Строка 113:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 112:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     virbr0		8000.000000000000	yes	&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     virbr0		8000.000000000000	yes	&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Всё очень стандартно, ни чего необычного.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Всё очень стандартно, ни чего необычного.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;На картинке всё еще проще:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;На картинке всё еще проще:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;--&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Файл:Opsw2.png]]&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Устанавливаем openvswitch:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Устанавливаем openvswitch:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  apt-get install openvswitch-switch&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  apt-get install openvswitch-switch&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l171&quot;&gt;Строка 171:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 170:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     10.0.7.0        0.0.0.0         255.255.255.0   U     0      0        0 ovs-br0&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     10.0.7.0        0.0.0.0         255.255.255.0   U     0      0        0 ovs-br0&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ну и в виде картинки:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ну и в виде картинки:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;--&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Файл:Opsw3.png]]&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Рисунок 3: Установили openvswitch и подключили его к IP стеку OS вместо eth0.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Рисунок 3: Установили openvswitch и подключили его к IP стеку OS вместо eth0.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Интерфейс коммутатора virbr0 в дальнейшем изображать не будем,   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Интерфейс коммутатора virbr0 в дальнейшем изображать не будем,   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l220&quot;&gt;Строка 220:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 219:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  virsh net-undefine ovs-network&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  virsh net-undefine ovs-network&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;изобразим полученное:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;изобразим полученное:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;--&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Файл:Opsw4.png]]&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Рисунок4: Создали порт-группы для наших VM&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Рисунок4: Создали порт-группы для наших VM&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Создадим пару виртуальных машин VM1 и VM2 в virt-manager'е и при создании укажим Advanced options Virtual network 'ovs-network':  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Создадим пару виртуальных машин VM1 и VM2 в virt-manager'е и при создании укажим Advanced options Virtual network 'ovs-network':  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l271&quot;&gt;Строка 271:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 270:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     vnet1     Link encap:Ethernet  HWaddr fe:54:00:7f:40:d0   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     vnet1     Link encap:Ethernet  HWaddr fe:54:00:7f:40:d0   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Как видим, в коммутаторе добавились порты соответствующих порт-групп, а в системе добавилось пара интерфейсов с MAC-адресами, соответствующими VM (при выключение VM соответствующие порты и интерфейсы опять исчезнут).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Как видим, в коммутаторе добавились порты соответствующих порт-групп, а в системе добавилось пара интерфейсов с MAC-адресами, соответствующими VM (при выключение VM соответствующие порты и интерфейсы опять исчезнут).&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;--&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Файл:Opsw5.png]]&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Рисунок 5: запустили пару VM&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Рисунок 5: запустили пару VM&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Еще упомяну, что 802.1q не единственная фича Open vSwitch, с его помощью можно организовать, например, бондинг двух интерфейсов и кое-что еще.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Еще упомяну, что 802.1q не единственная фича Open vSwitch, с его помощью можно организовать, например, бондинг двух интерфейсов и кое-что еще.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Vix</name></author>
	</entry>
	<entry>
		<id>https://support.qbpro.ru/index.php?title=Open_vSwitch_%D0%BA%D0%B0%D0%BA_%D1%8F%D0%B4%D1%80%D0%BE_%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D1%81%D0%B5%D1%82%D0%B8&amp;diff=3566&amp;oldid=prev</id>
		<title>Vix: Новая страница: «В данной статье для виртуализации используется KVM/libvirt, но сразу отмечу, статья не столько о KVM, сколько именно об особенностях преимуществах использования Open vSwitch для объединения виртуальных и физических сетевых устройств посредством технологии VLAN (802....»</title>
		<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=Open_vSwitch_%D0%BA%D0%B0%D0%BA_%D1%8F%D0%B4%D1%80%D0%BE_%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D1%81%D0%B5%D1%82%D0%B8&amp;diff=3566&amp;oldid=prev"/>
		<updated>2023-04-05T16:58:08Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «В данной статье для виртуализации используется KVM/libvirt, но сразу отмечу, статья не столько о KVM, сколько именно об особенностях преимуществах использования Open vSwitch для объединения виртуальных и физических сетевых устройств посредством технологии VLAN (802....»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;В данной статье для виртуализации используется KVM/libvirt, но сразу отмечу, статья не столько о KVM, сколько именно об особенностях преимуществах использования Open vSwitch для объединения виртуальных и физических сетевых устройств посредством технологии VLAN (802.1q). В былинные времена для проброса тегированного трафика в гипервизор использовались всевозможные костыли и подпорки различной степени неожиданности (tuntap, brctl, vconfig, ebtables и прочее), что приводило к захламлению операционной системы, хостящей гипервизор, большим количеством ненужных виртуальных сетевых интерфейсов, мозолящих глаза в выводе ifconfig и вообще огорчало администраторов необходимостью строить стандартное сетевое устройство (коммутатор) из отдельных частей как какой-то велосипед. Помимо поддержки 802.1q от коммутатора на самом деле сегодня требуется еще много функций. Так необходимость в виртуальном устройстве максимально соответствующем по функционалу стандартному современному управляемому коммутатору привела к появлению проекта Open vSwitch (далее — OVS).&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
На КДПВ (Рисунок 1) изображен юзкейс OVS для построения песочницы для подготовки к замене наших устаревших VPN-маршрутизаторов на новые. Нужно сконфигурировать новые VPN-маршрутизаторы аналогично уже инсталлированным в нашей компании с теми же IP адресами, правилами фильтрации и настройками динамической маршрутизаци. И протестировать всё в песочнице, эмулирующей ISP (через которые соединяются VPN-маршрутизаторы) и сайты нашей локалки. Но повторюсь, эта статья не о сложностях настройки наших VPN-маршрутизаторов, а о том, как подключить их к нашей уютной виртуальной песочнице посредством VLAN вообще и OVS в частности.&lt;br /&gt;
Начнём с самого начала, установив чистую копию ubuntu-14.04.1-server-amd64 с опцией «Virtual Machine host». После установки система имеет следующий вид:&lt;br /&gt;
&lt;br /&gt;
* Вывод утилит просмотра сетевых параметров:&lt;br /&gt;
    root@sandbox:~# ifconfig |grep -vE 'RX|TX|coll|inet6|MTU'&lt;br /&gt;
    eth0      Link encap:Ethernet  HWaddr 00:1b:78:9c:2b:fc  &lt;br /&gt;
              inet addr:10.0.7.1   Bcast:10.0.7.255  Mask:255.255.255.0&lt;br /&gt;
    &lt;br /&gt;
    lo        Link encap:Local Loopback  &lt;br /&gt;
              inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
    &lt;br /&gt;
    virbr0    Link encap:Ethernet  HWaddr 1a:70:19:e9:3c:c7  &lt;br /&gt;
              inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0&lt;br /&gt;
    root@sandbox:~# route -n&lt;br /&gt;
    Kernel IP routing table&lt;br /&gt;
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
    0.0.0.0         10.0.7.254     0.0.0.0           UG    0      0        0 eth0&lt;br /&gt;
    10.0.7.0        0.0.0.0        255.255.255.0     U     0      0        0 eth0&lt;br /&gt;
    192.168.122.0   0.0.0.0        255.255.255.0     U     0      0        0 virbr0&lt;br /&gt;
    root@sandbox:~# cat /etc/network/interfaces |grep -v ^#&lt;br /&gt;
    auto lo&lt;br /&gt;
    iface lo inet loopback&lt;br /&gt;
    &lt;br /&gt;
    auto eth0&lt;br /&gt;
    iface eth0 inet static&lt;br /&gt;
        address 10.0.7.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        network 10.0.7.0&lt;br /&gt;
        broadcast 10.0.7.255&lt;br /&gt;
        gateway 10.0.7.254&lt;br /&gt;
        # dns-* options are implemented by the resolvconf package, if installed&lt;br /&gt;
        dns-nameservers 10.0.1.1&lt;br /&gt;
    root@sandbox:~# virsh net-list --all&lt;br /&gt;
    Name                 State      Autostart     Persistent&lt;br /&gt;
    ----------------------------------------------------------&lt;br /&gt;
    default              active     yes           yes&lt;br /&gt;
    root@sandbox:~# virsh net-dumpxml default&lt;br /&gt;
    &amp;lt;network&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;default&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;uuid&amp;gt;865fd53b-5bd5-430c-b7c7-664125dee9f6&amp;lt;/uuid&amp;gt;&lt;br /&gt;
      &amp;lt;forward mode='nat'&amp;gt;&lt;br /&gt;
        &amp;lt;nat&amp;gt;&lt;br /&gt;
          &amp;lt;port start='1024' end='65535'/&amp;gt;&lt;br /&gt;
        &amp;lt;/nat&amp;gt;&lt;br /&gt;
      &amp;lt;/forward&amp;gt;&lt;br /&gt;
      &amp;lt;bridge name='virbr0' stp='on' delay='0'/&amp;gt;&lt;br /&gt;
      &amp;lt;ip address='192.168.122.1' netmask='255.255.255.0'&amp;gt;&lt;br /&gt;
        &amp;lt;dhcp&amp;gt;&lt;br /&gt;
          &amp;lt;range start='192.168.122.2' end='192.168.122.254'/&amp;gt;&lt;br /&gt;
        &amp;lt;/dhcp&amp;gt;&lt;br /&gt;
      &amp;lt;/ip&amp;gt;&lt;br /&gt;
    &amp;lt;/network&amp;gt;&lt;br /&gt;
    root@sandbox:~# brctl show&lt;br /&gt;
    bridge name	bridge id		STP enabled	interfaces&lt;br /&gt;
    virbr0		8000.000000000000	yes&lt;br /&gt;
&lt;br /&gt;
На КДПВ (Рисунок 1) изображен юзкейс OVS для построения песочницы для подготовки к замене наших устаревших VPN-маршрутизаторов на новые. Нужно сконфигурировать новые VPN-маршрутизаторы аналогично уже инсталлированным в нашей компании с теми же IP адресами, правилами фильтрации и настройками динамической маршрутизаци. И протестировать всё в песочнице, эмулирующей ISP (через которые соединяются VPN-маршрутизаторы) и сайты нашей локалки. Но повторюсь, эта статья не о сложностях настройки наших VPN-маршрутизаторов, а о том, как подключить их к нашей уютной виртуальной песочнице посредством VLAN вообще и OVS в частности.&lt;br /&gt;
Начнём с самого начала, установив чистую копию ubuntu-14.04.1-server-amd64 с опцией «Virtual Machine host». После установки система имеет следующий вид:&lt;br /&gt;
* Вывод утилит просмотра сетевых параметров:&lt;br /&gt;
    root@sandbox:~# ifconfig |grep -vE 'RX|TX|coll|inet6|MTU'&lt;br /&gt;
    eth0      Link encap:Ethernet  HWaddr 00:1b:78:9c:2b:fc  &lt;br /&gt;
              inet addr:10.0.7.1   Bcast:10.0.7.255  Mask:255.255.255.0&lt;br /&gt;
    &lt;br /&gt;
    lo        Link encap:Local Loopback  &lt;br /&gt;
              inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
    &lt;br /&gt;
    virbr0    Link encap:Ethernet  HWaddr 1a:70:19:e9:3c:c7  &lt;br /&gt;
              inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0&lt;br /&gt;
    root@sandbox:~# route -n&lt;br /&gt;
    Kernel IP routing table&lt;br /&gt;
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
    0.0.0.0         10.0.7.254     0.0.0.0           UG    0      0        0 eth0&lt;br /&gt;
    10.0.7.0        0.0.0.0        255.255.255.0     U     0      0        0 eth0&lt;br /&gt;
    192.168.122.0   0.0.0.0        255.255.255.0     U     0      0        0 virbr0&lt;br /&gt;
    root@sandbox:~# cat /etc/network/interfaces |grep -v ^#&lt;br /&gt;
    auto lo&lt;br /&gt;
    iface lo inet loopback&lt;br /&gt;
    &lt;br /&gt;
    auto eth0&lt;br /&gt;
    iface eth0 inet static&lt;br /&gt;
        address 10.0.7.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        network 10.0.7.0&lt;br /&gt;
        broadcast 10.0.7.255&lt;br /&gt;
        gateway 10.0.7.254&lt;br /&gt;
        # dns-* options are implemented by the resolvconf package, if installed&lt;br /&gt;
        dns-nameservers 10.0.1.1&lt;br /&gt;
    root@sandbox:~# virsh net-list --all&lt;br /&gt;
    Name                 State      Autostart     Persistent&lt;br /&gt;
    ----------------------------------------------------------&lt;br /&gt;
    default              active     yes           yes&lt;br /&gt;
    root@sandbox:~# virsh net-dumpxml default&lt;br /&gt;
    &amp;lt;network&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;default&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;uuid&amp;gt;865fd53b-5bd5-430c-b7c7-664125dee9f6&amp;lt;/uuid&amp;gt;&lt;br /&gt;
      &amp;lt;forward mode='nat'&amp;gt;&lt;br /&gt;
        &amp;lt;nat&amp;gt;&lt;br /&gt;
          &amp;lt;port start='1024' end='65535'/&amp;gt;&lt;br /&gt;
        &amp;lt;/nat&amp;gt;&lt;br /&gt;
      &amp;lt;/forward&amp;gt;&lt;br /&gt;
      &amp;lt;bridge name='virbr0' stp='on' delay='0'/&amp;gt;&lt;br /&gt;
      &amp;lt;ip address='192.168.122.1' netmask='255.255.255.0'&amp;gt;&lt;br /&gt;
        &amp;lt;dhcp&amp;gt;&lt;br /&gt;
          &amp;lt;range start='192.168.122.2' end='192.168.122.254'/&amp;gt;&lt;br /&gt;
        &amp;lt;/dhcp&amp;gt;&lt;br /&gt;
      &amp;lt;/ip&amp;gt;&lt;br /&gt;
    &amp;lt;/network&amp;gt;&lt;br /&gt;
    root@sandbox:~# brctl show&lt;br /&gt;
    bridge name	bridge id		STP enabled	interfaces&lt;br /&gt;
    virbr0		8000.000000000000	yes	&lt;br /&gt;
Всё очень стандартно, ни чего необычного.&lt;br /&gt;
На картинке всё еще проще:&lt;br /&gt;
--&lt;br /&gt;
Устанавливаем openvswitch:&lt;br /&gt;
 apt-get install openvswitch-switch&lt;br /&gt;
После его установки ни каких изменений в сетевых параметрах не происходит, лишь запускается сервис OVS, ждущий наших распоряжений. Не будем заставлять его ждать. Вводим нижеприведенные команды с консоли или помещаем их во временный .sh скрипт и запускаем:&lt;br /&gt;
 ovs-vsctl add-br ovs-br0&lt;br /&gt;
 ovs-vsctl set port ovs-br0 tag=7&lt;br /&gt;
 ovs-vsctl add-port ovs-br0 eth0&lt;br /&gt;
 ovs-vsctl set port eth0 trunks=7,10,20,1010,1020,30,1030&lt;br /&gt;
 ifconfig eth0 0&lt;br /&gt;
 ifconfig ovs-br0 10.0.7.1/24 up&lt;br /&gt;
 ip r add default via 10.0.7.254&lt;br /&gt;
переключаем хост в тегированный порт коммутатора&lt;br /&gt;
 ovs-vsctl add-br ovs-br0&lt;br /&gt;
Создает почти пустой инстанс виртуального коммутатора, есть только один порт к которому и подключен одноименный внутренний интерфейс ovs-br0.&lt;br /&gt;
 ovs-vsctl set port ovs-br0 tag=7&lt;br /&gt;
Конфигурируем этот порт как access-port для VLAN 7.&lt;br /&gt;
 ovs-vsctl add-port ovs-br0 eth0&lt;br /&gt;
Добавляем к нашему коммутатору еще один порт, в который переключаем интерфейс eth0.&lt;br /&gt;
 ovs-vsctl set port eth0 trunks=7,10,20,1010,1020,30,1030&lt;br /&gt;
делаем этот порт транковым для указанных VLAN ID. В принципе, параметр trunks можно вообще не указывать, тогда порт будет пропускать все VLAN ID.&lt;br /&gt;
 ifconfig eth0 0&lt;br /&gt;
Обнуляем конфигурацию IP для eth0. Он больше не будет связан с IP стеком OS.&lt;br /&gt;
 ifconfig ovs-br0 10.0.7.1/24 up&lt;br /&gt;
Вместо eth0 к IP стеку OS прикручиваем внутренний интерфейс ovs-br0.&lt;br /&gt;
 ip r add default via 10.0.7.254&lt;br /&gt;
Ну и не забываем восстановить таблицу маршрутизации&lt;br /&gt;
Переключаем хост в тегированный порт коммутатора&lt;br /&gt;
 Мы в сети! (с)&lt;br /&gt;
* Смотрим, что же изменилось в сетевых настройках:&lt;br /&gt;
    root@sandbox:~# ovs-vsctl show&lt;br /&gt;
    40952e4d-81ad-433b-b08b-f88ccd55f26a&lt;br /&gt;
        Bridge &amp;quot;ovs-br0&amp;quot;&lt;br /&gt;
            Port &amp;quot;ovs-br0&amp;quot;&lt;br /&gt;
                tag: 7&lt;br /&gt;
                Interface &amp;quot;ovs-br0&amp;quot;&lt;br /&gt;
                    type: internal&lt;br /&gt;
            Port &amp;quot;eth0&amp;quot;&lt;br /&gt;
                trunks: [7,10,20,1010,1020,30,1030]&lt;br /&gt;
                Interface &amp;quot;eth0&amp;quot;&lt;br /&gt;
        ovs_version: &amp;quot;2.0.2&amp;quot;&lt;br /&gt;
    root@sandbox:~# ifconfig |grep -vE 'RX|TX|coll|inet6|MTU'&lt;br /&gt;
    eth0      Link encap:Ethernet  HWaddr 00:1b:78:9c:2b:fc  &lt;br /&gt;
    &lt;br /&gt;
    lo        Link encap:Local Loopback  &lt;br /&gt;
              inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
    &lt;br /&gt;
    ovs-br0   Link encap:Ethernet  HWaddr 00:1b:78:9c:2b:fc  &lt;br /&gt;
              inet addr:10.0.7.1  Bcast:10.0.7.255  Mask:255.255.255.0&lt;br /&gt;
    &lt;br /&gt;
    virbr0    Link encap:Ethernet  HWaddr 32:b9:dd:38:09:f5  &lt;br /&gt;
              inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0&lt;br /&gt;
    root@sandbox:~# route -n&lt;br /&gt;
    Kernel IP routing table&lt;br /&gt;
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
    0.0.0.0         10.0.7.254      0.0.0.0         UG    0      0        0 ovs-br0&lt;br /&gt;
    10.0.7.0        0.0.0.0         255.255.255.0   U     0      0        0 ovs-br0&lt;br /&gt;
    192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0&lt;br /&gt;
Ну и в виде картинки:&lt;br /&gt;
--&lt;br /&gt;
Рисунок 3: Установили openvswitch и подключили его к IP стеку OS вместо eth0.&lt;br /&gt;
Интерфейс коммутатора virbr0 в дальнейшем изображать не будем,  &lt;br /&gt;
он нам не интересен и ни на что не влияет.&lt;br /&gt;
Ничего неожиданного, всё логично и интуитивно понятно.&lt;br /&gt;
Еще один приятный момент для тех, кто уже начал беспокоиться о том, где же размещать стартовые скрипты применения этой конфигурации. Ничего особо делать и не придется, конфигурация OVS вышеуказанными командами ovs-vsctl не только применяется, но и автоматически сохраняется, так что вам не нужно переживать о несовпадение текущей и сохраненной конфигурации OVS.&lt;br /&gt;
А файл /etc/network/interfaces нам надо лишь малость обновить в связи с заменой интерфейса eth0 на ovs-br0:&lt;br /&gt;
 root@sandbox:~# cat /etc/network/interfaces |grep -v ^#&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet manual&lt;br /&gt;
 &lt;br /&gt;
 auto ovs-br0&lt;br /&gt;
 iface ovs-br0 inet static&lt;br /&gt;
 	address 10.0.7.1&lt;br /&gt;
 	netmask 255.255.255.0&lt;br /&gt;
 	network 10.0.7.0&lt;br /&gt;
 	broadcast 10.0.7.255&lt;br /&gt;
 	gateway 10.0.7.254&lt;br /&gt;
 	# dns-* options are implemented by the resolvconf package, if installed&lt;br /&gt;
 	dns-nameservers 10.0.1.1&lt;br /&gt;
Но коммутатор в данный момент всего с двумя портами, как же подключить к нему наши 5 виртуальных машин? Тут есть как минимум 2 пути. Первый, наиболее очевидный, состоит в том, чтобы с помощью команды ovs-vsctl add-port добавить порт (access или транковый — на выбор).&lt;br /&gt;
 ovs-vsctl add-port ovs-br0 vlan10 tag=10 -- set interface vlan10 type=internal&lt;br /&gt;
-- (две черточки) используется для выполнения нескольких команд ovs-vsctl в одну строку&lt;br /&gt;
Затем можно будет прямо в GUI virt-manager'а выбрать его для подключения сетевого интерфейса виртуальной машины. Но мы пойдем более масштабируемым способом. При этом порты создавать вообще не нужно (как собственно и в стандартном linux core bridge). Вместо этого можно создать порт-группы для OVS. Каждая порт-группа предназначена для подключения VM к соответствующему VLAN. К сожалению, их настройка из GUI virt-manager'а недоступна, необходимо вручную подготовить простенький XML файл, описывающий необходимые порт-группы и затем применить его через API libvirt с помощью команды virsh, как указано ниже:&lt;br /&gt;
XML-конфиг для конфигурации, показанной на Рисунке 1&lt;br /&gt;
Выполняем эти команды:&lt;br /&gt;
 vi /tmp/ovs-network.xml&lt;br /&gt;
 virsh net-define /tmp/ovs-network.xml&lt;br /&gt;
 virsh net-start ovs-network&lt;br /&gt;
 virsh net-autostart ovs-network&lt;br /&gt;
&lt;br /&gt;
* Пояснения:&lt;br /&gt;
 vi /tmp/ovs-network.xml&lt;br /&gt;
копируем в этот файл вышеуказанное содержимое XML&lt;br /&gt;
 virsh net-define /tmp/ovs-network.xml&lt;br /&gt;
конфигурируем новую сеть для KVM&lt;br /&gt;
 virsh net-start ovs-network&lt;br /&gt;
запускаем её&lt;br /&gt;
 virsh net-autostart ovs-network&lt;br /&gt;
делаем её запуск автоматическим&lt;br /&gt;
* что бы удалить ненужную сеть&lt;br /&gt;
 virsh net-destroy ovs-network&lt;br /&gt;
 virsh net-autostart --disable ovs-network&lt;br /&gt;
 virsh net-undefine ovs-network&lt;br /&gt;
&lt;br /&gt;
изобразим полученное:&lt;br /&gt;
--&lt;br /&gt;
Рисунок4: Создали порт-группы для наших VM&lt;br /&gt;
Создадим пару виртуальных машин VM1 и VM2 в virt-manager'е и при создании укажим Advanced options Virtual network 'ovs-network': &lt;br /&gt;
 Bridge network&lt;br /&gt;
Пока оставим их выключенными&lt;br /&gt;
подправим конфиги виртуалок&lt;br /&gt;
 virsh edit VM1&lt;br /&gt;
Найдем секцию interface и добавим параметр portgroup&lt;br /&gt;
    &amp;lt;interface type='network'&amp;gt;&lt;br /&gt;
      &amp;lt;mac address='52:54:00:5e:b9:b2'/&amp;gt;&lt;br /&gt;
      &amp;lt;source network='ovs-network' portgroup='vlan-10'/&amp;gt;&lt;br /&gt;
      &amp;lt;model type='virtio'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
Сделаеем так же для второй VM&lt;br /&gt;
Если посмотреть сейчас состояние сетевых интерфейсов коммутатора и операционной системы, то увидим, что ни каких изменений не произошло. Порты на коммутаторе не добавились, лишних сетевых интерфейсов в системе не появилось.&lt;br /&gt;
Теперь запустим обе VM:&lt;br /&gt;
* и еще раз проверим состояние сетевых параметров хоста&lt;br /&gt;
    oot@sandbox:~# ovs-vsctl show&lt;br /&gt;
    40952e4d-81ad-433b-b08b-f88ccd55f26a&lt;br /&gt;
        Bridge &amp;quot;ovs-br0&amp;quot;&lt;br /&gt;
            Port &amp;quot;vnet0&amp;quot;&lt;br /&gt;
                tag: 10&lt;br /&gt;
                Interface &amp;quot;vnet0&amp;quot;&lt;br /&gt;
            Port &amp;quot;ovs-br0&amp;quot;&lt;br /&gt;
                tag: 7&lt;br /&gt;
                Interface &amp;quot;ovs-br0&amp;quot;&lt;br /&gt;
                    type: internal&lt;br /&gt;
            Port &amp;quot;eth0&amp;quot;&lt;br /&gt;
                trunks: [7, 10, 20, 1010, 1020, 30, 1030]&lt;br /&gt;
                Interface &amp;quot;eth0&amp;quot;&lt;br /&gt;
            Port &amp;quot;vnet1&amp;quot;&lt;br /&gt;
                tag: 20&lt;br /&gt;
                Interface &amp;quot;vnet1&amp;quot;&lt;br /&gt;
        ovs_version: &amp;quot;2.0.2&amp;quot;&lt;br /&gt;
    root@sandbox:~# ifconfig |grep -vE 'RX|TX|coll|inet6|MTU'&lt;br /&gt;
    eth0      Link encap:Ethernet  HWaddr 00:1b:78:9c:2b:fc  &lt;br /&gt;
    &lt;br /&gt;
    lo        Link encap:Local Loopback  &lt;br /&gt;
              inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
    &lt;br /&gt;
    ovs-br0   Link encap:Ethernet  HWaddr 00:1b:78:9c:2b:fc  &lt;br /&gt;
              inet addr:10.0.7.1  Bcast:10.0.7.255  Mask:255.255.255.0&lt;br /&gt;
    &lt;br /&gt;
    virbr0    Link encap:Ethernet  HWaddr 32:b9:dd:38:09:f5  &lt;br /&gt;
              inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0&lt;br /&gt;
    &lt;br /&gt;
    vnet0     Link encap:Ethernet  HWaddr fe:54:00:5e:b9:b2  &lt;br /&gt;
    &lt;br /&gt;
    vnet1     Link encap:Ethernet  HWaddr fe:54:00:7f:40:d0  &lt;br /&gt;
Как видим, в коммутаторе добавились порты соответствующих порт-групп, а в системе добавилось пара интерфейсов с MAC-адресами, соответствующими VM (при выключение VM соответствующие порты и интерфейсы опять исчезнут).&lt;br /&gt;
--&lt;br /&gt;
Рисунок 5: запустили пару VM&lt;br /&gt;
Еще упомяну, что 802.1q не единственная фича Open vSwitch, с его помощью можно организовать, например, бондинг двух интерфейсов и кое-что еще.&lt;br /&gt;
Вот, собственно, и всё. Надеюсь, кому-то эта статья поможет решиться использовать Open vSwitch в своих проектах и просто песочницах вместо стандартного linux bridge.&lt;br /&gt;
&lt;br /&gt;
'''ИСТОЧНИКИ'''&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
* [https://habr.com/ru/articles/242741/ Open vSwitch как ядро виртуальной сети]&lt;/div&gt;</summary>
		<author><name>Vix</name></author>
	</entry>
</feed>