LINUX.ORG.RU
ФорумAdmin

не хочет hostname выставлять по dhcp

 , ,


0

1

В /etc/conf.d/dhcpcd стоит DHCPCD_ARGS="-q -e force_hostname=YES", /etc/hostname я удалил, а имя всё равно localhost. По логам dnsmasq отдаёт корректное hostname.

Опытным путём было установлено что при следующем запросе (когда lease time истекает) оно таки выставляет правильный hostname. Вопрос: как сделать так чтобы оно сразу получало по сети нормальное имя?

★★★★★

Ответ на: комментарий от anonymous

эээ, примерно так:

interface=virbr
dhcp-range=172.16.6.10,172.16.6.254,120s
dhcp-host=52:54:00:0e:68:13,172.16.6.10,kvm-base

Я думаю это и есть опция 12. Но на всякий случай проверю в выхлопе dnsmasq...

true_admin ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Конкретно так. Смущает что запрос отправляется два раза.

available DHCP range: 172.16.5.1 -- 172.16.5.100
vendor class: dhcpcd-5.6.4:Linux-3.6.11-1-Intel
DHCPDISCOVER(intbr) 52:54:91:5e:38:bb
tags: known, intbr
DHCPOFFER(intbr) 172.16.5.9 52:54:91:5e:38:bb
requested options: 1:netmask, 121:classless-static-ute,
requested options: 3:router, 6:dns-server, 12:hostname, 
requested options: 26:mtu, 28:broadcast, 42:ntp-server, 
requested options: 54:server-identifier, 58:T1, 59:T2, 
next server: 172.16.5.0
sent size:  1 option: 53 message-type  2
sent size:  4 option: 54 server-identifier  172.16.5.0
sent size:  4 option: 51 lease-time  2m
sent size:  4 option: 58 T1  1m
sent size:  4 option: 59 T2  1m45s
sent size:  4 option:  1 netmask  255.255.0.0
sent size:  4 option: 28 broadcast  172.16.255.255
sent size:  4 option:  3 router  172.16.5.0
sent size:  4 option:  6 dns-server  172.16.5.0
sent size:  8 option: 12 hostname  perftest
available DHCP range: 172.16.5.1 -- 172.16.5.100
vendor class: dhcpcd-5.6.4:Linux-3.6.11-1-Intel
DHCPREQUEST(intbr) 172.16.5.9 52:54:91:5e:38:bb
tags: known, intbr
DHCPACK(intbr) 172.16.5.9 52:54:91:5e:38:bb perftest
requested options: 1:netmask, 121:classless-static-ute,
requested options: 3:router, 6:dns-server, 12:hostname, 
requested options: 26:mtu, 28:broadcast, 42:ntp-server, 
requested options: 54:server-identifier, 58:T1, 59:T2, 
next server: 172.16.5.0
sent size:  1 option: 53 message-type  5
sent size:  4 option: 54 server-identifier  172.16.5.0
sent size:  4 option: 51 lease-time  2m
sent size:  4 option: 58 T1  1m
sent size:  4 option: 59 T2  1m45s
sent size:  4 option:  1 netmask  255.255.0.0
sent size:  4 option: 28 broadcast  172.16.255.255
sent size:  4 option:  3 router  172.16.5.0
sent size:  4 option:  6 dns-server  172.16.5.0
sent size:  8 option: 12 hostname  perftest
true_admin ★★★★★
() автор топика
Ответ на: комментарий от anonymous

А вот логи с тачки.

Jan 21 21:50:04 localhost kernel: IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Jan 21 21:50:04 localhost ifplugd[159]: Executing '/etc/ifplugd/netcfg.action eth0 up'.
Jan 21 21:50:04 localhost ifplugd[159]: client: up
Jan 21 21:50:04 localhost ifplugd[159]: client: loading eth0
Jan 21 21:50:04 localhost dhcpcd[310]: version 5.6.4 starting
Jan 21 21:50:04 localhost dhcpcd[310]: eth0: sending IPv6 Router Solicitation
Jan 21 21:50:04 localhost dhcpcd[310]: eth0: sendmsg: Cannot assign requested address
Jan 21 21:50:04 localhost dhcpcd[310]: eth0: broadcasting for a lease
Jan 21 21:50:04 localhost dhcpcd[310]: eth0: offered 172.16.5.9 from 172.16.5.0
Jan 21 21:50:04 localhost dhcpcd[310]: eth0: acknowledged 172.16.5.9 from 172.16.5.0
Jan 21 21:50:04 localhost dhcpcd[310]: eth0: checking for 172.16.5.9
Jan 21 21:50:08 localhost dhcpcd[310]: eth0: sending IPv6 Router Solicitation
Jan 21 21:50:10 localhost dhcpcd[310]: eth0: leased 172.16.5.9 for 120 seconds
Jan 21 21:50:10 perftest dhcpcd[310]: forked to background, child pid 335
Jan 21 21:50:10 localhost ifplugd[159]: client: :: eth0 up [done]
Jan 21 21:50:10 localhost ifplugd[159]: Program executed successfully.
Jan 21 21:50:12 localhost dhcpcd[335]: eth0: sending IPv6 Router Solicitation
Jan 21 21:50:16 localhost dhcpcd[335]: eth0: sending IPv6 Router Solicitation
Jan 21 21:50:16 localhost dhcpcd[335]: eth0: no IPv6 Routers available
Jan 21 21:51:10 localhost dhcpcd[335]: eth0: renewing lease of 172.16.5.9
Jan 21 21:51:10 localhost dhcpcd[335]: eth0: acknowledged 172.16.5.9 from 172.16.5.0
Jan 21 21:51:10 localhost dhcpcd[335]: eth0: leased 172.16.5.9 for 120 seconds
Jan 21 21:52:06 perftest dhcpcd[335]: eth0: renewing lease of 172.16.5.9
Jan 21 21:52:06 perftest dhcpcd[335]: eth0: acknowledged 172.16.5.9 from 172.16.5.0
Jan 21 21:52:06 perftest dhcpcd[335]: eth0: leased 172.16.5.9 for 120 seconds
Jan 21 21:52:56 perftest sshd[371]: Accepted publickey for root from 172.16.5.0 port 59419 ssh2
Jan 21 21:52:56 perftest sshd[371]: pam_unix_session(sshd:session): session opened for user root by (uid=0)
Jan 21 21:52:56 perftest systemd-logind[171]: New session 1 of user root.
Jan 21 21:52:59 perftest dhcpcd[335]: eth0: renewing lease of 172.16.5.9
Jan 21 21:52:59 perftest dhcpcd[335]: eth0: acknowledged 172.16.5.9 from 172.16.5.0
Jan 21 21:52:59 perftest dhcpcd[335]: eth0: leased 172.16.5.9 for 120 seconds

