Как включить сеть внутри контейнера systemd-nspawn r? - proUbuntu
0 голосов
/ 20 августа 2020

Как я могу заставить сеть работать внутри systemd-nspawn контейнера r в Ubuntu 20.04? Я хочу, чтобы контейнер r получал IP-адрес от локального DHCP-сервера r, выполнял поиск DNS с использованием моего настроенного name serve r и имел подключение к WAN / LAN.

Я запускаю контейнер r следующим образом:

sudo systemd-nspawn --private-network --bind-ro="/etc/resolv.conf" --machine="TEST" --directory="<path_to_root>"

Обратите внимание: я могу удалить --private-network из приведенной выше команды, чтобы заставить ее работать, но тогда мой контейнер r имеет тот же IP-адрес, что и мой хост-компьютер, и это не то, что я хочу.

resolv.conf

На моем хост-компьютере resolv.conf указывает на stub-resolv.conf:

/etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

Его содержимое:

nameserver 127.0.0.53
options edns0
search local

Имя моей локальной сети serve r равно 192.168.1.1.

IP-адреса

Если я выполню команда, ip addr внутри контейнера r, это результат:

ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever

Я вижу, что IP-адрес не был назначен контейнеру r службой DHCP моей сети r , поскольку адрес должен начинаться с 192.168.

Если я выполню команду ip addr на моем хост-компьютере, это будет вывод:

ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether bc:a8:a6:7f:9d:d8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.122/24 brd 192.168.1.255 scope global dynamic noprefixroute wlo1
       valid_lft 251661sec preferred_lft 251661sec
    inet6 fe80::ae8d:74ba:b255:6db3/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

Поиск DNS

Поиск DNS не работает:

ping www.ubuntu.com
ping: www.ubuntu.com: Temporary failure in name resolution

Я получаю сообщение об ошибке «Сеть недоступна» r, если я пытаюсь проверить связь с известными IP-адресами в моей локальной сети o r Inte rnet:

ping 8.8.8.8    
ping: connect: Network is unreachable

Как ни странно, я могу успешно пропинговать любой IP-адрес, который начинается с 127.0.0.???. (Не знаю, актуально ли это, но я подумал, что упомяну об этом).

...