之前做过一个本地域名的项目:
项目的要求是在同一个网段(子网)下的所有主机之间,可以通过主机名相互通信;
功能实现如下:
环境:所有主机连接在同一个路由器上面,通过dhcp 进行为所有的主机分配地址
1.首先当主机连接到设备上时,会向路由器的dhcp 服务器发送discover 报文,当主机获取到IP地址后,dhcp 服务器把 ip 和 主机名 记录下来,以供dns 使用
这样就有ip 地址和主机名的映射关系;
2. 我们需要对dnsmasq 进行处理,在dnsmasq启动的时候将第一步记录下的记录形成缓存,供访问主机的时候进行解析主机名;
当在通过域名访问其他主机时候(例如:ping hostname),首先主机发送dns 报文到路由器的dns代理(dnsmasq进程),我们在收到dns 报文时,在缓存中查找是否为改路由器下的主机设备,如果是根据记录解析成对应的IP地址返回给发送端主机,以供该主机接下来的通信使用,这样就可以达到同网段下的主机间的通信