true_admin ★★★★★
() автор топика
Ответ на: комментарий от true_admin

Эта машина бутится по сети? Тогда смущать не должно, ибо первый раз адрес получает boot-клиент сетевухи, а второй раз уже ось.

anonymous
()
Ответ на: комментарий от anonymous

Эта машина бутится по сети?

не, примерно вот так:

kvm -smp 1 -m 1G -drive
file=/home/pomoika/img/arch64_perf1.qcow2,if=virtio,cache=unsafe
 -net nic,model=e1000,macaddr=52:54:91:5E:38:01
 -net tap,ifname=tap1,script=/etc/kvm-ifup.sh
 -vnc localhost:1
true_admin ★★★★★
() автор топика
Ответ на: комментарий от darkenshvein

да, щас создал пустой, ребутнулся, всё равно остаётся localhost

true_admin ★★★★★
() автор топика

Опытным путём было установлено что при следующем запросе (когда lease time истекает) оно таки выставляет правильный hostname

Наводит на мысль, что при первом запуске оно не считывает указанные опции. Можешь проверить? Ребутнуть и посмотреть c какими параметрами запущен?

anonymous
()
Ответ на: комментарий от anonymous

Наводит на мысль, что при первом запуске оно не считывает указанные опции.

не, читает. Смотри вывод вот тут: не хочет hostname выставлять по dhcp (комментарий)

Обрати внимание в какой момент hostname в логах поменялся. А так же вот на это: dhcpcd[310]: forked to background, child pid 335 . Т.е. это один и тот же dhcpcd.

Утром попробую заменить его на dhclient какой-нить...

true_admin ★★★★★
() автор топика
Ответ на: комментарий от anonymous

блин, с dhclient я вообще не вижу чтобы hostname правильно выставлялся.

Сделал вот так:

systemctl disable netcfg@eth0
systemctl enable dhcpcd@eth0

Теперь, пусть с задержкой в 10 секунд, но хостнейм выставляется сразу. Только бы не забыть багрепорт написать...

true_admin ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Там бывали захардкожены опции, надо посмотреть, не тот ли случай, вдруг он при первом запуске игнорит опции?

А это интересно. Есть такие строчки:

perftest dhcpcd[310]: forked to background, child pid 335
Jan 21 21:50:10 perftest dhcpcd[310]: forked to background, child pid 335
Jan 21 21:50:10 localhost ifplugd[159]: client: :: eth0 up [done]
Jan 21 21:50:10 localhost ifplugd[159]: Program executed successfully.

Тут ясно видно что хостнейм сменился на perftest и вдруг внезапно сменился обратно. Тут или systemd чудит или что-то в ifplugd... Хм, попробую вынести ifplugd, я его ставил в надежде сократить время получения ответа. У меня такое чувство что модуль ядра поднимается/инициализируется с задержкой: сама система грузится пару секунд, а вот сеть ещё секунд 5 поднимается. И я не смог понять почему.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от anonymous

А дистрибутив, версия какой?

arch linux, amd64

true_admin ★★★★★
() автор топика
Ответ на: комментарий от anonymous

ты вляпался в systemd

я думаю он тут ни при чём.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от true_admin

netcfg@eth0

Судя по этому https://bugs.archlinux.org/task/17223

Okay, in the past, dhcpcd had the "-h $HOSTNAME" option set in /etc/conf.d/dhcpcd by default. This isn't the case anymore. Netcfg doesn't use that file, but also doesn't have it set.

Может надо опции вручную задать через DHCP_OPTIONS в файле netcfg-профиля?

risenshnobel ★★★
()
Ответ на: комментарий от risenshnobel

нет, dhcp-сервер игнорирует хостнейм клиента и высылает свой. У меня 8 клонированных виртуалок, у них только MAC отличается. Вот dhcp-сервер знает кому какой хостнейм и адрес отдавать.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от risenshnobel

По-моему, я всё перепробовал. Так вот когда dhcpcd запущен через netcfg оно тупит. А если просто запускать dhcpcd через systemd то всё ОК без всяких ключей вообще.

true_admin ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.