У меня есть виртуальная машина Ubuntu Server 20.04, работающая на моем сервере FreeNAS 11.3-U5.
Моя проблема в том, что моему виртуальному серверу Ubuntu не назначается IP-адрес.
У меня Edge Router X с подсетью 10.17.16.0/21 и шлюзом 10.17.17.4. DHCP-сервер работает на Edge Router X.
Недавно я перешел с NetGear r7000 на свой текущий маршрутизатор Edge Router X (ERX) и использую r7000 только как точку доступа с отключенным DHCP. После многих лет надежной работы dd-wrt у него начались странные проблемы. После обновления до ERX все стало как надо, и всем устройствам в моей сети был назначен IP-адрес DHCP-сервером Edge Router X, за исключением моей виртуальной виртуальной машины.
В прошлом у меня была проблема с моим виртуальным сервером Ubuntu на FreeNAS. Проблема и решение заключались в редактировании /etc/netplan/00-installer-config.yaml
и изменении enp0s5
, как enp0s4
показано здесь "https://www.truenas.com/community/threads/freenas-11-2-u3-ubuntu-18-04-server-in-vm-has-no-internet-access.75684/" Эта проблема была связана с удалением виртуального интерфейса CD ROM и изменением номера/позиции сетевого интерфейса. Это не текущая проблема, но она может быть как-то связана. В настоящее время интерфейс назначен правильному физическому порту и использует интерфейс VIRTIO
.
Текущая /etc/netplan/00-installer-config.yaml
конфигурация:
network:
ethernets:
enp0s4:
dhcp4: true
version: 2
Я думаю, что есть что-то забавное в том, как взаимодействуют Ubuntu Server, FreeNAS и виртуальная сетевая карта.
> ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default glen 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: enp0s4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default glen 1000
link/ether 00:a0:98:29:a9:c4 brd ff:ff:ff:ff:ff:ff
inet6 fe80,2a0:98ff:fe29:a9c4/64 scope link
valid_lft forever preferred_lft forever
Как видите, на виртуальном интерфейсе enp0s4 нет адреса IPv4.
При загрузке появляется сообщение об ошибке:
«Выполняется задание по запуску для ожидания настройки сети».
Поиск этой ошибки дает предложения перезапустить сетевую службу и/или отредактировать вышеупомянутый yaml
файл, добавив строку:
optional: true
. Ни один из этих вариантов не работает.
Запуск ip route
ничего не даёт.
ping google.com
возвращается ping: google.com: Temporary failure in name resolution
.
ip add 10.17.17.99 dev enp0s4
Добавляет inet 10.17.17.99/32 scope global enp0s4
к интерфейсу enp0s4.
ip route add 10.17.17.4 dev enp0s4
добавляет маршрут 10.17.17.4 dev enp0s4 scope link
в таблицу маршрутизации (ранее пустую).
Ни один из этих вариантов, ни вместе, ни по отдельности, не решает проблему.
Если я попробую выполнить вышеуказанные команды с подсетью \21, они не сработают.
Единственное важное изменение, которое я сделал, которое совпадает с этой проблемой, заключается в том, что когда я поменял свои маршрутизаторы, я изменил свою сеть с 10.17.17.0 на 10.17.16.0, потому что для увеличения моего диапазона IP с подсетью \21 мне пришлось это сделать, иначе мой маршрутизатор сказал, что это недопустимая подсеть. Возможно, виртуальная машина каким-то образом зафиксировала шлюз или маску подсети и не обновляет их?
Мне бы очень хотелось понять, как полностью отключить/обновить весь сетевой интерфейс и заставить сервер запрашивать IP-адрес у моего маршрутизатора.
Любая помощь будет оценена по достоинству.