admin管理员组

文章数量:1567245

DNS域名解析

  • 一.DNS详解
    • 1.1 DNS系统的作用
      • 1.1.1 为什么需要DNS系统?
      • 1.1.2 互联网中的114查号台/导航员
    • 1.2 DNS是什么
    • 1.3 DNS系统的作用
      • 1.3.1 两种查询方式:
    • 1.4 常用域名注解
      • 1.4.1 常见的各级域名
      • 1.4.2 全域名
      • 1.4.3 管理售卖机构
      • 1.4.4 补充
    • 1.5 DNS使用的协议及端口号
    • 1.6 DNS服务器系统类型
      • 1.6.1 缓存域名服务器
      • 1.6.2 主域名服务器
      • 1.6.3 从域名服务器
      • 1.6.4 转发域名服务器
  • 二. BIND服务
    • 2.1 BIND服务端程序
    • 2.2 主配置文件named.conf
  • 三. 实验配置
    • 3.1 DNS正向解析实验
    • 3.2 反向解析实验
    • 3.3 DNS主从同步
      • 总结:

引言: 分享一下配置DNS主从服务器的步骤和一些经验。保险起见,我们在修改配置文件之前,应该备份一下,避免因为修改错误影响系统

一.DNS详解

1.1 DNS系统的作用

1.1.1 为什么需要DNS系统?

原因: 当客户端访问www.baidu时计算机是识别不了的,需要转换成IP地址,计算机找到IP就能访问到

web,就可以访问到对应的百度服务器。

1.1.2 互联网中的114查号台/导航员

13个根服务器的分布地点及IP地址:

A,INTERNIC.NET(美国弗吉尼亚州),IP地址:198.41.0.4

B,美国信息科学研究所(美国加利弗尼亚州),IP地址:128.9.0.107

C,PSINet公司(美国弗吉尼亚州),IP地址:192.33.4.12

D,马里兰大学(美国马里兰州) IP地址:128.8.10.90

E,美国航空航天管理局(美国加利弗尼亚州),IP地址:192.203.230.10

F,因特网软件联盟(美国加利弗尼亚州),IP地址:192.5.5.241

G,美国国防部网络信息中心(美国弗吉尼亚州),IP地址:192.112.36.4

H,美国陆军研究所(美国马里兰州),IP地址:128.63.2.53

I,Autonomica公司(瑞典斯德哥尔摩),IP地址:192.36.148.17

J,VeriSign公司(美国弗吉尼亚州),IP地址:192.58.128.30

K,RIPE NCC(英国伦敦),IP地址:193.0.14.129

L,IANA(美国弗吉尼亚州),IP地址:198.32.64.12

M,WIDE Project(日本东京),IP地址:202.12.27.33

根服务器主要用来管理互联网的主目录,全世界只有13台(这13台根域名服务器名字分别为“A”至“M”),1个为主根

服务器在美国。其余12个均为辅根服务器,其中9个在美国,欧洲2个,位于英国和瑞典,亚洲1个位于日本。

PS:搞一台回来你就可以吃喝不愁,永世无忧

在与现有IPv4根服务器体系架构充分兼容基础上,由下一代互联网国家工程中心牵头发起的“雪人计划”于2016年在

美国、日本、印度、俄罗斯、德国、法国等全球16个国家完成25台IPv6(互联网协议第六版)根服务器架设,事实

上形成了13台原有根加25台IPv6根的新格局,为建立多边、民主、透明的国际互联网治理体系打下坚实基础。

1.2 DNS是什么

英文原义:Domain Name Server

中文释义:域名解析系统

注  解:简单地说,该协议主要负责将域名转换成网络可以识别的IP地址,比如将www.Baidu转换成

119.75.217.109,域名和IP地址之间是一一对应的。因为访问网站的时候,最终都是转换成IP地址进行访问的,如果

直接设置DNS服务器那么可以提高网络的访问速度,而且可以保证访问的正确性。

应 用:在Windows中要使用DNS协议,只要设置相应的DNS服务器地址即可。具体的方法同IP地址的设置:比如在

Windows XP中,首先,打开“本地连接”属性窗口,在“常规”选项卡中双击“Internet协议(TCP/IP)”;然后在打开的

