Как я могу передать интерфейс Macvtap в контейнер LXC с libvirt - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть такой интерфейс macvtap:

$ ip link add link wlan0 name gitea type macvtap
$ ip link set gitea address 68:61:6b:67:69:74 up
$ ip link show gitea

10: gitea@wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 500
    link/ether 68:61:6b:67:69:74 brd ff:ff:ff:ff:ff:ff

И у меня есть шаблон xml для моего контейнера gitea:

    <devices>
        <emulator>/usr/lib/libvirt/libvirt_lxc</emulator>
        <filesystem type='mount'>
            <source dir='/containers/prod/gitea' />
            <target dir='/' />
        </filesystem>
        <console type='pty' />
        <interface type='??'>
            <source dev='gitea'/>
        </filesystem>
    </devices>

Но что я должен написать вчасть интерфейса для передачи созданного интерфейса macvtap в контейнер или что я должен написать для воссоздания интерфейса, если мы не можем передать его напрямую.

Заранее благодарим вас за внимание.

1 Ответ

0 голосов
/ 11 ноября 2019

libvirt имеет встроенную поддержку для создания интерфейсов Macvtap по требованию. См .: https://libvirt.org/formatdomain.html#elementsNICSDirect

В вашем случае это будет выглядеть примерно так:

<interface type='direct'>
  <source dev='wlan0' mode='bridge'/>
</interface>

Но это не даст вам название «gitea». Другой вариант может быть type = 'ethernet', но у меня нет особого опыта в этом, я не уверен, будет ли он работать для вас. Я думаю, что XML будет выглядеть как

<interface type='ethernet'>
  <target dev='gitea'/>
</interface>

(Также IIRC Macvtap не работает с Wi-Fi-устройствами, поэтому не уверен, что ваша установка будет работать в любом случае)

...