DNS解析——上

20 篇文章 1 订阅

DNS

域名解析,BIND:Berkeley Internet Name Domain

  • DNS:Domain Name Service,名称解析(转换)Name Resolving(背后有查询过程,这就需要用到"数据库")

  • 域名:.com域名是一级一级的,一个完全限定域名是由很多域名一层一层类加而成的

    www.baidu.com(主机名FQDN(完全限定域名):full qualified domain name)

DNS出现的原因:人类容易记住主机名,计算机只能识别IP,所以需要将主机名和IP一一对应起来,这样都方便。即:

FQDN <------> IP

172.25.254.1 www.fsx.com

  • nsswitch:提供名称解析平台

解决域名和IP对应起来方案

第一个解决方案:file:/etc/hosts

IPADDR FQDN Ailases

172.25.254.1 www.fsx.com www

第二个解决方案:

  • IANA(互联网地址名称分配机构,有政府背景)

  • ICANN(这是一个民间组织,管理最顶级的集合)

  1. 周期性任务:每一定周期让客户端更新一次hosts,不过仍不能保持域名解析是最新的

  2. SERVER:IANA提供一个SERVER,每次客户端要访问,直接向SERVER发起请求,SERVER帮助解析;随着业务增多SERVER不堪重负

  3. 分布式数据库,把DNS从一个集中的数据库,转化为一个分布式的数据库。只管理自己下级域名(下级不知道上级信息,只知道根域)

dns:DNS

stub resolver:名称解析器

ping www.baidu.coom

ping先利用stub resolver去/etc/hosts寻找www.baidu.com的域名解析,如果没有再向DNS服务器查找域名解析

域名解析

www.fsx.com. //注意:最后有一个'.',这是根域,.com是顶级域,以此类推。

根域: 就是一个"."

TLD:top level domain 成为顶级域/一级域。如:

  • 组织域:.com、.org、.net等

  • 国家域:.cn、.jp等

  • 反向域:将IP转换成域名

查询域名的IP
递归查询

只发出一次请求,然后等待回应

请求:A-->B-->C

响应:C-->B-->A

整个过程A只发出一次请求

迭代查询

发出多次请求

请求:A-->B B-->A (A向B请求,B返回C的信息让A去向C请求)

A再次请求:A-->C C-->A (A向C发出请求,C响应)

整个过程A多次发出请求

解析方式

正向:FQDN-->IP

反向:IP-->FQDN

两段式:互联网上的IP查询,需要同时用到递归,迭代查询,客户端向DNS服务器查询是递归查询,DNS服务器向别的服务器查询是迭代查询。

DNS服务器:

  • 接受本地客户查询请求(递归)。

  • 来自外部客户端请求:请求权威答案

    ​ 肯定答案(有):TTL

    ​ 否定答案(没有):TTL

  • 外部客户端请求:非权威答案

DNS服务器

根节点服务器

全球总共由十三个,a.root-server.net ----- m.root-server.net

这十三个根节点应该保持完全一致(时时同步)。

DNS服务器主从结构

为了避免一个DNS服务器的单点故障,应该设置主从结构的DNS服务器架构;当然这就要求主从服务器的数据必须时时同步;主DNS提示更新,辅助DNS定期去请求(如果有更新)拉取数据

  • 主DNS服务器:数据修改

  • 辅助DNS服务器:请求数据同步

如果主DNSdown机,辅助DNS服务器在有效期内会一致请求数据拉取,超过有效期仍没有响应,辅助DNS自杀。集群进行投票选举出新的主DNS

serial number:版本号(序列号)

refresh:检查的时间周期

retry:重试时间(当发现版本号不一样,就retry时间内再次查看)

expire:过期时间(retry次数达到一定时间,不再查看)

nagative answer ttl:否定答案

缓存DNS服务器
转发器
  • 不缓存,只转发请求

数据库中,每一个条目称为一个资源记录(resource record)

资源记录

资源记录的格式:

NAME TTL值(可以省略) IN RRT(资源记录类型) 数据(value)

TTL 600s;

www.fsx.com. IN A 172.25.254.1 //正向解析

1.1.1.1 IN PTR www.fsx.com. //反向解析

";"号是注释