属性窗口中,选中“使用下面的IP地址”设置IP地址、子网掩码以及默认网关,选中“使用下面的DNS服务器地址”,在

首选DNS服务器和备用DNS服务器中输入相应的DNS服务器地址;最后,连续单击“确定”按钮即可

1.3 DNS系统的作用

正向解析: 根据域名查找对应的IP地址,查询hosts文件

反向解析: 根据IP地址查找对应的域名(域名的反向解析不是很常用,只在一些特殊场合才会用到,比如:邮

件服务器中来阻拦垃圾邮件)

正向解析:FQDN--------IP(一对多)------一般使用正向解析

反向解析:IP------------FQDN

DNS的分布式数据结构

1.3.1 两种查询方式:

(1)递归查询
递归查询是一种DNS服务器的查询模式在该模式下DNS服务器接收客户机请求,必须使用一个准确的查询结果回复

客户机。如果DNS服务器本地没有存储查询 DNS信息,那么该服务器会询问其他服务器,并将返回的查询结果提交

给客户机。

总的一句话,就是客户机发送请求后自己只用等待结果即可,中间具体过程交给服务器实现。

(2)迭代查询

DNS查询时S服务器查询结果,而告诉客户机另一台DN服务器地址,客户机再向这台NS服务器提求,依环直到回查

询的结果为止

总的一句话,客户机的请求需要自己挨个去查询才能得到结果,服务器没有结果时候只会给你提供其它服务器的地

址,而不会帮你去请求查询,这与递归截然相反

1.4 常用域名注解

域名: 通常由一个完全合格域名(FQDN)标识。FQDN 全称Fully Qualified Domain Name,它能准确表示出其相对

于DNS域树根的位置,也就是节点到DNS树根的完整表述方式,从节点到树根采用反向书写,并将每个节点用“”分

隔,对于DNS域google来说,其完全正式域名(FQDN)为google。

例如: google为com域的子域,其表示方法为google,而www为google域中的子域,可以使用

www.google,表示。

注意: 通常,FODN 有严格的命名限制,长度不能超过256字节,只允许使用字符a-z,0-9,A-Z和减号(-)。点号(.)

只允许在域名标志之间(例如"google")或者 FQDN的结尾使用。

域名不区分大小,由最顶层到下层,可以分成:根域、顶级域、二级域、子域

1.4.1 常见的各级域名

一级DNS服务器:专门负责一级域名的解析(一般代表一种类型的组织机构或国家地区):

一级域名解释
工商企业
网络供应商
.edu教育机构
中国国家域名
团体组织
.gov政府部门

二级DNS服务器:专门负责二级域名的解析

二级域名
.edu

子域名DNS服务器:专门负责子域名的解析也称为三级域名

三级域名
.ina
.pku.edu

主机站点

主机名
tts9
tts6
mail
www

1.4.2 全域名

全域名:同时带有主机名和域名的名称 FQDN=Hostname+DomainName

如:www.baidu.

注意:最前而的一定是主机,最后一个点表示根域,通常是省略不写的,但实际www.baidu=www.baidu.

域名结构:

http://www.sina./

http://主机名 . 子域 . 二级域 . 顶级域 根域 ./

1.4.3 管理售卖机构

IANA,互联网数字分配机构

Internet Assigned Numbers Authority -整个域名系统的最高权威机构主管DNS根、.int、.arpa 等国际化域名资源

CNNIC中国互联网络信息中心

China Internet Network Information Center -主管国家顶级域

域名代理/注册/购买服务商

新网,http://www.xinnet
万网,http://www
中国互联,http://hulian.top
阿里云,https://aliyun/
腾讯云,https://cloud.tencent/
西部数码,https://www.west/
亚马逊,https://aws.amazon/cn/

1.4.4 补充

114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用。

8.8.8.8是GOOGLE公司提供的DNS,该地址全球通用,相对来说,更适合国外以及访问国外网站的用户使用

223.5.5.5 和223.6.66:阿里云DNS

IPV6 2400:3200:1 和2400:3200baba::1

江苏省南京市(中国电信)

首选DNS为:218.2.135.1 备用DNS为:61.147.37.1

1.5 DNS使用的协议及端口号

DNS的默认端口为53。

DNS的端口协议分别为TCP和UDP

区域传送时使用TCP,主要有一下两点考虑:

