Мне нужно создать сетевой мост для моих виртуальных машин qemu под Linux.
Я читаю руководства, официальную документацию и учебные пособия, но все еще не могу понять шаги.
Например, (из https://wiki.ubuntu.com/KvmWithBridge )
# The primary network interface
auto br0
iface br0 inet static
address 192.168.0.101
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
bridge_ports eth0
bridge_stp off
bridge_maxwait 5
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.0.4
dns-search mydomain.net
для меня это не имеет смысла:
192.168.0.101
что именно? Это шаблон, который повторяется во многих руководствах, руководствах и документации, смешивая слова без видимого значения (очевидно, мост должен иметь дело с IP-адресами ...).
Итак, я спрашиваю: как мне создать мост, чтобы мой экземпляр qemu
мог подключиться через мой eth0
через мост?
Я хотел бы использовать iproute2
и / etc / network / interfaces
и ничего больше для простоты.
Я постараюсь ответить на ваши вопросы.
Интерфейс моста не требует IP-адреса для переключения кадров между портами. Конечно, вы можете настроить интерфейс моста без IP-адреса. В этом случае ваш Linux-хост будет работать как простой коммутатор L2. Когда вы назначаете IP-адрес на интерфейсе моста, вы можете рассматривать ваш хост Linux как расширенный коммутатор L3.
Вам не нужно отключать интерфейс, чтобы добавить его в мост.
После ifup br0
в вашей системе Linux будет создан интерфейс br0
. Ему будет присвоен адрес 192.168.0.101
.
После запуска виртуальной машины qemu с соответствующими параметрами в вашей системе должен появиться дополнительный интерфейс. После этого вы можете добавить его в интерфейс br0
вручную с помощью команды
ip link set dev
. Вы можете написать короткий скрипт для добавления нового интерфейса ответвления в мост . Этот сценарий может быть помещен в специальный каталог и будет выполняться после запуска нового хоста qemu.
Если вы предпочитаете iproute2
, вы можете использовать его в файле интерфейсов, используя внутри pre- up
, up
, post-up
и другие утверждения.
Если я правильно вас понял, вы можете добавить что-то вроде в / etc / network / interfaces
файл, чтобы вызвать коснитесь
интерфейса и добавьте его в мост:
iface tap10 inet manual
pre-up /sbin/tunctl -t $IFACE -u root || true
pre-up /sbin/ip link set dev $IFACE master br0
up /sbin/ip link set dev $IFACE up
post-down /sbin/tunctl -d $IFACE || true
В командной строке запуска виртуальной машины qemu вы должны использовать что-то вроде этого:
-netdev tap,id=mynet0,ifname=tap10,script=no,downscript=no