资源记录类型:

  • NS(name server):Domain Name --> FQDN

    SOA(Start Of Authority):起始授权记录,用于标明一个区域内部,主从DNS服务器之间,如何同步数据,以及起始授权对象是谁。

    ​ ZONE NAME 600 IN SOA FQDN ADMINISTRATOR_MAILBOX(邮箱地址,具体格式:fsx@qq.com(这里不能使用@,@有特殊意义) --> fsx.qq.com) (serial number/refresh/retry/expire/NA(可以使用单位:M/H/D/W,默认是秒) ttl)

    ​ fsx.com. 600 IN SOA ns1.fsx.com. fsx.qq.com. (20180327 1H 5M 1W 1D)

    fsx.com. 600 IN NS ns1.fsx.com.

    fsx.com. 600 IN NS ns2.fsx.com.

    ns1.fsx.com 600 IN A 172.25.254.3

    ns2.fsx.com 600 IN A 172.25.254.4

  • A记录(Address):FQDN-->IPv4

    ns.fsx.com. 600 IN A 172.25.254.1

  • AAAA记录:FQDN-->IPv6

  • MX(Mail eXchanger):ZONE NAME --> FQDN

    邮件服务器格式:zone name TTL IN MX pri VALUE

    fsx.com. 600 IN MX 10(优先级) mail.fsx.com.

    mail.fsx.com. 600 IN A 172.25.254.2

    优先级:从0-99,数字越小,级别越高

  • PTR(指针记录):IP-->FQDN

  • CNAME(canonical name:别名记录):FQDN-->FQDN

    www2.fsx.com. IN CNAME www.fsx.com.

    www2是www的别名,www是www2的正式名称

域:Domain,在DNS角度,域是个逻辑概念

区域:ZONE,是一个物理概念

fsx.com. 172.25.254.0/24

在.com授权:

  • 正向区域文件:

fsx.com. IN SOA

www.fsx.com. IN A 172.25.254.1 //全写一定要加.

www IN A 172.25.254.1 //简写不加.

  • 反向区域文件:

254.25..172.in-addr.arpa. IN SOA ...

1.254.25.172.in-addr.arpa. IN PTR www.fsx.com. //全写,注意IP是反着写,而且后缀".in-addr-arpa."

1 IN PTR www.fsx.com. //简写

区域传送类型

完全区域传送(axfr)

增量区域传送(ixfr):只传送改变/增加的内容

区域类型基本包括四种:

  • 主区域:master

  • 从区域:slave

  • 提示区域:hint (定义根域在什么地方)

  • 转发区域:forward

DNS服务器建立

ISC

官方网址:www.isc.org,提供DNS(bind)和DHCP服务

BIND

bind相关rpm包介绍:

bind-utils.x86_64 提供很多dns客户端(命令行)工具

bind-libs.x86_64 提供支持bind的库文件

bind.x86_64 主包,(服务器包)

bind-chroot.x86_64 默认bind在/下,切换/,保证安全(伪装/)

​ 类似于:本来在/etc/named/

​ 迁移到

​ /var/named/chroot/etc/named

​ 即将/var/named/chroot作为/

bind的主配置文件:

/etc/named.cond

​ BIND进程的工作属性

​ 区域的定义

/etc/rndc.key

​ rndc:remote name domain controller,密钥文件

​ 配置信息:/etc/rndc.conf

/var/named/

​ 区域数据文件

/etc/rc.d/init.d/named

​ (start/stop/restart/reload/status/configtest:测试配置文件是否有语法错误)

而进制程序:named

安装

安装bind包

yum install bind bind-libs.x86_64 bind-utils.x86_64

rpm -ql bind //可以查看所有生成的文件

查看/var/named/中的文件 //区域文件数据

named.ca 存放根域信息

named.localhost 本地主机名解析成127.0.0.1;正向解析

name.loopback 将127.0.0.1解析成本地主机名;反向解析

配置文件解析

查看/etc/named.conf配置文件,该配置文件由四个部分组成:

  • options 全局选项

  • logging 日志

  • zone 定义区域

  • include 分片文件(将很多定义剥离到另一个文件,用include链接进来)

options {

    listen-on port 53 { 127.0.0.1; };   //监听IPV4端口
    listen-on-v6 port 53 { ::1; };      //监听IPV6端口
    directory "/var/named"; //数据文件目录
    allow-query     { localhost; };     //允许递归

};

zone "zone name" IN{

​ type {master/slave/hint/forward};

​ //如果是根域

​ file "named.ca"

​ //如果是master,还要定义file

​ file "区域数据文件路径(向对路径,向对/var/named/)"

​ //如果是slave,

​ file "区域数据文件";

​ master { master1_ip;master2_ip ...};

} ;

