经常会发现自己使用的虚拟机的hostname被更改为bogon,找了些资料记录一下
bogon是指那些不该出现在internet路由表中的地址,包括:
1、私有地址如10,172.16-32,192.168…..
2、保留地址,还未正式分配出去的地址
hostname之所以会变更为bogon是由于linux启动时候,在其中的一个启动脚本rc.sysinit中存在如下代码段导致的
if [ "$HOSTNAME" = "localhost" -o "$HOSTNAME" = "localhost.localdomain" ]; then
ipaddr=$(ip addr show to 0.0.0.0/0 scope global | awk '/[[:space:]]inet / { print gensub("/.*","","g",$2) }')
for ip in $ipaddr ; do
HOSTNAME=
eval $(ipcalc -h $ip 2>/dev/null)
[ -n "$HOSTNAME" ] && { hostname ${HOSTNAME} ; break; }
done
fi
如果本地的hostname使用的是默认的hostname,即localhost或者localhost.localdomain,会进行DNS反向解析,将解析的结果赋给hostname。
解决方法
1、修改/etc/sysconfig/network文件中HOSTNAME键值,不使用默认的主机名
2、更改DNS服务器,对bogon进行过滤
网友评论