首页 > 其他分享 >DNS域名解析

DNS域名解析

时间:2022-10-23 09:13:29浏览次数:47  
标签:named 域名解析 192.168 域名 DNS 服务器 com

DNS域名解析

   

DNS

概念

域名系统(英文:Domain Name System,缩写:DNS),使用应用层协议,是互联网的一项服务。 它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

简单来说就是:把域名转换成网络可以识别的ip地址,再通过IP地址访问主机。 这种由文字组成的名称,显而易见要更容易记忆。

每一台 DNS 服务器都只负责管理一个有限范围(一个或几个域)内的主机域 名和 IP 地址的对应关系,这些特定的 DNS 域或 IP 地址段称为 zone(区域)。 当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

默认端口:

  • 连接DNS服务器,使用TCP协议的53端口。
  • DNS服务器进行解析,使用UDP协议的53端口。

DNS分布式数据结构


域名级数是指一个域名由多少级组成,域名的各个级别被“.”分开,最右边的"."就是根域名,通常省略不写。

顶级域名,又称一级域名,常见的有".com"、".org"、".net"、".cn"等。

二级域名,就是在一级域名前再加一级,如"baidu.com"。


所有的域名必须以点(.)结尾 根域名服务器:

  • IPv4的根名称服务器: 全世界只有13台IPv4根域名服务器。1个为主根服务器在美国。其余12个均为辅根服务器,其中9台在美国,欧洲2个(位于英国和瑞典),亚洲1个位于日本。
  • IPv6的根名称服务器:全球共25台,中国1主3从,美国1主2从。
  • 根域名服务器一旦有任何异常对整个互联网影响都非常大。目前全球有了许多的根域名服务器镜像服务器,这点增加了容错率。

一级DNS服务器: 专门负责一级域名(顶级域名)的解析

通用顶级域名:


一级域名 说明
.com 商业机构,但个人也可以注册
.net 网络服务机构
.edu 教育机构
.int 国际机构
.gov 政府机构
.org 非营利性组织
.mil 军事机构

国家顶级域名:以地理域名命名的顶级域名 。

 
二级域名 说明
.com.cn 中国商业组织
.edu.cn 中国教育机构
.org.cn 中国非盈利组织
.net.cn 中国运营商
子域名服务器: 专门负责子域名的解析(三级及以下域名都叫子域名)。  
三级域名 说明
sina.com.cn 新浪
pku.edu.cn 北京大学
tsinghua.edu.cn 清华大学
常用主机名

主机名

www

mail

news

注:

  • 114.114.114.114是国内移动、电信和联通通用的DNS服务器,解析成功率相对来说更高,国内用户使用的比较多,速度相对快、稳定,是国内用户上网常用的DNS。
  • 8.8.8.8是GOOGLE公司提供的DNS服务器,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用。

 

DNS系统类型

缓存域名服务器

  • 也称为DNS高速缓存服务器
  • 通过向其他域名服务器查询获得域名-->IP地址记录
  • 将域名查询结果缓存到本地,提高重复查询时的速度

主域名服务器

  • 特定DNS区域的权威服务器,具有唯一性
  • 负责维护该区域内所有域名-->IP地址的映射记录
  • 需要自行建立所负责区域的地址数据文件

从域名服务器

  • 也称为辅助域名服务器,是对主域名服务器的热备份
  • 其维护的域名-->IP地址记录来源于主域名服务器
  • 需要从主域名服务器自动同步区域地址数据库

 windows系统查询DNS缓存的命令:ipconfig/displaydns
 windows系统清理DNS缓存的命令:ipconfig/flushdns
 ​
 Linux系统清理DNS缓存需要安装nscd软件,启动、执行“nscd -i hosts”命令

DNS的查询方式(递归查询和迭代查询)

递归查询

  • 主机向本地域名服务器的查询一般都是采用递归查询。
  • 如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。在域名服务器查询期间,客户机将完全处于等待状态。
  • 因此,递归查询只会返回两种信息:要么是所要查询的IP地址,要么是查询失败。

迭代查询

  • 本地域名服务器向根域名服务器的查询是迭代查询。
  • 当根域名服务器收到本地域名服务器发出的迭代查询请求报文后,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。下一个服务器收到请求后也是如此,要么返回IP,要么告诉本地域名服务器下一步去找谁。 即本地域名服务器按照提示的指引依次查询, 直到返回查询的结果为止 。

