Настроить сеть между виртуальными машинами, используя сеть ответвлений с Nix?

Опция -o позволяет создавать пользователей с не -уникальными идентификаторами, только если вы также указываете числовое значение их UID с опцией -u в той же строке, например.:

# useradd -o huey -u 501
# useradd -o dewey -u 501
# useradd -o louie -u 501

Это позволяет настроить нескольких пользователей с одинаковыми правами и привилегиями, но с разными домашними каталогами и паролями.

0
18.02.2020, 02:04
2 ответа

Вы должны сохранить чистоту опций. Я имею в виду, что вы не можете смешивать объявление сети

-net nic,model=virtio-net-pci,macaddr=... -net user,restrict=[on|off]

с

-device virtio-net-pci,netdev=net0,mac=...  -netdev tap,ifname=tap0,id=net0,script=...,downscript=...

где первый вариант создает виртуальную локальную сеть частного диапазона 10.0.0.x/8, предоставляя гостевой виртуальной машине адрес DHCP 10.0.0.15, а (dis )позволяет гостевой виртуальной машине проходить через встроенный брандмауэр NAT. к сети хост-системы; в то время как показанная буквенная опция создает привязку виртуального интерфейса к интерфейсу tap0 хост-компьютера, где вы должны определить, к какому реальному интерфейсу подключен tap0.

Следовательно, если вы хотите соединить две виртуальные машины, скажем, VMA/tapA и VMB/tapB, вы можете соединить эти виртуальные машины вместе через мост, который можно определить, например, с помощью:

# ip link add name brAB type bridge
# ip link set dev  brAB up
# ip link set dev  tapA master brAB
# ip link set dev  tapB master brAB
# ip link set dev  tapA up
# ip link set dev  tapB up

Эта конфигурация создает изолированную сеть, соединяющую только VMA и VMB ! . Чтобы связать эту сеть с какой-либо свободной сетевой картой хоста или настроить другие сетевые схемы, вам нужно больше узнать о сетевой конфигурации реального хост-компьютера, например. о витальном переключении (openvswitch )или других возможностях.

Конечно, фиктивные интерфейсы tapA или tapB необходимо создать в контейнере, прежде чем вы попытаетесь их использовать. Вы можете сделать это, например, с помощью:

# ip tuntap add name tapA mode tap

команда.

1
28.04.2021, 23:22

Мне нужно было следующее:

qemu.networkingOptions = [
                           "-device e1000,netdev=abc,mac=52:55:00:d1:55:01"
                           "-netdev tap,id=abc,ifname=tapA,script=no,downscript=no"
                         ];

А во второй вм меняем адрес+интерфейс:

qemu.networkingOptions = [
                           "-device e1000,netdev=abc,mac=52:55:00:d1:55:02"
                           "-netdev tap,id=abc,ifname=tapB,script=no,downscript=no"
                         ];

Как упомянул @schweik, мне также нужно было настроить сеть, для чего я использовал следующий скрипт:

for i in "$@"
do
case $i in
    --down)
        ip link delete brAB
        ip link delete tapA
        ip link delete tapB
    ;;
    --up)

        ip link add name brAB type bridge
        ip link set dev brAB up

        ip tuntap add dev tapA mode tap user $(whoami)
        ip tuntap add dev tapB mode tap user $(whoami)

        ip link set dev tapA master brAB
        ip link set dev tapB master brAB
        ip link set dev tapA up
        ip link set dev tapB up
    ;;
esac
done
0
28.04.2021, 23:22

Теги

Похожие вопросы