[make-initrd] [devel] syslinux

Michael A. Kangin mak at complife.ru
Mon Apr 22 02:08:57 MSK 2019


On 04/21/2019 05:44 PM, Michael A. Kangin wrote:

> Замечания, появляющиеся в ходе тестирования сети, предпочтительней 
> оформлять багами или для начала лучше писать сюда (для обсуждения и 
> понимания, баг это или фича)?

Давайте попробую пока тут изложить.


В образ initrd не попадает модуль ipv6, поэтому эти конфигурации пока 
проверить не удалось, попробую завтра добавить этот модуль.
В логах (/var/log/ueventd.log):
[2019-04-21 13:28:21] uevent-handler: Running network handler ...
modprobe: FATAL: Module ipv6 not found in directory 
/lib/modules/5.0.6-un-def-alt1



Если не указывать интерфейс, то согласно документации,
ip={on|any|dhcp|dhcp4|dhcp6} get configuration from DHCP server for all 
interfaces.
Однако, под "all interfaces" понимается и lo тоже. И мы имеем 
16секундную задержку в инициализации сети, пока идёт попытка получить 
адрес на lo:

[2019-04-21 13:28:22] 030-network: lo: trying to obtain configuration 
from dhcp ...
[2019-04-21 13:28:22] 030-network: run: ip -6 link set dev lo up
[2019-04-21 13:28:22] 030-network: run: udhcpc -v -n -i lo -t 3 -T 5 -s 
/lib/network/udhcpc4.script -p /var/run/udcpc.lo.pid
[2019-04-21 13:28:22] 030-network: lo: waiting 16 seconds for 
configuration by dhcp ...
[2019-04-21 13:28:37] 030-network: lo: dhcp done
[2019-04-21 13:28:38] 030-network: eth0: trying to obtain configuration 
from dhcp ...
(обратите внимание на таймстампы)



Нотации
ip=<interface>:<autoconf>[:[<mtu>][:<macaddr>]]
ip=<ipaddr>:[<peer>]:<gw>:<netmask>:<hostname>:<interface>:<autoconf>[:[<mtu>][:<macaddr>]]
ip=<ipaddr>:[<peer>]:<gw>:<netmask>:<hostname>:<interface>:<autoconf>[:[<dns1>][:<dns2>]]
работают согласно документации, за некоторыми исключениями:

- фактически, это
ip=[<ipaddr>]:[<peer>]:[gw]:[<netmask>]:[<hostname>]:<interface>:<autoconf>

- фразой "Optionally set <macaddr> on the <interface>" на самом деле 
описывается поведение "переименование сетевого интерфейса, имеющего 
MAC-адрес <macaddr> в новое имя <interface>, (если оно свободно, иначе 
ошибка)".

- mtu на сам сетевой интерфейс не применяется. При этом в конфигурации 
есть такая запись:
/etc/network/ifaces/eth1:# cat iplink
mtu 9000



Не знаю, являются ли ошибкой следующие поведения:
- при конфигурации "ip=dhcp nameserver=8.8.8.8" в /etc/resolv.conf 
попадают сервера, как указанные вручную, так и добытые с помощью DHCP. Я 
могу представить ситуацию, когда хотелось бы избавиться от автоматически 
предлагаемых серверов вообще (кроме того, был бы нелишний параметр для 
search - для подстановки домена)

- конфигурация типа 
"ip=192.168.222.25::192.168.222.20:25:myhost:eth2:dhcp" какая-то 
валидно-бессмысленная, вся информация игнорируется и на eth2 просто 
получается dhcp.




В порядке фичреквеста, я бы кстати предложил поддерживать для статики 
еще одну нотацию, более логично-лаконичную:
ip=<interface>:<ipaddr>[/<netmask>][:<gw>[:<dns>[:[<mtu>]:[mac]]]]
уф, надеюсь не запутался скобочках

С примерами:
ip=eth0:10.255.255.1 #(подразумевается /32)
ip=eth0:123.45.67.89/24:123.45.67.1
ip=stor0:192.168.7.235/255.255.255.128:192.168.7.129:192.168.1.1:9000:fe:fe:de:ad:be:af


И поддержка вланов тоже была бы совершенно не лишней - в датацентрах 
dhcp & tftp может не нейтивом подаваться, а одним из вланов в транке на 
порту.



More information about the Make-initrd mailing list