Создание сети с помощью lxd на xenial-backports

Я хочу начать использовать контейнер lxc на машине Xenial Ubuntu 16.04. Я использую lxd 2.21 из репозитория xenial-backports. Он работает отлично до такой степени, что я хочу предоставить доступ к своим контейнерам.

Я хочу создать новое мостовое устройство, которое должно использовать NAT для всех подключений к Интернету с помощью команды lxc network create lxdnatbr0. Эта команда дает сообщение об ошибке

error: Failed to run: dnsmasq --strict-order --bind-interfaces --pid-file=/var/lib/lxd/networks/lxdnatbr0/dnsmasq.pid --except-interface=lo --interface=lxdnatbr0 --quiet-dhcp --quiet-dhcp6 --quiet-ra --listen-address=10.95.139.1 --dhcp-no-override --dhcp-authoritative --dhcp-leasefile=/var/lib/lxd/networks/lxdnatbr0/dnsmasq.leases --dhcp-hostsfile=/var/lib/lxd/networks/lxdnatbr0/dnsmasq.hosts --dhcp-range 10.95.139.2,10.95.139.254,1h --listen-address=fd42:2c73:3326:bbb7::1 --enable-ra --dhcp-range ::,constructor:lxdnatbr0,ra-stateless,ra-names -s lxd -S /lxd/ --conf-file=/var/lib/lxd/networks/lxdnatbr0/dnsmasq.raw -u lxd: dnsmasq: failed to create listening socket for 10.95.139.1: Address already in use

. В этот момент у меня есть три других процесса dnsmasq. Два из них идут из libvirt, один из NetworkManager:

$ ps ax|grep dnsmasq
3576 ? S 0:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper 3577 ? S 0:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper 5525 ? S 0:00 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/var/run/NetworkManager/dnsmasq.pid --listen-address=127.0.1.1 --cache-size=0 --conf-file=/dev/null --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d 11318 pts/1 S+ 0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn dnsmasq

Сначала я предположил, что это была ошибка libvirt, у которой был другой dnsmasq . Но даже когда я это прекратил, остался еще один процесс dnsmasq, начатый NetworkManager.

Кто-нибудь знает, как я могу это сделать?

0
задан 29 January 2018 в 11:49

2 ответа

В сообщении об ошибке говорится:

failed to create listening socket for 10.95.139.1: Address already in use

Когда вы создаете новую сеть с lxc network create, LXD создает новый dnsmasq процесс для вас, процесс, который привязывается к новому интерфейсу и только что.

Странно, что он жалуется, что адрес уже используется, потому что новый dnsmasq находится на отдельном независимом интерфейсе. Чтобы убедиться, что нет состояния гонки, попробуйте

lxc network delete lxdnatbr0

, а затем создайте его снова.

Если это не работает, запустите

ps ax | grep dnsmasq

чтобы получить список всех процессов dnsmasq.

0
ответ дан 17 July 2018 в 22:13

В сообщении об ошибке говорится:

failed to create listening socket for 10.95.139.1: Address already in use

Когда вы создаете новую сеть с lxc network create, LXD создает новый dnsmasq процесс для вас, процесс, который привязывается к новому интерфейсу и только что.

Странно, что он жалуется, что адрес уже используется, потому что новый dnsmasq находится на отдельном независимом интерфейсе. Чтобы убедиться, что нет состояния гонки, попробуйте

lxc network delete lxdnatbr0

, а затем создайте его снова.

Если это не работает, запустите

ps ax | grep dnsmasq

чтобы получить список всех процессов dnsmasq.

0
ответ дан 23 July 2018 в 22:52
  • 1
    Удаление сети с помощью lxc не работает, поскольку оно никогда не создавалось в первую очередь. У меня три процесса dnsmasq, которые работают нормально (см. Мой обновленный вопрос) – mat 29 January 2018 в 11:49

Другие вопросы по тегам:

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