递归查询和迭代查询的特点:

  • 递归查询:主机只发出一次请求,要求对方给出最终结果。返回的结果只有两种:查询成功或查询失败。
  • 迭代查询:主机需要发起多次请求,返回的是所需IP地址或最佳查询地址。

 

域名的解析过程

 Client(客户机)--> 查询/etc/hosts文件 --> Client DNS Service Local Cache ( 查询DNS服务本机缓存,只有Windows系统有)--> DNS Server(主机向本地域名服务器请求,递归查询)-->DNS Server Cache (本地域名服务器查询缓存信息)--> DNS iteration(本地域名服务器进行迭代查询)——>根域名服务器)-->一级域名服务器-->二级域名服务器-->三级域名服务器...

  • 客户机先去查找本机的/etc/hosts 文件,看文件中是否存在该域名和IP地址的映射记录。如果有就调用,没有就进行下一步。

  • 客户机请求本地域名服务器(LDNS)来解析这个域名,主机要求本地域名服务器直接返回最终结果。在返回结果之前,客户机将完全处于等待状态,不再二次请求。统一由本地域名服务器向各级域名服务器转发请求。

  • 本地域名服务器收到客户机的请求后,先查询自己的缓存信息,如果有这个域名的映射记录则返回结果,没有则进行下一步。

  • 本地域名服务器请求根域名服务器解析这个域名,根域名告诉本地域名服务器去找对应的一级域名服务器。

  • 本地域名服务器请求一级域名服务器解析这个域名,一级域名服务器告诉它去找对应的二级域名服务器。

  • 本地域名服务器请求二级域名服务器解析这个域名,二级域名服务器告诉它去找对应的子域名服务器。

  • 本地域名服务器请求子域名服务器解析这个域名,子域名服务器返回对应的IP地址。

  • 本地域名服务器将IP地址记录到缓存中,并返回给客户机。客户机根据收到的IP地址访问该网站。

bind

BIND配置文件

  • 主配置文件:  /etc/named.conf
  • 根域配置文件: /var/named/named.ca
  • 区域配置文件: /etc/named.rfc1912.zones
  • 保存DNS解析记录的数据文件位于: /var/named/目录下

BIND服务控制

  • systemctl [status|start|stop|restart] named.service

配置文件(全局配置文件)

BIND服务的主配置文件位于: /etc/named.conf

  • 设置DNS服务器的全局参数
  • 包括监听地址和端口、区域数据文件存放的目录等
  • 使用 options{......}; 的配置段

 

 

区域配置文件

区域配置文件位于:/etc/named.rfc1912.zones。

  • 设置本服务器提供域名解析的特定DNS区域
  • 包括域名、服务器角色、数据文件名等
  • 使用 zone "区域名" IN{......}; 的配置段

 

 

 

 

区域数据库文件(zone文件)

BIND服务的区域数据库文件位于/var/named/ 目录下,具体文件名由管理员定义。一般格式为/var/named/域名.zone,例如:/var/named/yuji.com.zone。 局TTL配置项及SOA记录

  • $TTL(Time To Live,生存时间): 表示DNS记录在DNS服务器上的缓存时间,默认单位秒。
  • @:表示当前域名。
  • IN:表示使用 Internet 协议。
  • SOA(Start Of Authority,授权信息开始):表示解析方式。
  • 分号 ";" 开始的部分表示注释信息

)正向解析记录

  • NS记录:域名服务器记录(Name Server)。
  • MX记录:邮件交换记录(Mail Exchange)。
  • A记录:地址记录(Address)。用来指定主机名(或域名)对应的IP地址记录。用于正向解析。
  • CNANE:别名记录。 这种记录允许您将多个名字映射到同一台计算机。
复制代码
         NS  master                       //当前区域的DNS服务器名称      
 master  IN    A     192.168.72.10        //记录DNS服务器master的IP地址
             MX 10   mail.yuji.com        //MX为邮件交换记录,数字越大优先级越低
             MX 20   mail2.yuji.com       //MX为邮件交换记录,数字越大优先级越低
 mail    IN    A     192.168.72.103       //记录正向解析mail.yuji.com对应的IP
 mail2   IN    A     192.168.72.104       //记录正向解析mail2.yuji.com对应的IP
 www     IN    A     192.168.72.101       //记录正向解析www.yuji.com对应的IP
 ftp     IN    A     192.168.72.102       //记录正向解析ftp.yuji.com对应的IP
 web     IN   CNAME   WWW                 //CNAME使用别名,web是www的别名
 *       IN    A     192.168.72.100      //泛域名解析,*表示任意主机名。泛域名有优先级,从上而下匹配。
