В чем разница между virbr # и vnet #?

11

Я использую KVM на RHEL6 и создал в нем несколько виртуальных машин. При вводе ifconfigкоманды в командной строке хост-системы отображается список virbr0, virbr1 ... и vnet0, vnet2 ... Являются ли они IP-адресами гостевой ОС? Каковы различия между virbr # и vnet #?

xczzhh
источник

Ответы:

21

Это сетевые интерфейсы, а не IP-адреса. Сетевой интерфейс может иметь пакеты из любого протокола, которым обмениваются, включая IPv4 или IPv6, и в этом случае им может быть присвоен один или несколько IP-адресов.

virbrявляются мостовыми интерфейсами. Они виртуальны в том, что к ним не подключена сетевая карта. Их роль заключается в том, чтобы действовать как реальный мост или коммутатор, то есть пакеты коммутации (на уровне 2) между интерфейсами (реальными или другими), которые подключены к нему, так же, как реальный коммутатор Ethernet.

Вы можете назначить IP-адрес этому устройству, которое в основном дает хосту IP-адрес в той подсети, к которой подключается мост. Затем он будет использовать MAC-адрес одного из интерфейсов, подключенных к мосту.

Тот факт, что их имя начинается с того, что они virничем не отличаются от любого другого интерфейса моста, просто они созданы тем, libvirtчто резервирует это пространство имен для bridgeинтерфейсов.

vnetИнтерфейсы - это другие типы виртуальных интерфейсов, называемые tapинтерфейсами. Они привязаны к процессу (в этом случае процесс запускается в qemu-kvmэмуляторе). То, что процесс записывает в этот интерфейс, будет выглядеть как полученное на этом интерфейсе хостом, и то, что хост передает на этом интерфейсе, доступно для чтения этим процессом. qemuобычно использует его для своего виртуализированного сетевого интерфейса в гостевой системе.

Обычно vnetк мостовому интерфейсу добавляется буква a, что означает подключение виртуальной машины к коммутатору.

Стефан Шазелас
источник
Большое спасибо за ответ! Но если virbrэто мостовой интерфейс, а мосты - это устройства второго уровня, для чего ему нужен IP-адрес (после каждого интерфейса virbr # есть IP-адреса)?
xczzhh
Я обновил ответ. Идея состоит в том, чтобы дать хосту IP-адрес в этой сети.
Стефан Шазелас
Еще раз спасибо за ответ. Я знаю, что две разные гостевые ОС, созданные KVM, могут использовать одни и те же файлы virbr, но что если у меня есть третья гостевая ОС, подключенная к другой virbr, и эти две virbrнаходятся в разных IP-сетях, что я должен сделать, чтобы эти две сети можно общаться друг с другом?
xczzhh
то же самое, что вы сделали бы с реальными переключателями. Некоторая машина, обычно хост, поскольку у нее есть IP-адрес в обеих сетях, будет маршрутизировать между двумя сетями. Вероятно, это происходит по умолчанию, но, возможно, вам нужно изменить конфигурацию брандмауэра на хосте.
Стефан Шазелас
Да, я пробовал, но проблема в том, что ОС A может пропинговать OS B, но OS B не может пропинговать OS A. Знаете ли вы, в чем может быть проблема ...?
Еще