Linux域名服务

一,前言

互联网的访问依靠IP地址。但IP地址不好记。

所以使用域名服务(DNS,好记名),来替代访问的地址。

 Linux域名服务  

二,基本概念

1,专业术语1:

hosts文件(老的)

hosts文件
作用: 实现名字解析,主要为本地主机名、集群节点提供快速解析
数据库: 平面式结构,集中式数据库
缺点:不便于查询,更新
windows
C:\Windows\System32\drivers\etc
Linux
/etc/hosts

DNS

DNS(Domain Name System,域名系统)(分布式,层次性)
作用: 实现名字解析(例如将主机名解析为IP)

区(Zone)

区是DNS名称空间的一部分,其包含了一组存储在DNS服务器上的资源记录。

使用区的概念,DNS服务器回答关于自己区中主机的查询,每个区都有自己的授权服务器。

主域名服务器与辅助域名服务器

当区的辅助服务器启动时,它与该区的主控服务器进行连接并启动一次区转输,区辅助服务器定期与区主控服务器通信,查看区数据是否改变,如果变了,它就启动一次数据更新传递。

辅助服务器的有点

1.容错能力

 配置辅助服务器后,在该区主服务器崩溃的情况下,客户机仍能解析该区的名称。一般把区的主服务器和区的辅助服务器安装在不同的子网上,这样如果到一个子网的连接中断,DNS客户机还能直接查询另一个子网上的名称服务器。

2.减少广域链路的通信量

  如果某个区在远程有大量的客户机,用户就可以在远程添加该区的辅助服务器,并把远程的客户机配置成先查询这些服务器,这样就能够防止远程客户机通过慢速链路通信来进行DNS查询。

3.减轻主服务器的负载

 辅助服务器能回答该区的查询,从而减少该区主服务器必须回答的查询数。

FQDN

FQDN:(Fully Qualified Domain Name)完全合格域名/全称域名

SOA 资源记录

每个区在区的开始处都包含一个起始授权记录(Start of Authority Record),简称SOA记录。SOA定义了域的全局参数,进行整个域的管理设置。一个区域文件只允许存在唯一的SOA记录。

NS 资源记录

NS(NameServer)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。每个域在区根处至少包含一个NS记录。

A 资源记录

地址(A)资源记录把FQDN 映射到IP 地址。因为有此记录,所以DNS服务器能解析FQDN域名对应的IP地址。

PTR 资源记录

相对于A 资源记录,指针(PTR)记录把IP地址映射到FQDN。用于反向查询,通过IP地址找到域名。

CNAME 资源记录

别名记录(CNAME)资源记录创建特定FQDN的别名。用户可以使用CNAME记录来隐藏用户网络的实现细节,使连接的客户机无法知道真正的域名。

例:ping 百度时,解析到百度的别名服务器。百度有个cname=www.a.shifen.com.的别名

Linux域名服务

MX 资源记录

邮件交换(MX)资源记录,为DNS 域名指定邮件交互服务器。

模式

c/s模式

端口号

tcp/53  udp/53      //用于客户端的查询

tcp/953  udp/953   //用于DNS 主从同步

命名空间

命名空间name space: 用于给互联网上的主机命名的一种机制

Linux域名服务

Linux域名服务

Linux域名服务

2,专业术语2:

权威名称服务器

权威名称服务器: 存储并提供某个区域的实际数据,例如126.com的DNS服务器,记录了126.com域中所有主机的记录如:
www.126.com. x.x.x.x
ftp.126.com. y.y.y.y

权威名称服务器类型包括:
    Master: 主DNS服务器,包含原始区域的数据
    Slave: 备份DNS服务器,通过(区域传输)从Master服务器获得区域数据的副本

非权威名称服务器

非权威名称服务器: 不存储某个区域的实际数据,仅缓存DNS服务器,虽然可以提供查询,但查询的内容不具有权威性

DNS解析流程

例如客户端解析 www.126.com
1. 客户端查询自己的缓存(包含hosts中的记录),如果没有将查询发送/etc/resolv.conf中的DNS服务器

2. 如果本地DNS服务器对于请求的信息具有权威性,会将(权威答案)发送到客户端。

