一、DNS简介
DNS: 是互联网上的一项服务,作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。
DNS 系统使用的是网络的查询,需要有监听的 port, 使用 53 端口。
( 1 )因特网的域名结构
由于因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名方法。
任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(是名字空间中一个可被管理的划分)
域名分类:
国家顶级域名:采用 ISO3166 的规定国家域 名又常记为 ccTLD( cc 表示国家代码 contry-code)
通用顶级域名:最常见的有 7 个
com 公司企业 net 网络服务机构 org 非营利组织 int 国际组织 gov 美国的政府部门 mil 美国的军事部门
基础结构域名 :只有一个, 即 arpa ,用于反向域名解析
(2)域名服务器的类型划分:顶级域名,二级域名,三级域名,四级域名
二、DNS域名解析的过程
DNS 解析方式 :正向解析:FQDN → IP反向解析: IP → FQDN
三、DNS服务器配置
提供 DNS 服务的软件叫 bind ,服务名是 named
[root@localhost ~]# yum install bind -y[root@localhost ~]# rpm -ql bind/etc/named.conf # bind主配置文件/var/named/slaves # 从dns服务器文件夹[root@localhost ~]# vim /etc/named.confoptions {#定义监听端口,如果所有地址都监听,则只写端口listen-on port 53 { 127.0.0.1; };listen-on-v6 port 53 { ::1; };#定义数据文件目录directory "/var/named";#只允许本地主机进行查询allow-query { localhost; };};#定义区域zone "." IN {type hint;file "named.ca";};
配置 DNS 正向解析
# 主配置文件[root@localhost ~]# vim /etc/named.confoptions {#监听端口为53,大括号内数据内容可以为anylisten-on port 53 { any; };directory "/var/named";};zone "baidu.com" IN {type master;file "named.baidu.com";};
时间单位:M(分钟),H(小时),D(天),W(周),默认是秒
[root@localhost ~]# vim /var/named/named.baidu.com$TTL 1D@ IN SOA @ admin.baidu.com. ( 0 1D 1H 1W 3H )IN NS ns.baidu.com.IN MX 10 mail.baidu.com.ns IN A 172.24.8.128mail IN A 172.24.8.128www IN A 172.24.8.128ftp IN CNAME www[root@localhost ~]# systemctl restart named[root@localhost ~]# systemctl disable firewalld --now[root@webserver ~]# setenforce 0#客户端测试host [-a] FQDN [server]nslookup [FQDN] [server]dig [options] FQDN [@server]options:+trace代表从.开始追踪;-t type查询的数据主要有MX、NS、SOA、A等类型;-x查询反解信息[root@localhost ~]# host www.baidu.com 172.24.8.128[root@localhost ~]# nslookup www.baidu.com 172.24.8.128[root@localhost ~]# dig -t A www.baidu.com @172.24.8.128
常见的正解文件 RR 相关信息:
domain | IN | RR type | RR data |
主机名 . | IN | A | IPv4 的 IP 地址 |
主机名 . | IN | AAAA | IPv6 的 IP 地址 |
域名 . | IN | NS | 管理这个域名的服务器主机名字,即由哪一台主机去解析当前所定义的域主机 |
域名 . | IN | SOA 起始授权记录 | 管理这个域名的七个重要参数 |
域名 . | IN | MX | 顺序数字,接收邮件的服务器主机名字 |
主机别名. | IN | CNAME | 实际代表这个主机别名的主机名字 |
SOA 主要是与区域有关,所以 domain 要写域名。而 SOA 后面会接七个参数
七个参数的意义如下:
管理员的 Email ,发生问题可以联系这个管理员。由于 @ 在数据库文件中有特殊含义,所以将用 “.”,代替@ 序号( Serial ),这个序号代表的是这个数数据库文件的新旧,序号越大代表越新。所以当你更改了数据库内容时,需要将这个数值放大。 更新频率( Refresh )定义 slave 多久向 Master 要求数据更新 失败重新尝试时间( Retry ),如果 Slave 无法对 Master 实现连接,那么在多长时间内, Slave 会尝试重新连接到Master 。 失效时间( Expire ),如果一直尝试失败,持续连接到达这个设置值时限,那么 Slave 将不再继续尝试连接,并且尝试删除这份下载的zone file 信息。
反向解析
[root@localhost ~]# vim /etc/named.confzone "8.24.172.in-addr.arpa" IN {type master;file "named.172.24.8";};#反向区域文件[root@localhost ~]# vim /var/named/named.172.24.8$TTL 1D@ IN SOA ns.baidu.com. admin.baidu.com. ( 0 1D 1H 1W 3H )IN NS ns.baidu.com.128 IN PTR ns.baidu.com.128 IN PTR www.baidu.com.128 IN PTR mail.baidu.com.128 IN PTR ftp.baidu.com.#反解需要注意:主机名尽量使用完整的FQDN,即要写上“.”#客户端测试[root@localhost ~]# host 172.24.8.128 172.24.8.128[root@localhost ~]# nslookup 172.24.8.128 172.24.8.128[root@localhost ~]# dig -x 172.24.8.128 @172.24.8.128