1.基本介绍
名字解析: NetBIOS名:localhost wins hosts FQDN:完全限定域名, hosts文件: 作用:实现名字解析,主要为本地主机名丶集群节点提供快速解析,集中式数据库 dns服务器: 作用:实现名字解析(将主机名解析成ip地址),分布式数据库2.dns解析流程:客户端解析
1)客户端查询自己的缓存(windows中的hosts文件也是缓存),如果没有将查询发送到/etc/resolv.conf中的dns服务器 2)如果本地DNS服务器对于请求的信息具有权威性,会将权威答案发送到客户端 3)如果dns服务器在其缓存中有请求信息,则将(非权威答案)发送到客户端 4)如果缓存中没有该查询信息,dns服务器将搜索权威DNS服务器以查找信息 从根区域开始,按照dns层次结构向下搜索,直至对于信息具有权威的名称服务器,为客户端获取答案,dns服务器将信息传递给客户端,并在自己的缓存中保留一个副本 转发到其它服务器3.权威服务器和非权威服务器
权威服务器:存储并提供某个区域的实际数据,例如126.com的DNS服务器,记录了126.com域中的所有主机的记录;是权威服务器返回的dns解析结果就是权威服务器返回的结果 master:主dns服务器,包含原始区域的数据 slave:备dns服务器,通过区域传输从master服务器获取区域数据的副本 非权威服务器:不存储某个区域的实际数据,仅缓存dns服务器,虽然可以提供查询,但查询的内容不具有权威性4.正向区域和反向区域
正向解析:域名解析为ip 反向解析:ip地址解析成域名 (2)配置仅有缓存功能的dns服务器0.关闭防火墙和selinux
systemctl stop firewalld.service systemctl disable firewalld.service sed -ri \'/^SELINUX=http://www.likecs.com/cSELINUX=disabled\' /etc/sysconfig/selinux setenforce 01.安装bind和启动服务
yum install bind bind-chroot -y systemctl restart named systemctl enable named2.修改配置文件
#vim /etc/named.conf zone "." IN { type hint; file "named.ca"; //根区域,文件在选项directory(var/named)配置的目录下,全球13台根服务器 }; options { listen-on port 53 { any; }; //监听端口在所有ipv4接口上 listen-on-v6 port 53 { any; }; //监听端口在所有ipv6接口上 directory "/var/named"; //数据库文件存储位置 allow-query { any; }; //允许任意主机查询 forward first; //当客户端发起查询,不是自己的区域,首先向forwarders服务器发起查询 forwarders { 114.114.114.114;114.114.115.115; }; //转发到上一级的DNS服务器 };3.语法检测重启服务和验证测试
#named-checkconf /etc/named.conf //检查主配置文件 #systemctl restart named 说明:当客户端的dns服务器为这台服务器的时候,如果该配置里面没有forward参数,默认发起查询会向根节点发起查询,全球有13台根服务器;如果配置forward选项,客户端发起的请求会转发forward的dns 测试:客户端dns服务器指向这台服务器,dig ;然后在dns服务器上tcpdump -i ens33 -nn port 53 (3)配置dns服务器正向区域:dnstest.com1.主配置文件 :相当于在域名服务商申请域名
#vim /etc/named.conf options { directory "/var/named"; //数据库文件存储位置 }; zone "testdns.com" IN { //创建域dnstest.com type master; file "testdns.com.zone"; //数据文件在/var/named目录下 };2.数据库文件(区域文件),在域名服务提供的页面上做解析
#vim /var/named/testdns.com.zone $TTL 600 //设置缓存记录10分钟 @ IN SOA @ root( 2018051600 1H 15M 1W 1D) //起始授权记录,用于指出DNS服务器,必须配置,()里面的内容用于主从复制使用 @ IN NS dns //指区域所授权的主机是ns主机,必须配置 dns IN A 192.168.1.31 //dns服务器本机ip www 100 IN A 192.168.1.32 //www.testdns.com解析成192.168.1.32 @ IN A 192.168.1.32 //直接对域名进行解析,这里对域名testdns.com解析成192.168.1.32这个ip 说明:缓存时间有三种,优先级最大生效 $TTL 600 //缓存时间10分钟;优先级中 ( 2018051600 1H 15M 1W 1D) //这里1D是缓存时间1天;优先级最低 www 300 IN A 192.168.1.32 //缓存时间5分钟;优先级最大生效3.检测语法和重启服务
named-checkconf /etc/named.conf //检查配置文件 named-checkzone testdns.com /var/named/testdns.com.zone //检查区域数据文件, systemctl restart named 在客户端测试:dig //如果从权威服务器获取的解析结果,flags标志位有aa记录 (4)客户端工具详解1.dig(linux工具)
dig //使用/etc/resolv.conf设置的dns dig @114.114.114.114 //使用指定的dns2.host(linux工具)
host //等同于host -t A ,正向解析,查询A记录 host 114.114.114.114 //反向解析,查询PTR记录 host 114.114.114.114 //使用指定的dns服务器114.114.114.114 解析 host -t SOA baidu.com //查询某个域的SOA记录 host -t NS baidu.com //查询某个域的NS记录 host -t MX baidu.com //查询某个域的邮件服务器3.nslookup(linux/windows工具)
nslookup nslookup 114.114.114.114 #nslookup //进入nslookup交互界面 set q=soa //设置查询soa记录 baidu.com set q=a //设置查询A记录