Как я могу создать виртуальный сетевой интерфейс, например virbr0-nic
? Я пытаюсь найти способ создать NIC, например virbr0-nic
но все, что я могу найти в Интернете, - это как создать интерфейс, прикрепленный к физическому интерфейсу, например eth0:0
. Когда я пишу
# brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.525400e0af01 yes virbr0-nic
virbr1 8000.525400e8a6b1 yes virbr1-nic
vnet1
Так virbr0
это мост, к которому virbr0-nic
прилагается. Так как virbr0-nic
и vnet1
создан?
Это фиктивные устройства. Вы можете запустить
modprobe dummy
Чтобы создать сетевой интерфейс под названием dummy0
.
Если вам нужно более одного устройства, вы можете создать, скажем, 5 с
modprobe dummy numdummies=5
Затем вы можете управлять этими устройствами, как и любым другим сетевым устройством.
Дайте ему MAC-адрес с
ip link set dummy0 address aa:aa:aa:bb:bb:bb
Дайте ему IP-адрес с
ip addr add 10.0.0.1/24 dev dummy0
Добавьте его к существующему мосту с помощью
brctl addif virbr0 dummy0
Настройте его, установите, отключите NAT и так далее.
Для этой цели libvirt использует устройство TUN. Вы можете создать это устройство вручную, выполнив следующую команду:
# /usr/bin/tunctl -t virbr0-nic
virbr0-nic
означает виртуальный мост NIC.
По сути, это мост между вашей физической сетевой картой и виртуальной сетевой картой вашей виртуальной машины.
Для управления мостовым интерфейсом вы можете использовать brctl
команда. Вы можете перечислить все свои мостовые интерфейсы с помощью
brctl show
и добавляйте или изменяйте мосты в соответствии с вашими потребностями. Чтобы создать новый мост, используйте
brctl addbr <name>
где <name>
будет именем вашего нового моста (как virbr0-nic). Затем вы можете добавить интерфейсы к мосту с помощью
brctl addif <brname> <ifname>
Вы можете обратиться к страница руководства для дополнительной информации.
Непонятно, какие именно типы устройств virbr0-nic
и vnet1
находятся в вашей настройке. Есть несколько типов виртуальных устройств, которые может быть полезно включить в мост, некоторые из которых могут быть созданы с помощью ip
команда.
Одним из видов виртуальных устройств является veth
который создает пары подключенных виртуальных интерфейсов Ethernet.
ip link add veth0 type veth peer name veth1
В этом примере veth0
и veth1
- произвольные имена интерфейсов, которые я придумал для примера. Этот метод может быть полезен, например, если вы хотите переместить один из двух интерфейсов в другое сетевое пространство имен.
Другой вид виртуального интерфейса - это vlan
где вы создаете единый виртуальный интерфейс Ethernet, присоединенный к определенному тегу 802.1q на физическом интерфейсе:
ip link add link eth0 name eth0.10 type vlan id 10
Существует справочная страница с информацией о еще большем количестве типов виртуальных интерфейсов, которые можно создать с помощью ip
команда. Название страницы руководства зависит от того, какую версию вы установили, я видел ее под названием ip-link
или просто ip
.
Кроме того, если вы используете какую-либо виртуализацию, существуют виртуальные интерфейсы, соединяющие хост и виртуальную машину. Их особенности зависят от используемого вами решения виртуализации.
но у меня нет этой вещи / usr / bin / tunctl -t virbr0-nic i, которая устанавливается из кабины, и я не могу найти вариант удаления, когда я буду использовать виртуальную машину, это нормально, когда она существует, но для сети с systemd-networkd у меня много проблем. Cockpit будет использовать Network-Manager и файлы конфигурации из него. после установки моя сеть выходит из строя, все устройства и приложения работают со многими сбоями.
Если вы проверите «ifconfig -a» после новой установки системы RHEL / CentOS 6,7, вы найдете интерфейсы virbr0 name. Вот пример из недавно установленной системы CentOS 7.
ifconfig -a
....
virbr0: flags=4099[UP,BROADCAST,MULTICAST] mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:d5:f2:0c txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0-nic: flags=4098[BROADCAST,MULTICAST] mtu 1500
ether 52:54:00:d5:f2:0c txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Что такое интерфейс virbr0 Интерфейс моста virbr0 создается сетевой конфигурацией libvirtd по умолчанию. libvirtd - это служба, которая обеспечивает основу для работы хоста в качестве гипервизора. Поэтому, если вы не используете виртуализацию xen, вы можете либо предотвратить активацию сети libvirtd по умолчанию при загрузке, либо запретить активацию самой libvirtd при загрузке. Первое предотвратит сетевое подключение любой гостевой виртуальной машины, подключенной к сети по умолчанию libvirtd, а второе предотвратит запуск виртуальных машин вообще. Что нормально, если вы его не используете. Отключить сеть по умолчанию libvirtd
Вы можете временно отключить сеть по умолчанию libvirtd с помощью команды virsh. Это не будет сохраняться после перезагрузки.
Чтобы навсегда отключить создание сети по умолчанию libvirtd при загрузке:
Удаление сети по умолчанию libvirtd Чтобы навсегда удалить сеть по умолчанию libvirtd:
virsh net-undefine default
Чтобы навсегда отключить запуск службы libvirtd при загрузке на RHEL5 и RHEL6:
chkconfig libvirtd off
Чтобы навсегда отключить запуск службы libvirtd при загрузке на RHEL7:
systemctl disable libvirtd.service