Назад | Перейти на главную страницу

Контейнер LXC получает 2 IP-адреса

Я хочу иметь плоскую конфигурацию, в которой хост и гость имеют свои собственные статические адреса в сети. Однако по неизвестной причине контейнеру присвоено 2 адреса: 192.168.0.110 и 192.168.0.201. Меня интересует только один, 192.168.0.201.

Конфигурация сети хоста:

# Host /etc/network/interfaces
auto lxcbr0
iface lxcbr0 inet static
    bridge_ports p4p1
    bridge_stp off
    bridge_fd 0
    bridge_maxwait 0
    address 192.168.0.200
        netmask 255.255.255.0
        gateway 192.168.0.1
        dns-nameservers 192.168.0.1

Конфигурация гостя внутри хоста:

lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = lxcbr0
lxc.network.hwaddr = 00:16:3e:08:b6:78
lxc.network.ipv4 = 192.168.0.201/24

Конфигурация гостевой сети:

auto eth0
iface eth0 inet dhcp

Когда я запускаю контейнер и использую lxc-ls -f Я получил:

NAME  STATE    IPV4                          IPV6                                    AUTOSTART  
----------------------------------------------------------------------------------------------
name  RUNNING  192.168.0.110, 192.168.0.201  2607:fa48:6de9:f3a0:216:3eff:fe08:b678  YES    

Причина в том, что вы явно запросили два IP-адреса.

Во-первых, вы попросили хост настроить статический IP-адрес для контейнера, который активен при запуске контейнера. Тогда вы спросили контейнер для запроса второго IP-адреса с помощью DHCP.

Вы должны удалить эти две строки из /etc/network/interfaces если вам не нужен второй IP-адрес.

если у вас есть DHCP-сервер в этой сети, вы получите два IP-адреса, один от lxc dhcp-сервера, а второй от вашей сети DHCP