3. 否则(不具有权威性),如果DNS服务器在其缓存中有请求信息,则将(非权威答案)发送到客户端

4. 如果缓存中没有该查询信息,DNS服务器将搜索权威DNS服务器以查找信息:
a. 从根区域开始,按照DNS层次结构向下搜索,直至对于信息具有权威的名称服务器,为客户端获答案
DNS服务器将信息传递给客户端 ,并在自己的缓存中保留一个副本,以备以后查找。
b. 转发到其它DNS服务器
Linux域名服务

递归/迭代

Linux域名服务

递归查询.  一次性沟通完

递归查询是一种DNS服务器的查询模式,在该模式下DNS服务器接收到客户机到客户机的请求,必须使用一个准确的查询结果回复客户机。如果DNS服务器本地没有存储查询DNS信息,那么该服务器会询问其他服务器,并将返回的结果提交给客户机。

迭代查询

DNS服务器另外一种查询方式为迭代查询,当客户机发送查询请求时,DNS服务器并不直接回复查询结果,而是告诉客户机另一台DNS服务器地址,客户机再向这台DNS服务器提交请求,依次循环直到返回查询的结果为止。

总结 :一般情况下,从pc的客户端到本机的DNS服务器是属于递归查询。而DNS服务器之间的交互查询就是迭代查询。

服务器类型

缓存服务器

主服务器

从服务器

转发服务器

正向解析/反向解析

正向解析是指域名到IP地址的解析过程。

反向解析是从IP地址到域名的解析过程。反向解析的作用为服务器的身份验证。

三,DNS服务器基本配置

1,缓存DNS服务器/转发器

环境

DNS服务器1:10.18.41.251

DNS客户机:10.18.41.8

部署DNS服务器

安装伯克利域名服务
[[email protected] ~]# yum -y install bind bind-chroot

