1.1 基本要求
设计一个 DNS 中继服务器程序,读入 “IP 地址-域名” 对照表,当客户端查询域名对应的 IP 地址时,检索表该对照表,并根据返回结果做出相应的处理:
检索结果为 IP 地址 0.0.0.0 时,则向客户端返回 “域名不存在 (NXDomain)” 的报错消息。
检索结果为普通 IP 地址时,则向客户端返回该地址。
表中未检索到该域名时,则向因特网 DNS 服务器发出查询,并将结果返回给客户端。
1.2 编程环境
操作系统:Linux, Windows 编程语言:Go 语言
集成开发环境:GoLand
1.3 分工
于海鑫:程序总体架构设计、编程以及文档田静悦:测试、文档以及编程
二、设计与实现
2.1 功能设计
MuddyDNS 需要完成的主要功能见基本要求。除去基本要求外,我们还完成了对 IPv6 DNS 查询的处理,并可以在执行程序时对多个参数进行指定,其可以指定的参数见图 1 。
图 1: MuddyDNS 可以指定的参数
2.2 模块划分
MuddyDNS 共分为主模块,服务器模块