Не могу создавать порты в OVS

У меня есть хост Ubuntu с двумя виртуальными машинами, и я пытаюсь создать мост между двумя виртуальными машинами. У меня есть мост, скажем, br0, и я пытаюсь создать порт, скажем, tap0 и tap1 для двух виртуальных машин. Пока мне удалось создать мост, но когда я пытаюсь создать порт, я получаю следующую ошибку.

root@dpdk:~# ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev
root@dpdk:~# ovs-vsctl add-port br0 tap1
ovs-vsctl: Error detected while setting up 'tap1'.  See ovs-vswitchd log for details.
root@dpdk:~# sudo ovs-vsctl show
4c3a769e-f900-4c8d-81a7-ba685d4e364a
Bridge "br0"
    Port "tap1"
        Interface "tap1"
            error: "could not open network device tap1 (No such device)"
    Port "br0"
        Interface "br0"
            type: internal
ovs_version: "2.5.2"

Я делаю это для запуска приложения DPDK pktgen.


person Haritha    schedule 02.02.2018    source источник


Ответы (1)


Вам необходимо сначала создать устройство касания.

Вы можете либо создать его самостоятельно:

$ tunctl -t tap0
$ ip link set tap0 up
$ ovs-vsctl add-port br0 tap0

или позвольте QEMU/KVM создать его для вас:

$ cat << 'EOF' > /etc/ovs-ifup
#!/bin/sh
switch='br0'
ip link set $1 up
ovs-vsctl add-port ${switch} $1
EOF
$ cat << 'EOF' > /etc/ovs-ifdown
#!/bin/sh
switch='br0'
ip addr flush dev $1
ip link set $1 down
ovs-vsctl del-port ${switch} $1
EOF
$ kvm -m 512 -net nic,macaddr=00:11:22:EE:EE:EE -net \
tap,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown -drive \
file=/path/to/disk-image,boot=on

(Первые две команды создают два служебных сценария в качестве обратных вызовов для kvm. См. Открыть документацию vSwitch< /а>.)

person pchaigno    schedule 04.02.2018
comment
Мне нужно сначала запустить ovs-vsctl add-port br0 tap0 и ovs-vsctl set int tap0 type=internal, а затем ip tuntap add dev tap0 mode tap, чтобы все заработало; если я сначала создам устройство ответвления, оно будет отображаться как не носитель и не будет получать никаких пакетов. - person Jamesits; 29.02.2020