Привет! Я поставил Turnkey-fileserver (LXC) для создания SMB/CIFS и NFS-шар с низким потреблением ресурсов и быстрой дисковой производительностью, чтобы не создавать отдельную виртуалку (да и потому что читал, что ставить такое прямо на хост — плохая идея). Проблема в том, что спустя пару дней я обычно не могу пропинговать сетевой интерфейс, остается только loop-back устройство:
Код:
root@turnkey-fileserver ~# ip -4 a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
Ошибка, которую вижу при проверке статуса сети:
Код:
root@turnkey-fileserver ~# systemctl status networking
* networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2022-05-28 20:14:42 CEST; 2 days ago
Docs: man:interfaces(5)
Process: 77 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=1/FAILURE)
Main PID: 77 (code=exited, status=1/FAILURE)
CPU: 118ms
May 28 20:14:32 turnkey-fileserver ifup[77]: udhcpc: sending discover
May 28 20:14:35 turnkey-fileserver ifup[77]: udhcpc: sending discover
May 28 20:14:38 turnkey-fileserver ifup[77]: udhcpc: sending discover
May 28 20:14:42 turnkey-fileserver ifup[77]: /etc/udhcpc/default.script: Lease failed:
May 28 20:14:42 turnkey-fileserver ifup[77]: udhcpc: no lease, failing
May 28 20:14:42 turnkey-fileserver ifup[77]: ifup: failed to bring up eth0
May 28 20:14:42 turnkey-fileserver systemd[1]: networking.service: Main process exited, code=exited, sta
May 28 20:14:42 turnkey-fileserver systemd[1]: networking.service: Failed with result 'exit-code'.
May 28 20:14:42 turnkey-fileserver systemd[1]: Failed to start Raise network interfaces.
May 28 20:14:42 turnkey-fileserver systemd[1]: networking.service: Consumed 118ms CPU time.
Я пытался искать похожие случаи и нашёл вот это: с ответом: «Думаю, DHCP-аренда больше не обновляется. Я бы поставил статический IP.» — но нет. У меня используется pfSense (виртуализирован на сервере Proxmox), и все остальные устройства получают обновление DHCP-аренды без проблем. Так что, по-моему, проблема не в DHCP-сервере...
Я могу (хоть и неудобно, приходится заходить в LXC вручную, а это не должно быть нужно регулярно, сеть должна всегда работать, как у остальных устройств) поднять сеть командой:
Код:
root@turnkey-fileserver ~# systemctl restart networking
root@turnkey-fileserver ~# systemctl status networking
* networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2022-05-30 22:09:23 CEST; 5s ago
Docs: man:interfaces(5)
Process: 2646 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=0/SUCCESS)
Main PID: 2646 (code=exited, status=0/SUCCESS)
Tasks: 1 (limit: 17848)
Memory: 340.0K
CPU: 256ms
CGroup: /system.slice/networking.service
`-2684 /sbin/udhcpc -n -p /run/udhcpc.eth0.pid -i eth0
May 30 22:09:23 turnkey-fileserver systemd[1]: Starting Raise network interfaces...
May 30 22:09:23 turnkey-fileserver ifup[2646]: udhcpc: started, v1.30.1
May 30 22:09:23 turnkey-fileserver ifup[2646]: udhcpc: sending discover
May 30 22:09:23 turnkey-fileserver ifup[2646]: udhcpc: sending select for 192.168.100.10
May 30 22:09:23 turnkey-fileserver ifup[2646]: udhcpc: lease of 192.168.100.10 obtained, lease time 7200
May 30 22:09:23 turnkey-fileserver ifup[2646]: /etc/udhcpc/default.script: Resetting default routes
May 30 22:09:23 turnkey-fileserver ifup[2646]: SIOCDELRT: No such process
May 30 22:09:23 turnkey-fileserver ifup[2646]: /etc/udhcpc/default.script: Adding DNS 192.168.100.1
May 30 22:09:23 turnkey-fileserver ifup[2646]: /etc/resolvconf/update.d/libc: Warning: /etc/resolv.conf
May 30 22:09:23 turnkey-fileserver systemd[1]: Started Raise network interfaces.
root@turnkey-fileserver ~# ip -4 a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0@if9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link-netnsid 0
inet 192.168.100.10/24 brd 192.168.100.255 scope global eth0
valid_lft forever preferred_lft forever
Ещё нашёл эту ветку и ответ: , где советуют изменить в файле /etc/network/interfaces строку «auto eth0» на «allow-hotplug eth0» (с последующей строкой «iface eth0 inet dhcp»). Это действительно помогло стабилизировать сеть!
Расскажу подробнее, потому что это, собственно, мой вопрос (выше — просто контекст):
БЫЛО — /etc/network/interfaces (на LXC fileserver):
Код:
# UNCONFIGURED INTERFACES
# remove the above line if you edit this file
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
СТАЛО — /etc/network/interfaces (на LXC fileserver):
Код:
# UNCONFIGURED INTERFACES
# remove the above line if you edit this file
auto lo
iface lo inet loopback
# "auto eth0" заменено на "allow-hotplug eth0", но
# после перезагрузки автоматически вставляется "auto eth0":
# (попытка избежать, чтобы eth0 иногда исчезал)
allow-hotplug eth0
auto eth0
iface eth0 inet dhcp
Да, я знаю, что не убрал верхнюю строку, хотя и менял файл. Но почему именно «allow-hotplug» помогает или отличается? В официальных мануалах этого не встречал, но на сайте ask-ubuntu (ссылка выше) делается упор на это. Может, просто не понимаю. Это обычно рекомендовано для LXC? Или связано с тем, что eth0 — виртуальный мост? (Если да, то я таких рекомендаций не видел.)
И ещё детали:
У меня система — небольшой маломощный HP t730, на нём работает pfSense. Сетевой интерфейс настроен как vmbr0 «Linux Bridge», который в LXC в вкладке «Network» настроен как мост с IP «dhcp». Этот же мост используется в pfSense-VM, где в настройках «Hardware» значение vmbr0 выставлено как сетевое устройство с «no VLAN», модель «VirtIO (paravirtualized)» и без галок в «Firewall», «Disconnect» и без ограничений по скорости (Rate limit пусто). Multiqueue не активирован.
Я думаю, что причина в LXC, хотя мост используется и в pfSense — просто к слову, чтобы показать, что NIC — не физический сетевой интерфейс...
Кто-нибудь может что-то посоветовать? Буду благодарен, если узнаю точно, что это рекомендуемое решение (и было бы интересно понять, почему именно оно работает), спасибо!
Код:
root@turnkey-fileserver ~# ip -4 a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
Ошибка, которую вижу при проверке статуса сети:
Код:
root@turnkey-fileserver ~# systemctl status networking
* networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2022-05-28 20:14:42 CEST; 2 days ago
Docs: man:interfaces(5)
Process: 77 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=1/FAILURE)
Main PID: 77 (code=exited, status=1/FAILURE)
CPU: 118ms
May 28 20:14:32 turnkey-fileserver ifup[77]: udhcpc: sending discover
May 28 20:14:35 turnkey-fileserver ifup[77]: udhcpc: sending discover
May 28 20:14:38 turnkey-fileserver ifup[77]: udhcpc: sending discover
May 28 20:14:42 turnkey-fileserver ifup[77]: /etc/udhcpc/default.script: Lease failed:
May 28 20:14:42 turnkey-fileserver ifup[77]: udhcpc: no lease, failing
May 28 20:14:42 turnkey-fileserver ifup[77]: ifup: failed to bring up eth0
May 28 20:14:42 turnkey-fileserver systemd[1]: networking.service: Main process exited, code=exited, sta
May 28 20:14:42 turnkey-fileserver systemd[1]: networking.service: Failed with result 'exit-code'.
May 28 20:14:42 turnkey-fileserver systemd[1]: Failed to start Raise network interfaces.
May 28 20:14:42 turnkey-fileserver systemd[1]: networking.service: Consumed 118ms CPU time.
Я пытался искать похожие случаи и нашёл вот это: с ответом: «Думаю, DHCP-аренда больше не обновляется. Я бы поставил статический IP.» — но нет. У меня используется pfSense (виртуализирован на сервере Proxmox), и все остальные устройства получают обновление DHCP-аренды без проблем. Так что, по-моему, проблема не в DHCP-сервере...
Я могу (хоть и неудобно, приходится заходить в LXC вручную, а это не должно быть нужно регулярно, сеть должна всегда работать, как у остальных устройств) поднять сеть командой:
Код:
root@turnkey-fileserver ~# systemctl restart networking
root@turnkey-fileserver ~# systemctl status networking
* networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2022-05-30 22:09:23 CEST; 5s ago
Docs: man:interfaces(5)
Process: 2646 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=0/SUCCESS)
Main PID: 2646 (code=exited, status=0/SUCCESS)
Tasks: 1 (limit: 17848)
Memory: 340.0K
CPU: 256ms
CGroup: /system.slice/networking.service
`-2684 /sbin/udhcpc -n -p /run/udhcpc.eth0.pid -i eth0
May 30 22:09:23 turnkey-fileserver systemd[1]: Starting Raise network interfaces...
May 30 22:09:23 turnkey-fileserver ifup[2646]: udhcpc: started, v1.30.1
May 30 22:09:23 turnkey-fileserver ifup[2646]: udhcpc: sending discover
May 30 22:09:23 turnkey-fileserver ifup[2646]: udhcpc: sending select for 192.168.100.10
May 30 22:09:23 turnkey-fileserver ifup[2646]: udhcpc: lease of 192.168.100.10 obtained, lease time 7200
May 30 22:09:23 turnkey-fileserver ifup[2646]: /etc/udhcpc/default.script: Resetting default routes
May 30 22:09:23 turnkey-fileserver ifup[2646]: SIOCDELRT: No such process
May 30 22:09:23 turnkey-fileserver ifup[2646]: /etc/udhcpc/default.script: Adding DNS 192.168.100.1
May 30 22:09:23 turnkey-fileserver ifup[2646]: /etc/resolvconf/update.d/libc: Warning: /etc/resolv.conf
May 30 22:09:23 turnkey-fileserver systemd[1]: Started Raise network interfaces.
root@turnkey-fileserver ~# ip -4 a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0@if9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link-netnsid 0
inet 192.168.100.10/24 brd 192.168.100.255 scope global eth0
valid_lft forever preferred_lft forever
Ещё нашёл эту ветку и ответ: , где советуют изменить в файле /etc/network/interfaces строку «auto eth0» на «allow-hotplug eth0» (с последующей строкой «iface eth0 inet dhcp»). Это действительно помогло стабилизировать сеть!
Расскажу подробнее, потому что это, собственно, мой вопрос (выше — просто контекст):
БЫЛО — /etc/network/interfaces (на LXC fileserver):
Код:
# UNCONFIGURED INTERFACES
# remove the above line if you edit this file
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
СТАЛО — /etc/network/interfaces (на LXC fileserver):
Код:
# UNCONFIGURED INTERFACES
# remove the above line if you edit this file
auto lo
iface lo inet loopback
# "auto eth0" заменено на "allow-hotplug eth0", но
# после перезагрузки автоматически вставляется "auto eth0":
# (попытка избежать, чтобы eth0 иногда исчезал)
allow-hotplug eth0
auto eth0
iface eth0 inet dhcp
Да, я знаю, что не убрал верхнюю строку, хотя и менял файл. Но почему именно «allow-hotplug» помогает или отличается? В официальных мануалах этого не встречал, но на сайте ask-ubuntu (ссылка выше) делается упор на это. Может, просто не понимаю. Это обычно рекомендовано для LXC? Или связано с тем, что eth0 — виртуальный мост? (Если да, то я таких рекомендаций не видел.)
И ещё детали:
У меня система — небольшой маломощный HP t730, на нём работает pfSense. Сетевой интерфейс настроен как vmbr0 «Linux Bridge», который в LXC в вкладке «Network» настроен как мост с IP «dhcp». Этот же мост используется в pfSense-VM, где в настройках «Hardware» значение vmbr0 выставлено как сетевое устройство с «no VLAN», модель «VirtIO (paravirtualized)» и без галок в «Firewall», «Disconnect» и без ограничений по скорости (Rate limit пусто). Multiqueue не активирован.
Я думаю, что причина в LXC, хотя мост используется и в pfSense — просто к слову, чтобы показать, что NIC — не физический сетевой интерфейс...
Кто-нибудь может что-то посоветовать? Буду благодарен, если узнаю точно, что это рекомендуемое решение (и было бы интересно понять, почему именно оно работает), спасибо!
