文/Google Cloud魏衡和盛駿
DHCP客戶端將覆蓋GCE主機(jī)名
GCE的網(wǎng)卡IP地址是由DHCP分配,同時(shí),DHCP服務(wù)器還將發(fā)送DNS服務(wù)器和主機(jī)名,使用的DHCP Option有:DHCP Option 6-DNS服務(wù)器,以及DHCP Option 12-主機(jī)名。
NetworkManager DHCP租約信息
cat/var/lib/NetworkManager/dhclient-xxx.lease:
系統(tǒng)日志信息:
點(diǎn)擊以下文件:
cat/etc/dhcp/dhclient.d/google_hostname.sh
點(diǎn)擊文件
cat/usr/bin/google_set_hostname
如果您已經(jīng)修改了DNS服務(wù)器和主機(jī)名,則當(dāng)dhcp客戶端請(qǐng)求IP地址時(shí),配置將會(huì)被覆蓋。
操作流程如下:
change DNS server & hostname(更改 DNS 服務(wù)器或者主機(jī)名)
這篇文章將說(shuō)明如何保持主機(jī)名(hostname)不被改變。
解決方案
根據(jù)上面的描述,我們可以更改以下的任何一項(xiàng):
Don’t receive NetworkManager config on dhcp option 12
Change/etc/dhcp/dhclient.d/google_hostname.sh
Change/usr/bin/google_set_hostname
Can prohibit DHCP change the hostname.
這樣做,就可以禁止DHCP更改主機(jī)名。
2.1更改NetworkManager的配置
更改NetworkManager配置的目的,是取代DHCP選項(xiàng)12-hostname。DHCP客戶端將不再通過(guò)DHCP接收主機(jī)名。
2.2.1設(shè)置/etc/hostname
設(shè)置靜態(tài)主機(jī)名:
echo whvm05.weiheng.ink>/etc/hostname
2.1.2取代dhcp選項(xiàng)的12-hostname
Create a config file,add config to supersede the dhcp option:
創(chuàng)建一個(gè)配置文件,添加配置以取代dhcp選項(xiàng):
touch/etc/dhcp/dhclient-eth0.conf
echo‘supersede host-name“”;’>>/etc/dhcp/dhclient-eth0.conf
2.1.3重新啟動(dòng)NetworkManager
systemctl重新啟動(dòng)NetworkManager
檢查配置:
cat/var/lib/NetworkManager/dhclient-eth0.conf
NetworkManager自動(dòng)生成的配置文件將包含2.1.2中的先前配置。
2.1.4測(cè)試
如果重新引導(dǎo)VM,則主機(jī)名仍保持為/etc/hostname配置。
2.2更改google_hostname.sh
2.2.1編輯/etc/hostname文件
echo whvm03.weiheng.ink>/etc/hostname
2.2.2移除yum-cron
任何配置的改變都會(huì)有yum-cron的存儲(chǔ),所以我們需要移除它們:
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設(shè)置hostname
hostname`cat/etc/hostname
2.2.5測(cè)試
在reboot之后,主機(jī)名仍還沒(méi)有變化:
2.3更改google_set_hostname
2.3.1編輯google_set_hostname
設(shè)置新的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,以保證配置沒(méi)有隨之改變:
yum remove yum-cron-y
2.3.3測(cè)試
總結(jié)
谷歌計(jì)算引擎的代理將更改虛擬機(jī)的主機(jī)名,通過(guò)更改dhcp客戶端配置,以及谷歌代理腳本,可以保持主機(jī)名不變。