在mac上搭建本地DNS名称服务
首先想到docker好像能给容器名称做解析,于是搜索:docker dns hadoop,得到:
Dnsmasq解决docker集群节点互通问题 - Winse Blog
于是了解到dnsmasq软件,继续搜索:mac brew dnsmasq hadoop vmware
根据参考链接1,参考链接2,做了如下配置
配置文件1,dnsmasq基本配置文件/usr/local/etc/dnsmasq.conf,修改以下行:
resolv-file=/usr/local/etc/resolv.dnsmasq.conf
strict-order
server=/medium.com/8.8.8.8
listen-address=127.0.0.1
addn-hosts=/usr/local/etc/dnsmasq.hosts
cache-size=15000
conf-dir=/usr/local/et/dnsmasq.d
配置文件2,/usr/local/etc/dnsmasq.hosts,新建此文件
文件内容形如/etc/hosts文件,一个ip,空格或Tab之后,一个域名
备注:除了此方法,也可选用系统的/etc/hosts文件,但此使用文件有一种风险,就是,如果DNS服务器没有配置成127.0.0.1,宿主机也能成功使用/etc/hosts成功解析,但虚拟机使用DNS就无法解析,可能难以排查故障,为了一致性,此处使用了另外的hosts文件
配置文件3,/usr/local/etc/resolv.dnsmasq.conf,新建此文件
文件内容示例如下:
nameserver 114.114.114.114
nameserver 8.8.8.8
下面解释以上配置
使用本地127.0.0.1作为DNS服务器的话,它会先返回dnsmasq.hosts中的域名,或者,如果是medium.com域中的名称,则交由8.8.8.8处理
如果以上解析失败,则严格按顺序在resolv.dnsmasq.conf中的服务器上搜索名称
本地保留15000个缓存
而conf-dir是里面的文件都加载为配置文件,不过此处文件夹是空的,没有实际用到
配置完成后,运行:
sudo brew services restart dnsmasq
然后就可以使用nslookup,server 127.0.0.1,写个域名,看看效果了
如果没有问题,就可以把本机的网络配置中的DNS设置为仅有127.0.0.1这一项了
vmware fusion的NAT网络会自动使用这里的dns服务器列表,就能成功解析名称了
关键词:
DNS host name server hadoop spark cluster 主机名 互相访问