复制代码

3)反向解析记录

PTR: 指针记录 (Pointer Record) ,用来指定IP地址对应的域名。用于反向解析。

记录的如一列指定IP地址中的主机地址部分

1 2 3 4                NS        master          //当前区域的DNS服务器名称  master  IN     A      192.168.72.10     //记录DNS服务器的IP地址  200     IN    PTR     www.nan.com       //记录反向解析192.168.72.200对应的IP地址  201     IN    PTR     ftp.nan.com       //记录反向解析192.168.72.201对应的IP地址

  

小贴士:

  • TTL可从全局继承
  • 使用 "@" 符号可用于引用当前区域的域名
  • 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应。
  • 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机。

区域数据库文件的特殊应用

基于域名解析的负载均衡

1 2 3 www   IN    A    192.168.19.10 www   IN    A    192.168.19.11 www   IN    A    192.168.19.12

  

  • 同一域名对应到多个IP地址

泛域名解析

  • 找不到精确对应的A记录时,使用星号(*)进行匹配
    *   IN     A     192.168.19.11

    实验

    正向解析

    实验要求:

    架设一台DNS服务器负责yuji.com域的域名解析工作。DNS服务器的IP地址为192.168.72.10,域名为master.pp.com。要求为以下域名做正向解析工作。

www.pp.com         192.168.19.21
mail.pp.com        192.168.19.22
ftp.pp.com         192.168.19.23

实验思路:

  1. 安装bind软件包
  2. 修改主配置文件
  3. 修改区域配置文件,添加正向区域配置
  4. 配置正向区域数据文件
  5. 启动服务,关闭防火墙
  6. 在客户端的域名解析配置文件中添加DNS服务器地址
  7. 测试DNS解析,验证实验是否成功。

实验步骤:

步骤一:

安装bind软件包

复制代码
yum install -y bind     //安装bind软件包
[root@localhost ~]# rpm -qc bind     //查询bind软件配置文件所在路径
/etc/logrotate.d/named
/etc/named.conf               //主配置文件
/etc/named.iscdlv.key
/etc/named.rfc1912.zones          //区域配置文件
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost              //区域数据配置文件
/var/named/named.loopback
复制代码

 

 

 

复制代码
options {
        listen-on port 53 { any; };       //允许DNS服务器监听所有IP地址
        listen-on-v6 port 53 { ::1; };
        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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };        //允许所有客户端查询
复制代码

 

步骤二:

修改主配置文件

复制代码
options {
        listen-on port 53 { any; };       //允许DNS服务器监听所有IP地址
        listen-on-v6 port 53 { ::1; };
        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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };        //允许所有客户端查询
复制代码

 

 

步骤三:

修改区域配置文件,添加正向区域配置

复制代码
vim /etc/named.rfc1912.zones            //编辑区域配置文件


zone "pp.com" IN {                  //定义正向DNS区域
        type master;               //定义区域类型为master
        file "pp.com。zone";            //设置对应的正向解析数据库文件
        allow-update { none; };          //
};
复制代码

 

 

步骤四:

配置正向区域数据文件

复制代码
[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@localhost named]# cp -p named.localhost pp.com.zone
[root@localhost named]# vim pp.com.zone 

$TTL 1D
@       IN SOA  pp.com. admin.pp.com.zone. (
                                        0       ; serial     //更新序列号,可以是 10 位以内的整数
                                        1D      ; refresh    //刷新时间,重新下载地址数据的间隔
                                        1H      ; retry      //重试延时,下载失败后的重试间隔
                                        1W      ; expire     //失效时间,超过该时间仍无法下载则放弃
                                        3H )    ; minimum    //无效解析记录的生存周期
        NS      pp.com.
                  A     192.168.19.20
www    IN         A     192.168.19.21
mail   IN         A     192.168.19.22
ftp    IN         A     192.168.19.23
*      IN         A     192.168.19.24
复制代码

 

 

 

 

 

 

  • “@”这里是一个变量,当前DNS区域名
  • SOA记录中的更新序列号用于同步主、从服务器的区域数据,当从服务器判断区域更新时,若发现主服务器中的序列号与本地区域数据中的序列号相同,则不会进行下载。
  • “pp.com.”此为完全合格域名(FQDN),后面有个“.”不能漏掉
  • “admin.pp.com.”表示管理员邮箱,这里的“@”符号已有其他含义,所以用“.”代替

