1 DHCP 客户端将覆盖 GCE 主机名
GCE 的网卡 IP 地址是由 DHCP 分配,同时,DHCP 服务器还将发送 DNS 服务器和主机名,使用的 DHCP Option 有: DHCP Option 6-DNS 服务器,以及 DHCP Option 12-主机名。
NetworkManager DHCP 租约信息
cat /var/lib/NetworkManager/dhclient-xxx.lease:
系统日志信息:
点击以下文件:
cat /etc/dhcp/dhclient.d/google_hostname.sh
点击文件
cat /usr/bin/google_set_hostname
如果您已经修改了 DNS 服务器和主机名,则当 dhcp 客户端请求 IP 地址时,配置将会被覆盖。
操作流程如下:
1.DHCP Server ->
2.NetworkManager DHCP Option ->
3.DHCP client ->
4.google_set_hostname ->
5.change DNS server & hostname(更改 DNS 服务器或者主机名)
这篇文章将说明如何保持主机名(hostname)不被改变。
2 解决方案
根据上面的描述,我们可以更改以下的任何一项:
1.Don’t receive NetworkManager config on dhcp option 12
2.Change /etc/dhcp/dhclient.d/google_hostname.sh
3.Change /usr/bin/google_set_hostname
Can prohibit DHCP change the hostname.
这样做,就可以禁止 DHCP 更改主机名。
2.1 更改 NetworkManager 的配置
更改 NetworkManager 配置的目的,是取代 DHCP 选项 12-hostname。 DHCP 客户端将不再通过 DHCP 接收主机名。
2.2.1 设置 /etc/hostname
设置静态主机名:
echo whvm05.weiheng.ink > /etc/hostname
2.1.2 取代 dhcp 选项的 12-hostname
Create a config file, add config to supersede the dhcp option:
创建一个配置文件,添加配置以取代 dhcp 选项:
touch /etc/dhcp/dhclient-eth0.conf
echo ‘supersede host-name “”;’ >> /etc/dhcp/dhclient-eth0.conf
2.1.3 重新启动 NetworkManager
systemctl 重新启动 NetworkManager
检查配置:
cat /var/lib/NetworkManager/dhclient-eth0.conf
NetworkManager 自动生成的配置文件将包含 2.1.2 中的先前配置。
2.1.4 测试
如果重新引导 VM ,则主机名仍保持为 / etc / hostname 配置。
2.2 更改 google_hostname.sh
2.2.1 编辑 /etc/hostname 文件
echo whvm03.weiheng.ink > /etc/hostname
2.2.2 移除 yum-cron
任何配置的改变都会有 yum-cron 的存储,所以我们需要移除它们:
yum remove yum-cron -y
2.2.3 编辑 google_hostname.sh
将 “google_set_hostname” 替换为“:”:
sed -i “1,$ s/google_set_hostname/:/g” /etc/dhcp/dhclient.d/google_hostname.sh
cat /etc/dhcp/dhclient.d/google_hostname.sh
2.2.4 设置 hostname
hostname `cat /etc/hostname
2.2.5 测试
在 reboot 之后,主机名仍还没有变化:
2.3 更改 google_set_hostname
2.3.1 编辑 google_set_hostname
设置新的 new_host_name
sed -i ‘1 anew_host_name=cat /etc/hostname
’ /usr/bin/google_set_hostname
sed -i ‘1,$ s/%%.*//g’ /usr/bin/google_set_hostname
2.3.2 移除 yum-cron
正如 2.2 中提到的那样,需要移除 yum-cron ,以保证配置没有随之改变:
yum remove yum-cron -y
2.3.3 测试
3.总结
谷歌计算引擎的代理将更改虚拟机的主机名,通过更改 dhcp 客户端配置,以及谷歌代理脚本,可以保持主机名不变。
文章版权归作者所有,未经许可不得转载。
评论