eg:

/etc/named.conf

options {

​ directory "/var/named";

};

zone "." IN{

​ type hint;

​ file "named.ca";

};

zone "localhost" IN{

​ type master;

​ file "named.localhost";

};

zone "0.25.172.in-addr.arpa" IN{

​ type master;

​ file "named.loopback";

};

zone "fsx.com" IN{

​ type master;

​ file "fsx.com.zone";

};

vim /var/named/fsx.com.zone

$TTL 600 ;全局定义TTL=600(秒)@ IN SOA ns1.fsx.com. admin.fsx.com. (2017032701

                                                    1H
                                                    5M
                                                    2D
                                                    6H
                                                    )

fsx.com. IN NS ns1.fsx.com.

​ IN MX 10 mail ;可以省略域名,表示和上一层域相同

ns1 IN A 172.25.254.2mail IN A 172.25.254.2www IN A 172.25.254.111www IN A 172.25.254.2ftp IN CNAME 172.25.254.111

/etc/init.d/named configtest查看配置文件是否有语法错误

/etc/init.d/name start 开启DNS服务

DNS监听的协议及端口:
​ 53/udp:
​ 53/tcp:从主传数据,保证数据完整性,使用
​ 953/tcp,rndc(远程域名服务器控制器)

netstat -anple | grep named 查看named端口(udp/53;tcp/53;tcp/953)

测试
dig命令

DIG:domain information groper 常用的域名查询工具,可以用来测试域名系统工作是否正常。

@<服务器地址>:指定进行域名解析的域名服务器;
-b<ip地址>:当主机具有多个IP地址,指定使用本机的哪个IP地址向域名服务器发送域名查询请求;
-f<文件名称>:指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息;
-P:指定域名服务器所使用端口号;
-t<类型>:指定要查询的DNS数据类型;
-x<IP地址>:执行逆向域名查询;
-4:使用IPv4;
-6:使用IPv6;
-h:显示指令帮助信息。

dig -t NS .查找根域的所有DNS服务器

dig -t NS www.fsx.com

;; QUESTION SECTION:;www.fsx.com. IN NS

;; AUTHORITY SECTION:fsx.com. 600 IN SOA ns1.fsx.com. admin.fsx.com. 2017032701 3600 300 172800 21600

dig www.fsx.com

;; QUESTION SECTION:;www.fsx.com. IN A

;; ANSWER SECTION:www.fsx.com. 600 IN A 172.25.254.2www.fsx.com. 600 IN A 172.25.254.111

;; AUTHORITY SECTION:fsx.com. 600 IN NS ns1.fsx.com.

;; ADDITIONAL SECTION:ns1.fsx.com. 600 IN A 172.25.254.2

host命令

host -t RT NAME:查询名称的解析结果

nslookup命令

nslookup可以使用交互式模式,即:

nslookup>

server IP

set q=RT

NAME

反向区域配置
  • 配置1:在主配置文件中添加(/etc/named.conf)

zone "254.25.172.in-addr.arpa" IN{

    type master;
    file "172.25.254.zone";

};

  • 配置2:在/var/named/添加文件“172.25.254.zone”,内容如下:

$TTL 600

;254.25.172.@ IN SOA www.qpy.com. root.localhost (2018032701

    1H
    5M
    2D
    6H )

            IN      NS      www.qpy.com.

2 IN PTR www.fsx.com.2 IN PTR mail.qpy.com.111 IN PTR www.qpy.com.2 IN PTR ftp.qpy.com.111 IN PTR ftp.qpy.com.

  • 测试

    此处使用nslookup测试

[root@localhost named]# nslookup

server 172.25.254.111Default server: 172.25.254.111Address: 172.25.254.111#53set q=PTR172.25.254.111Server: 172.25.254.111Address: 172.25.254.111#53

111.254.25.172.in-addr.arpa name = ftp.qpy.com.111.254.25.172.in-addr.arpa name = www.qpy.com.

172.25.254.2 Server: 172.25.254.111Address: 172.25.254.111#53

2.254.25.172.in-addr.arpa name = www.fsx.com.2.254.25.172.in-addr.arpa name = mail.qpy.com.2.254.25.172.in-addr.arpa name = ftp.qpy.com.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值