步骤五:

启动服务,关闭防火墙

1 2 3 [root@localhost named]# systemctl start named [root@localhost named]# systemctl stop firewalld [root@localhost named]# setenforce 0

  

 

 

  • 如果服务启动失败,可以查看日志文件来排查错误
    tail -f /var/log/messages
  • 如果服务启动卡住,可以执行下面命令解决
    rndc-confgen -r /dev/urandom -a

步骤六:

在客户端的域名解析配置文件中添加DNS服务器地址

方法一:

复制代码
[root@localhost named]# vim /etc/resolv.conf 

# Generated by NetworkManager
nameserver 192.168.19.20
#nameserver 114.114.114.114

#修改完立即生效
复制代码

 

 

复制代码
[root@localhost named]# vi /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=34aeac22-1154-4c4b-a76c-55c5e7b81429
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.19.20
NETMASK=255.255.255.0
GATEWAY=192.168.19.2
DNS1=192.168,19,20
#DNS2=114.114.114.114

[root@localhost named]# systemctl restart network

#修改完后需要重启网卡
复制代码

 

 

步骤七:

测试DNS解析,验证实验是否成功。

复制代码

[root@localhost named]# host www.pp.com
www.pp.com has address 76.223.65.111
www.pp.com has address 13.248.216.40

[root@localhost named]# host ftp.pp.com
ftp.pp.com has address 76.223.65.111
ftp.pp.com has address 13.248.216.40

复制代码

 

 

反向解析

实验要求:

要求为以下IP地址做反向解析工作。

 192.168.19.200      www.chc.com
 192.168.72.201      ftp.chc.com
复制代码

实验思路:

  1. 修改区域配置文件,添加反向区域配置
  2. 配置反向区域数据文件
  3. 重启服务进行测试

实验步骤:

步骤一:

复制代码

root@localhost named]# vim /etc/named.rfc1912.zones

zone "68.168.192.in-addr.arpa" IN {             //反向解析的地址倒过来写,代表解析192.168.19段的地址
type master; 
file "pp.com.zone";                        //指定区域数据文件为chc.com.zone
allow-update { none; }; 
};

 

复制代码

 

 

步骤二:

配置反向区域数据文件

 

 

1 2 3 4 5 6 7 8 9 10 11 $TTL 1D @       IN SOA  chc.com.admin.chc.com. (                                         0       ; serial                                         1D      ; refresh                                         1H      ; retry                                         1W      ; expire                                         3H )    ; minimum         NS      chc.com.                   A     192.168.68.100 200     IN      PTR     www.chc.com 201     IN      PTR     mail.chc.com

  

步骤三:

重启服务进行测试

[root@localhost named]# host 192.168.19.200
200.19.168.192.in-addr.arpa domain name pointer www.chc.com.19.168.192.in-addr.arpa.
[root@localhost named]# nslookup 192.168.19.201
201.19.168.192.in-addr.arpa    name = mail.chc.com.19.168.192.in-addr.arpa.

 

 

构建主从域名服务器

实验:

实验思路:

  1. 修改主域名服务器的区域配置文件,修改正、反向区域配置
  2. 修改从域名服务器的主配置文件
  3. 修改从域名服务器区域配置文件,添加正、反区域配置
  4. 主、从都重启动服务,并查看区域数据文件是否已下载成功
  5. 在客户端的域名解析配置文件中添加从DNS服务器地址;
    在服务端端的域名解析配置文件中添加主DNS服务器地址
  6. 测试

实验步骤:

步骤一:

修改主域名服务器的区域配置文件,修改正、反向区域配置

复制代码
[root@localhost ~]# vim /etc/named.rfc1912.zones

zone "jlx.com" IN {
        type master;            //类型为主区域
        file "jlx.com.zone";
        allow-transfer { 192.168.19.10; };    //允许从服务器下载正向区域数据,这里添从服务器的IP地址
};
    

zone "19.168.192.in-addr.arpa" IN {
        type master;
        file "jlx.com.zone.local";
        allow-transfer {192.168.19.10; };
};:
复制代码

步骤二:

修改从域名服务器的主配置文件

复制代码