1.辅域名服务器会定时(一般时3小时)向主域名服务器进行查询以便了解数据是否有变动。如有变动,则会执行一

次区域传送,进行数据同步。区域传送将使用TCP而不是UDP,因为数据同步传送的数据量比一个请求和应答的数

据量要多得多。

2.TCP是一种可靠的连接,保证了数据的准确性。

域名解析时使用UDP协议:

客户端向DNS服务器查询域名,一般返回的内容都不超过512字节,用UDP传输即可。不用经过TCP三次握手,这

样DNS服务器负载更低,响应更快。虽然从理论上说,客户端也可以指定向DNS服务器查询的时候使用TCP,但事

实上,很多DNS服务器进行配置的时候,仅支持UDP查询包。

1.6 DNS服务器系统类型

1.6.1 缓存域名服务器

也称为DNS高速缓存服务器

通过向其他域名服务器查询获得域名 ---->IP地址记录

将域名查询结果缓存到本地,提高重复查询时的速度

1.6.2 主域名服务器

特定DNS区域的权威服务器,具有唯一性

负责维护该区域所有域名 ---->IP地址的映射记录

需要自行建立所负责区域的地址数据文件

1.6.3 从域名服务器

也称为辅助服务器,是对主域名服务器的热备份

其维护的域名----->IP地址记录来源于主域名服务器

需要从主域名服务器自动同步区域地址数据库

1.6.4 转发域名服务器

负责所有非本地域名的本地查询

转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求一次转发到指定的域名服务器,知道查到结

果为止,否则返回无法映射的结果。

二. BIND服务

2.1 BIND服务端程序

主要执行程序:/usr/sbin/named

默认监听端口 :53

主配置文件 /etc/named.conf

保存DNS解析记录的数据文件位于 /var/named

BIND服务控制

systemctl 【status|start|stop|restart】named.service

2.2 主配置文件named.conf

全局配置部分

设置DNS服务器的全局参数

包括监听地址和服务端口、区域数据文件存放的目录等

使用options {……};的配置端

三. 实验配置

3.1 DNS正向解析实验

1.安装bind软件

rpm -q bind ###查看是否有安装
yum install -y bind #### 没有安装就用yum安装


2. 查看需要修改的配置文件所在路径
rpm -qc bind ###查看配置文件

3. 修改主配置文件(etc/named.conf)

vim /etc/named.conf ###进入编辑器编辑配置文件

options {
  listen-on-v6 poet 53 { 192.168.161.136 ; };              #监听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地址等信息
};

4. 修改区域配置文件,添加正向区域配置(/etc/named.rfc1912.zones)

vim /etc/named.rfc1912.zones

zone "liang. com" IN {                                     #正向解析"liang"区域
type master;                                               #类型为主区域
 file "liang. com. zone";                                  #指定区域数据文件为liang. com. zone
allow-update {192.168.161.136; };
};

5.配置正向区域数据文件(/var/named/liang.zone)

cd /var/named/ ####进到正向数据文件区域进行备份

cp -p named.localhost liang.zone ###保留源文件的权限和属主的属性复制

vim /var/named/liang.zone ###进入编辑器编辑内容

$TTL 1D                                                  #设置缓存解析结果的有效时间
@       IN SOA liang. admin.liang. (
                                       0; serial .
                                       1D; refresh
                                       1H; retry
                                       1W; expire
                                       3H ) ; minimum
               NS             liang.                      #记录当前区域的DNS服务器的名称
               A               192.168.161.136                  #记录主机IP地址
IN   MX  10              mail.zhangbin.                 #MX为邮件交换记录,数字越大优先级越低
www  IN  A              192.168.161.136                  #记录正向解析www.liang对应的IP
mail   IN  A             192.168.161.100
ftp      IN CNAME  www                              #CNAME使用别名,ftp是www的别名
*        IN   A           192.168.161.200                  #泛域名解析,“*"代表任意主机名

6.启动服务,关闭防火墙

systemctl start named ###启动服务

systemctl stop firewalld ### 关闭防火墙

systemctl status named ### 查看服务状态

注:

**若服务启动不了可以用tail -f /var/log/messages ###查看日志文件来排除错误 **

rndc-confgen -r /dev/urandom -a #如果服务启动卡住,可以执行此命令解决
7. 检查配置文件

