一、DNS的基础知识点
DNS域名系统(Domain Name System缩写DNS,Domain Name被译为域名)是因特网的一项核心服务, 它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方假 DNS使用的协议及端口号 DNS的默认端口为53。 DNS端口分为TCP和UDP。
二、TCP和UDP的区别
①TCP是用来做区域传送,多用于主从同步 在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息
②UDP是用来做DNS解析的
注:FQDN全称 Fully Qualified Domain Name即全域名:同时带有主机名和域名的名称FQDN = Hostname + DomainName
如: www.baidu.com. 注意:最前面的一定是主机,最后一个点表示根域,通常是省略不写的,但实际上www.abc.com=www.abc.com.
三、DNS解析方式
四、域名结构
①根域:位于域名空间最顶层,一般用一个”."表示根域
②顶级域:一般代表一种类型的组织机构或国家地区,比如com,cn,net,uk等
③二级域:用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,比如baidu,taobao等
④子域:二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名sina.com.cn
⑤主机:主机位于域名空间最下层,就是一台具体的计算机,比如www,mail等
注意:每一级的域名长度限制是63个字符,域名总长度则不能超过253个字符
五、域名解析过程
① 终端用户DNS客户端向LocalDNS发起递归查询。递归查询指如果终端用户所请求的LocalDNS服务器不知道被查询的域名的IP地址,则以DNS客户端的身份,向其它域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。
②LocalDNS检查本地对应缓存无数据后,则向根DNS服务器发起迭代查询请求。任何LocalDNS都需知道根DNS服务器的IP地址(全球共13台)。迭代查询指域名服务器或者给出最终结果,或者告诉DNS客户(此处指LocalDNS)应去哪些DNS服务器查询。
③根DNS服务器告诉LocalDNS该域名已授权给com区管理,应去com DNS服务器查询,并给出了com DNS服务器的IP地址。LocalDNS将com DNS服务器及其IP地址加入到缓存,下次DNS请求,在缓存未过期的情况下,授权给com 区的域名需向com DNS服务器请求查询时,直接往com DNS服务器发查询请求,不再向根DNS服务器请求。
④ LocalDNS服务器根据根DNS服务器响应的结果向com DNS服务器发起迭代查询请求。
⑤om DNS服务器告诉LocalDNS服务器该域名已授权给http://wangsu.com区管理,应去http://wangsu.com
DNS服务器查询,并给出http://wangsu.com DNS服务器的IP地址。LocalDNS将http://wangsu.com
DNS服务器及其IP地址加入到缓存,下次DNS请求,在缓存未过期的情况下,授权给http://wangsu.com区的域名需向http://wangsu.com DNS服务器请求查询时,直接往对应 DNS服务器发查询请求,不再向根DNS服务器及com DNS服务器请求。
⑥ LocalDNS服务器根据 com DNS服务器响应的结果向http://wangsu.com DNS服务器发起迭代查询请求。
⑦wangsu.com DNS服务器给出域名的IP地址。LocalDNS将www.wangsu.com
IP地址加入到缓存,下次相同的DNS请求,在缓存未过期的情况下,LocalDNS直接给出该域名的IP地址,不再向权威DNS服务器查询。
⑧LocalDNS服务器将该域名对应的IP地址返回给终端用户,DNS客户端将域名对应的IP地址接入缓存。下次请求该域名时,若缓存未过期,DNS客户端直接从缓存取出IP,不再向LocalDNS发起迭代查询。
六、正向解析具体操作
①安装bind软件包
yum -y install bind
安装完会得到DNS的三个配置文件
主配置文件 /etc/named.conf
区域配置文件 /etc/named.rfc1912.zones
区域数据配置文件模板 /var/named/named.localhost
②修改主配置文件
vim /etc/named.conf
options {
listen-on-v6 poet 53 { 192.168.184.10; }; #监听53端口,IP地址使用提供服务的本地IP,也可用any代表所有
# listen-on-v6 port 53 { : :1; }; #ipv6行如不使用可以注释掉或者删除
directory "/var/named"; #区域数据文件的默认存放位 置
dump- file "/var/ named/data/cache_ dump . db"; #域名缓存数据库文件的位置
statistics-file "/var/named/data/named stats.txt"; #状态统计文件的位置
memstatistics-file "/var/named/data/named_ mem_ stats. txt"; #内存统计文件的位置
allow-query
{ any; }; #允许使用本DNS解析服务的网段,也可用any代表所有
zone "." IN { #正向解析“. "根区域
type hint; #类型为根区域
file "named.ca"; #区域数据文件为named.ca,记录了13台根域服务器的域名和IP地址等信息
};
③修改区域配置文件
vim /etc/ named. rfc1912. zone #可在文件里有模版,可复制粘贴后修改
zone "lic. com" IN { #正向解析"lic.com"区域
type master; #类型为主区域
file "lic. com. zone"; ●指定区域数据文件为lic. com. zone
allow-update { none; };
};
④修改区域数据配置文件
cd /var/named/
cp -p named.localhost lic.com.zone #保留源文件的权限和属主的属性复制
vim /var/named/lic.com.zone
$TTL 1D #设置缓存解析结果的有效时间
@ IN SOA lic.com. admin.lic.com. (
0; serial .
1D; refresh
1H; retry
1W; expire
3H ) ; minimum
NS lic.com. #记录当前区域的DNS服务器的名称
A 192.168.184.10 #记录主机IP地址
IN MX 10 mail.lic.com. #MX为邮件交换记录,数字越大优先级越低
www IN A 192.168.184.10 #记录正向解析www.benet.com对应的IP
mail IN A 192.168.184.11
ftp IN CNAME www #CNAME使用别名,ftp是www的别名
* IN A 192.168.184.100 #泛域名解析,“*"代表任意主机名
⑤启动服务
systemctl start named
systemctl stop firewalld
setenforce 0
tail -f /var/log/ messages #如果服务启动失败,可以查看日志文件来排查错误
rndc-confgen -r /dev/urandom -a #如果服务启动卡住,可以执行此命令解决
⑥在客户端的域名解析配置文件中添加DNS服务器地址
vi /etc/resolv.conf #修改完后立即生效
nameserver 192.168.184.10
vi /etc/ sysconfig/network- scripts/ ifcfg-ens33 #修改完后需要重启网卡
DNS1=192.168.80.10
systemctl restart network
⑦测试结果
host www.lic.com
nslookup www.lic.com