options {
listen-on port 53 { 192.168.19.10; };            //监听53端口,ip地址使用提供服务的本地IP即可,也可用any代表所有
listen-on-v6 port 53 { ::1; };
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";
recursing-file "/var/named/data/named_recursing":
"/etc/named.conf" 64L, 1954C           //允许使用本DNS解析服务的网段,也可用any代表所有

复制代码

 

 

步骤三:

修改从域名服务器区域配置文件,添加正、反区域配置

复制代码
[root@localhost ~]# vim /etc/named.rfc1912.zones

zone "jlx.com" IN {
        type slave;
        file "slaves/jlx.com.zone";        //下载的区域数据文件保存到slaves/目录下
        masters { 192.168.19.20; };   //指定主服务器的IP地址

zone "19.168.192.in-addr.arpa" IN {
        type slave;
        file "slaves/jlx.com.zone.local";
        masters { 192.168.19.20; };
复制代码

步骤四:

主、从都重启动服务,并查看区域数据文件是否已下载成功

1 2 3 4 5 systemctl restart named [root@localhost ~]# ls -l /var/named/slaves/ 总用量 8 -rw-r--r--. 1 named named 252 8月  17 18:06 jlx.com.zone -rw-r--r--. 1 named named 400 8月  17 18:06 jlx.com.zone.local

  

 

 

 析配置文件中添加从DNS服务器地址

 

[root@localhost ~]# echo "nameserver 192.168.19.10">> /etc/resolv.conf 
[root@localhost ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 192.168.19.20
nameserver 192.168.19.10

 

 在服务端端的域名解析配置文件中添加主DNS服务器地址

1 2 3 4 5 [root@localhost ~]# echo "nameserver 192.168.19.20">> /etc/resolv.conf [root@localhost ~]# cat /etc/resolv.conf # Generated by NetworkManager nameserver 192.168.19.10 nameserver 192.168.19.20

  

 

 

 

步骤六:

测试

1 2 3 4 [root@localhost ~]# host 192.168.19.200 200.19.168.192.in-addr.arpa domain name pointer www.jlx.com.19.168.192.in-addr.arpa. [root@localhost ~]# nslookup 192.168.19.200 200.19.168.192.in-addr.arpa name = www.jlx.com.19.168.192.in-addr.arpa.

  

 

 

总结:

  • 一定要关闭防火墙和selinux。
  • 编辑配置文件和区域数据库文件时,需要严格注意语法书写,其格式非常严格。
  • ”@“是DNS记录中的保留字,表示当前域名。
  • 修改配置文件后,一定要重启服务,之后才能生效。

标签:named,域名解析,192.168,域名,DNS,服务器,com
From: https://www.cnblogs.com/ponyton/p/16817894.html

相关文章

  • dns
    目录:1、DNS服务类型2、DNS查询类型及方式3、正向解析查询过程4、DNS软件bind5、SOA6、网络dns服务器7、反向解析8、主从复制bind软件用来实现dnsDNS:ip地址与......
  • ubuntu2004使用bind9配置dns服务器
    使用bind9可以配置的NDS服务器类型有五种:分别为缓冲服务器、主服务器、从服务器、混合服务器以及私密服务器。这次主要试了下主服务器。1.安装bind9 sudoapt-getins......
  • DNS服务
    一、DNS介绍1.1DNS概述DNS:域名系统,应用层协议,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,基于C/S架构,服务器端:5......
  • 18-18- 分布式系统DNS域名设计与实践_ev
                                                   ......
  • Linux DNS服务
    导图1.DNS(DomainNameSystem域名系统)应用层协议,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS服务使用TC......
  • URLDNS链
    1.前言URLDNS利用链是反序列化中较为简单的一条,但利用效果是只能触发一次dns请求,而不能去执行命令。比较适用于漏洞验证这一块,而且URLDNS这条利用链并不依赖于第三方的类,......
  • DNS域名解析
    DNS简介在日常生活中人们习惯便用域名访问服务器,但机器间互相只认IP地址,域名与1P地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个域名只可以对应一个ip地址,......
  • Linux中的DNS--域名解析服务
    一、DNS简介1.1、概述DNS(DomainNameSystern)域名系统,应用层协议,是互联网的一项服务,是将域名转换成网络可以识别的IP地址,再通过IP地址访问主机。这种由文字组成的名称......
  • DNS
    DNS具体流程递归查询主机向本地域名服务器的查询一般都是采用递归查询。所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务......
  • DNS域名解析及实验配置
    一,域名服务1,何为DNSDNS域名系统是因特网的一项核心服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,而不用记住能够被机器直接读取的IP数......