named-checkconf -z /etc/named.conf

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

法 1:
vim /etc/resolv.conf #修改完后立即生效
nameserver 192.168.161.136

cat /etc/resolv.conf ###查看

法 2:
vim /etc/ sysconfig/network- scripts/ ifcfg-ens33 #修改完后需要重启网卡
DNS1=192.168.161.136

systemctl restart network ###重启网卡

9. 测试DNS解析(nslookup/host)

3.2 反向解析实验

前面配置一样: 从安装bind服务到修改主配置文件

1、修改区域配置文件,添加反向区域配置

vim /etc/named. rfc1912. zones ###进入编辑器修改反向及解析

zone "136.161.168.192. in-addr.arpa" IN {     #反向解析的地址倒过来写,代表解析192.168.223段的地址
     type master;
     file "liang.zone.local";       #指定区域数据文件为liang.zone.local
     allow-update { none; } ;

2.备份指定区域数据配置文件,然后编辑指定区域数据配置文件

cd /var/ named/
cp -p named.localhost liang.zone.local
vim /var/named/liang.zone.local
$TTL 1D
@ IN SOA liang. admin.liang. ( #这里的“@"代表192.168.161段地址 )
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS liang.
A 192.168.161.136
100 IN PTR www.liang.
200 IN PTR mail.liang
50 IN PTR ftp.liang

#PTR为反向指针,反向解析192.168.161.200地址结果为www.liang.
                                 邮箱地址为mail.liang


3.使用 host或nslookup 测试即可

3.3 DNS主从同步

实验环境
主服务器:192.168.161.133
从服务器:192.168.161.128

1.配置主服务器(192.168.161.133)

vim /etc/named.conf ###进入编辑器编辑

options {
listen-on port 53 { any; }; ###监听所有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 ; }; ###地址改允许所有IP


2.修改主服务器区域配置文件 (/etc/named.rfc1912.zones)

vim /etc/named.rfc1912.zones

 zone "liang" IN {
    type master;								#表示该服务为域内主DNS服务器
    file "liang.zone";					#该域的配置文件的名字,放在/var/named/
    allow-update { 192.168.161.128; };				#括号内为从服务器地址
};

"/etc/named.rfc1912.zones" 5L, 113C


3.修改数据配置文件

我们从/var/named/下面复制一份正向解析的模板文件,然后把域名和IP地址对应数据填写进去。(named-checkconf、named-checkzone 这两个命令可以帮助我们检查语法或参数中的错误。)
cp -a 可以保留原始文件的所有者、所属组、权限属性等信息,以便让bind服务程序顺利读取文件内容。

cd /var/named/

cp -a named.localhost liang.zone

vi liang.zone ### 编辑配置文件

   $TTL 1D                                                  #设置缓存解析结果的有效时间
@       IN SOA liang. admin.liang. (
                                       0; serial .
                                       1D; refresh
                                       1H; retry
                                       1W; expire
                                       3H ) ; minimum
               NS             liang.                      #记录当前区域的DNS服务器的名称
               A               192.168.161.133                  #记录主机IP地址
IN   MX  10              mail.zhangbin.                 #MX为邮件交换记录,数字越大优先级越低
www  IN  A              192.168.161.133                  #记录正向解析www.liang对应的IP
mail   IN  A             192.168.161.100
ftp      IN CNAME  www                              #CNAME使用别名,ftp是www的别名
*        IN   A           192.168.161.200                  #泛域名解析,“*"代表任意主机名

修改完后重启服务 systemctl restart named
4. 测试

5.配置从服务器(192.168.161.128)

安装服务 yum install -y named

6.修改从服务器区域配置文件(/etc/named.rfc1912.zones)
vim /etc/named.conf

options {
    listen-on port 53 { 192.168.161.128; };
    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; };

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

vim /etc/named.rfc1912.zones

zone "liang" IN {
    type slave; 
    file "slaves/liang.zone";
    masters {192.168.161.133; };
};
  zone "133.161.168.192.in-addr.arpa" IN {
    type slave;
    file "slave/liang.zone.local";
    allow-update { 192.168.161.133; };
};  

总结:

DNS域名解析的过程有助于我们搭建相关服务,以及查找相关问题

本文标签: 域名解析dns