2 观察域名服务设置,启动查询功能
[[email protected] ~]# vim /etc/named.conf
options {
listen-on port 53 { any; };                //改或者删除
listen-on-v6 port 53 { any; };    //改或者删除
allow-query { any; };        //改或者删除

3 启动DNS服务器
[[email protected] ~]# systemctl start named
[[email protected] ~]# systemctl enable named


4 观察是否启动DNS,查询到DNS53号端口即开启成功,否则失败。
[[email protected] ~]# ss -tuln |grep :53 |column -t    //以列规整显示
udp UNCONN 0 0 :::53 :::*
tcp LISTEN 0 10 :::53 :::*

5 防火墙firewalld
[[email protected] ~]# firewall-cmd --permanent --add-service=dns
[[email protected] ~]# firewall-cmd --reload

    options {
listen-on port 53 { any; };                //改或者删除
listen-on-v6 port 53 { any; };    //改或者删除
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解析
[[email protected] ~]# cat /etc/resolv.conf
nameserver  上一台服务器的IP地址


2.DNS服务器正常提供服务后
[[email protected] ~]# dig www.baidu.com
;; ANSWER SECTION:
www.baidu.com.        1055    IN    CNAME    www.a.shifen.com.
www.a.shifen.com.    155    IN    A    111.13.100.92        //目标主机的IP地址

;; SERVER: 上一台服务器的IP #53(上一台服务器的IP)

3 进行通信
[[email protected] ~]# ping www.baidu.com
PING www.a.shifen.com (111.13.100.92) 56(84) bytes of data.
64 bytes from 111.13.100.92: icmp_seq=1 ttl=52 time=15.4 ms
64 bytes from 111.13.100.92: icmp_seq=2 ttl=52 time=14.5 ms

解析原理(根提示)查看DNS服务器主配置文件

[[email protected] ~]# vim /etc/named.conf
根提示区域 [默认]
Linux域名服务

vim /var/named/named.ca

#是单行注释 /*是多行注释

或者使用DNS转发器

DNS转发Forward [通常转发到上一级的DNS服务器]
options {
...
forward first;
forwarders { 114.114.114.114; 202.106.0.20; };
};

2,主DNS服务器配置/正向区解析配置

功能

==正向区: 提供正向解析,即将域名解析为IP
==反向区: 提供反向解析,即将IP解析为域名 [了解]

环境

10.18.41.251--DNS服务器

10.18.41.252-DNS客户机

案例

案例1:xulei.com

1.主配置文件 相当于在域名服务商申请域名
[[email protected] ~]# vim /etc/named.conf

zone   "xulei.com"   { //创建域xulei.com
type    master;
file     "xulei.com.zone";
};

2. 数据库文件(区域文件) 在域名服务提供的页面上做解析
    [[email protected] ~]# vim /var/named/xulei.com.zone
$TTL 600
@ IN SOA @ root ( 2017033100 1H 15M 1W 1D )
@ IN NS dns
dns IN A 114.215.71.214 //DNS服务器本机IP
www IN A 119.75.218.70 //网站服务器IP

SOA和NS是强制要写的。
    区域文件中参数详解
        $TTL 600
@        IN     SOA    @        root (    2017033100         1H       15M          1W       1D )
@服务的域名
IN  
SOA授权    
@服务器的域名
root.xulei.com管理员邮箱
(版本号时间戳 1小时同步 15分钟重试  1周过期 1天的缓存)
3.重启DNS,使配置生效
    [[email protected] ~]#systemctl restart named

案例2:增加yang.com
1. 主配置文件
[[email protected] ~]# vim /etc/named.conf
zone "yang.com" {
type master;
file "yang.com.zone";
};

2. 数据库文件(区域文件)
[[email protected] ~]# vim /var/named/yang.com.zone
$TTL 600
@ IN SOA @ root (
2017033100
1H
15M
1W
1D )
      IN NS dns            //注意域名的位置是空的,可以写@,也可以空。
dns IN A 114.215.71.214
www IN A 1.1.1.1            //地址是多少,不重要。
bbs IN A 1.1.1.2
oa IN A 1.1.1.3

数据库文件:

@ 表示当前域名
www.tianyun.com. = www
第一个字段继承

SOA: 起始授权记录 强制
NS: DNS服务器记录 强制
A: 主机记录
CNAME: 别名记录

客户端查询

IINUX工具

1.客户端指定本地DNS

[[email protected] ~]# cat /etc/resolv.conf
nameserver 192.168.2.115

2.客户端解析域名

工具1:[[email protected] ~]# dig www.baidu.com
    权威服务器
        [[email protected] ~]# dig www.126.com //使用/etc/resolv.conf设置的DNS
        flags:qr rd ra 非权威答案
        flags:qr aa rd 权威答案
    指定DNS服务器
        [[email protected] ~]# dig @192.168.2.168 www.126.com //使用指定的DNS
        [[email protected] ~]# dig @192.168.2.100 www.126.com //使用指定的DNS

工具2:[[email protected] ~]# nslookup www.baidu.com

工具3:[[email protected] ~]# host www.baidu.com
[[email protected] ~]# host -t A www.baidu.com //正向解析,查询A记录
[[email protected] ~]# host 192.168.5.100 //反向解析,查询PTR记录
[[email protected] ~]# host www.baidu.com 192.168.5.240 //使用DNS服务器192.168.5.240解析
[[email protected] ~]# host -t SOA baidu.com //查询某个域的SOA
baidu.com has SOA record ns.baidu.com. root.baidu.com. 2013081303 3600 900 604800 86400
[[email protected] ~]# host -t NS baidu.com //查询某个域的NS
baidu.com name server ns.baidu.com.
baidu.com name server ns2.baidu.com.
[[email protected] ~]# host -t MX baidu.com //查询某个域的邮件服务器
baidu.com mail is handled by 10 mail.baidu.com.

Windows工具/Linux工具

[[email protected] ~]# nslookup www.baidu.com

ipconfig /displaydns  查看DNS缓存
ipconfig /flushdns 擦除DNS缓存
  Linux域名服务 

四,ISP (阿里) 域名申请及解析

ISP(阿里)域名申请及解析
    1.搜索万网或域名注册,访问阿里云网站。
    2.登录阿里云网站。
    3.通过控制台找到域名注册服务。
    4.输入新域名,根据需要选购合适域名。
    5.选择购买。
    6.选择绑定支付宝账号。
    7.邮箱验证。
    8.支付。
    9.返回域名控制面板,绑定IP地址。
    10.域名备案。