1.DNS(Domain Name System)域名系统。 2.DNS的作用,就是将主机名解析为IP以及将IP解析为主机名。 3.为什么要DNS,网络传输数据需要IP,但我们对纯数字的IP记性很差,为了方便出现了通过主机名来取得IP的办法,早期是/etc/hosts这个文件,后来出现了BIND(阶层式管理主机名对应IP的系统)这也是全世界使用最广泛的域名系统。通过这个办法我们不需要知道主机的IP,只要知道该主机的名称,就能轻易的访问该主机了。 4./etc/hosts的文件格式如下: IP 主机名 主机别名 5.www.baidu.com 这是个主机名,它是baidu.com域下面的主机 www.baidu.com.类似,张全蛋.京州.汉东省.中国 从左到右范围越来越大,这就是标准的主机名(FQDN),注意com.后面有一个点,只不过平时我们不写而已 6.名词:子域 顶级域 递归查询 迭代查询 7.每个公网IP都会被人为的划分掉,你可以百度搜索这个IP,可以查出他属于哪个省的哪个市的,是移动的还是联通电信的 8.DNS有自己的管辖范围,它只负责自己管控的IP并做递归查询,其他地儿的IP不负责,比如:你在北京上网用的是徐州电信的IP,那你除了可以访问徐州电信下面的主机,其他互联网上的主机你是不能访问的。 9.谷歌的有些DNS对全球做递归查询,比如:8.8.8.8 4.4.4.4 114.114.114.114 弊端就是你要访问这些DNS需要穿过很多层,会导致访问互联网时响应时间会比较慢。 10.DNS软件有bind,unbound 11.安装unbound yum -y install unbound 启动并开启自启unbound 使用端口tcp/udp 53 要记得防火墙,以服务或端口的方式开放都行,主从DNS同步用的是TCP53,客户端同步DNS用的是UDP53 12.unbound的主配置文件 /etc/unbound/unbound.conf 13.安装虚拟机以后虚拟机用的网络接口,默认会有一个DNS来维护,如果你在宿主机上安装DNS软件的话,并且53端口对所有接口开放,将会导致DNS软件服务运行异常。 14.主配置文件的access-control 作用是拒绝IP或网段访问我的53端口 15.include: /etc/unbound/local.d/.conf 这句话的意思是当系统读主配置文件时,它会把.conf当成是主配置文件的内容来对待。 16.域名需要合法注册才行,比如:enkj.com就是域名,oa.enkj.com 就是域名enkj.com下的主机 17.举例说明,在include中创建文件aa.conf,内容如下: local-zone: "example.com." static 指定在本地主机域名,并设置为手动修改,要注意com后面有一个点 local-data: "example.com. NS ns.example.com." 指定域名下的DNS服务器 NS=Name Server local-data: "example.com. MX 5 mail.example.com." 指定域名下的邮件服务器。 local-data: "www.example.com. A 192.168.26.3" local-data: "ftp.example.com. A 192.1687.26.4" NS: 就是名称服务器(name server)的缩写,后面记录的数据是DNS服务器的意思。 A:就是地址(Address)的缩写,后面记录的是IP的对应。 18.unbound-checkconf 命令是用来检查主配置文件有没有语法错误。 19.如果把自己当做DNS服务器的话,IP配置文件填写DNS的时候一定要写监听53端口的IP 20.host -t MX example.com 查询域example.com中的邮件服务器是什么,其中-t是type类型的意思 21.host -t A mail.example.com 查询对应的IP 22.DNS域名系统也是有缓存的 23.咱们平时用的路由器就是一个仅转发的DNS,客户端的IP请求会经过路由器转发其他机器上,设置项如下: forward-zone: name: "."或者"example.com" forward-addr:192.168.26.100 以上配置内容意思是客户端如果请求根域或者域example.com的主机IP时,我就给你转发到192.168.26.100. 24:如果感觉ssh连接比较慢的话,修改配置文件/etc/ssh/sshd_config中的UseDns yes为no,并取消掉该行首的注释符,记得重启一下sshd服务生效一下。 25.抓包:tcpdump -i eno16777728 port 53 26.设置项domain-insecure: "example.com"当查询example.com里面的主机时验证,验证就是DNS把请求转发到A,A把结果转发给DNS,但DNS会怀疑结果的真实可靠性,该设置项的意思是不要怀疑,不做验证,这只是排除了域example.com中的验证,如果关闭所有域的验证,那岂不是更方便,设置如下:module-config: "iterator" 27.dig +trace www.baidu.com 请求主机名www.baidu.com的IP,并同时显示都经过哪些DNS 28.清楚DNS缓存的办法unbound-control flush www.example.com.