做了一个新的镜像,然后用新镜像启动vm,启动后,发现vm的hostname没有变化。
hostname就变了,这就怪了,怎么回事,于是tcpdump抓包,看是否没有传过来hostname的项。
从上图中可以看出 dhcp server 基于udp协议,传输了很多option过来,很强大的感觉, Domain Name, Host Name, Router, DNS, MTU , IP地址。
传输过来了hostname,为什么主机的hostname没有变呢,于是比对其它系统,发现 /etc/hostname 不一样
于是把/etc/hostname 内容改成
localhost.localdomain
这样及可
如果是其它内容,dhcp client会认为不允许修改,所以不会更新hostname
在这次排查过程中,对dhcp也有了更进一步的理解, dhcp通过四次通信完成dhcp
1、dhcp discover 广播
2、dhcp ack 应答
3、dhcp request 请求
4、dhcp offer 提供ip
流程图如下:
hostname的配置在 dnsmasq --dhcp-hostsfile=/var/lib/neutron/dhcp/f48e6bad-f9e5-40c6-8d59-3f9d805d9892/host 参数--dhcp-hostsfile控制