翼度科技»论坛 云主机 LINUX 查看内容

Linux网络服务:DNS域名服务系统

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
DNS域名系统服务

1.DNS 介绍

1.1什么是域名?

域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。具有独一无二,不可重复的特性。
1.2什么是 DNS?

域名系统(Domain Name System,缩写:DNS)是互联网的一项服务。域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。
域名的解析工作由DNS服务器完成。可以理解为DNS就是翻译官。
  1. 正向解析:域名 --> IP 地址
  2. 反向解析:IP 地址 --> 域名
复制代码
1.3域名的组成和分类
  1. 常见格式:www.baidu.com
  2. 完整格式:www.baidu.com.
复制代码

  • .         根域,可省略不写
  • com   顶级域,由ICANN组织指定和管理

    • 国家地区域名:cn(中国)、hk(香港)、sg(新加坡)等
    • 通用顶级域名:com(商业机构)、org(非营利组织)、edu(教育机构)等
    • 新通用顶级域名:red(红色、热情)、top(顶级、高端)等

  • baidu    二级域(注册域),可由个人或组织申请注册
  • www     三级域(子域),服务器网站名代表
  • 主机名:s1.www.baidu.com.中的s1就是主机名,一般用来表示具体某一台主机
  1. 拓展:com.cn属于“二级域名”,是cn顶级域的子域
复制代码
2.域名解析过程

如客户机发起查询请求
www.kernel.org
  1. 1.客户机首先查看查找本地hosts文件,如果有则返回,否则进行下一步
  2. 2.客户机查看本地缓存,是否存在本条目的缓存,如果有则直接返回,否则进行下一步。
  3. 3.将请求转发给指向的 DNS 服务器。
  4. 4.查看域名是否本地解析,是则本地解析返回,否则进行下一步。
  5. 5.本地DNS服务器首先在缓存中查找,有则返回,无则进行下一步。
  6. 6.向全球13个根域服务器发起DNS请求,根域返回org域的地址列表。
  7. 7.使用某一个 org 域的 IP 地址,发起 DNS 请求,org 域返回 kernel 域服务器地址列表。
  8. 8.用某一个kernel域IP地址,发起DNS请求,kernel域返回www.kernel.org主机的IP地址,本地 DNS 服务收到后,返回给客户机,并在本地 DNS 服务器保存一份。
复制代码
3.DNS 软件信息

软件名称:bind
服务名称:named
软件端口:
UDP 53 数据通信(域名解析)
TCP 53 数据同步(主从同步)
配置文件:

  • 主配置文件:/etc/named.conf(服务器运行参数)
  1. options {
  2.         listen-on port 53 { 127.0.0.1; };
  3.         listen-on-v6 port 53 { ::1; };
  4.         #设置服务器监听网卡(可以写具体某一个IP,也可以写成any)
  5.         directory       "/var/named";
  6.         dump-file       "/var/named/data/cache_dump.db";
  7.         statistics-file "/var/named/data/named_stats.txt";
  8.         memstatistics-file "/var/named/data/named_mem_stats.txt";
  9.         recursing-file  "/var/named/data/named.recursing";
  10.         secroots-file   "/var/named/data/named.secroots";
  11.         #数据文件位置
  12.         allow-query     { localhost; };
  13.         #设置可以访问服务器的客户端IP(可用any)
复制代码

  • 区域配置文件:/etc/named.rfc1912.zones(服务器解析的区域配置,正反向区域定义信息)
  1. zone "localhost.localdomain" IN {
  2. #正向区域配置文件标签,修改为要解析的域
  3.         type master;
  4.         #DNS服务器类型(master/slave)
  5.         file "named.localhost";
  6.         #正向数据配置文件名称(默认保存在/var/name/下)
  7.         allow-update { none; };
  8.         #允许数据更新的列表(填写IP地址)
  9. };
  10. zone "1.0.0.127.in-addr.arpa" IN {
  11. # 反向区域配置文件标签,仅修改IP位置,并且将IP反写例如:0.168.192.in-addr.arpa
  12.         type master;
  13.         file "named.loopback";
  14.         allow-update { none; };
  15. };
复制代码

  • 数据配置文件:/var/named/xx.xx(主机名和IP地址的对应解析关系,及主从同步信息)
  1. $TTL 1D        #域名有效解析生存周期(一般指缓存时间)
  2. @       IN SOA  @ rname.invalid. (
  3.                            0       ; serial
  4.                                            1D      ; refresh
  5.                                               1H      ; retry
  6.                            1W      ; expire
  7.                            3H )    ; minimum
  8.         NS      @                        #设置DNS服务器的域名
  9.         A       127.0.0.1        #IPv4的域名IP解析记录
  10.         AAAA    ::1                        #IPv6的 域名IP解析记录
  11. ~
  12. # @: 域名有效解析生存周期(一般指缓存时间)
  13. # SOA:SOA标记(起始授权机构的资源记录,描述了域名的管理品 电子邮件地址 和一此时间参数
  14. #serial  配置文件修改版本(如:20190826)
  15. #refresh 更新频率(从向主的查询周期)
  16. # retry  更新失败的重试时间周期
  17. # expire 无法更新时的失效周期
  18. #minimum 缓存服务器无法更新时的失效时间
复制代码
记录类型:
A:地址记录,用来指定域名的IPv4地址的记录CNAME:将域名指向另一个域名,再由另一个域名提供ip地址,就需要添加CNAME记录TXT:可填写任何东西,长度限制255.绝大多数的TXT记录是用来做SPF的(反垃圾邮件)NS:域名服务器记录,如果需要把子域名交给其他DNS服务商解析,就需要添加NS记录。AAAA:地址记录,用来指定域名的IPv6地址的记录MX:邮件交换记录,如果需要设置邮箱,让邮箱能收到邮件,就需要添加MX记录。DNS 实验搭建

4.1 DNS服务搭建

先关闭服务器和客户机上的防火墙和SELinux
1.软件安装
  1. yum install bind -y
复制代码
2.配置主配置文件(/etc/named.conf)
  1. options {
  2.         listen-on port 53 { any; };  #监听网卡改为any
  3.         listen-on-v6 port 53 { any; };
  4.         directory       "/var/named";
  5.         dump-file       "/var/named/data/cache_dump.db";
  6.         statistics-file "/var/named/data/named_stats.txt";
  7.         memstatistics-file "/var/named/data/named_mem_stats.txt";
  8.         recursing-file  "/var/named/data/named.recursing";
  9.         secroots-file   "/var/named/data/named.secroots";
  10.         allow-query     { any; }; #设置可以访问服务器的客户端为any
复制代码
3.配置区域文件(/etc/named.rfc1912.zones)

注:先对区域文件进行备份,删除多余的模板,只留下一个正向和一个反向(反向修改时,网络位的反写格式,如192.168.100.20 -> 100.168.192.)
  1. zone "ajaj.com" IN {
  2.         type master;
  3.         file "ajaj.localhost"; #自定义正向解析文件名
  4.         allow-update { none; };
  5. };
  6. zone "100.168.192.in-addr.arpa" IN {
  7.         type master;
  8.         file "ajaj.loopback"; # 自定义反向解析文件名
  9.         allow-update { none; };
  10. };
复制代码
4.配置数据文件/var/named/

A. 先复制生成正向解析文件和反向解析文件
  1. cp -a named.localhost ajaj.localhost
  2. cp -a named.loopback ajaj.loopback
复制代码
B. 编辑正向解析文件(注意域名结尾的“.”)
  1. vim ajaj.localhost
  2. $TTL 1D
  3. @       IN SOA  ajaj.com. rname.invalid. (
  4.                                         0       ; serial
  5.                                         1D      ; refresh
  6.                                         1H      ; retry
  7.                                         1W      ; expire
  8.                                         3H )    ; minimum
  9.         NS      dns.ajaj.com.
  10. dns     A       192.168.100.20
  11. www     A       192.168.100.21
复制代码
C.编辑反向解析文件(注意域名结尾的".")
  1. vim ajaj.loopback
  2. $TTL 1D
  3. @       IN SOA  ajaj.com. rname.invalid. (
  4.                                         0       ; serial
  5.                                         1D      ; refresh
  6.                                         1H      ; retry
  7.                                         1W      ; expire
  8.                                         3H )    ; minimum
  9.         NS      dns.ajaj.com.
  10. 20      PTR     dns.ajaj.com.
  11. 21      PTR     www.ajaj.com.
复制代码
5.重启DNS服务
  1. systemctl restart named
复制代码
6.客户端测试

在网卡配置文件中添加 DNS 服务器的地址,然后用 nslookup 测试。
  1. [root@localhost ~]# nslookup www.ajaj.com
  2. Server:         192.168.100.20
  3. Address:        192.168.100.20#53
  4. Name:   www.ajaj.com
  5. Address: 192.168.100.21
复制代码
4.2 DNS主从

实验目的:
减轻主服务器的压力
先关闭服务器和客户机上的防火墙和SELinux
实验准备:
一台主服务器、一台从服务器、一台测试机
搭建过程:
1.搭建主服务器步骤

安装 bind 软件
  1. yum install bind -y
复制代码
主配置文件的修改
  1. options {
  2.         listen-on port 53 { any; };
  3.         listen-on-v6 port 53 { any; };
  4.         directory       "/var/named";
  5.         dump-file       "/var/named/data/cache_dump.db";
  6.         statistics-file "/var/named/data/named_stats.txt";
  7.         memstatistics-file "/var/named/data/named_mem_stats.txt";
  8.         recursing-file  "/var/named/data/named.recursing";
  9.         secroots-file   "/var/named/data/named.secroots";
  10.         allow-query     { any; };
复制代码
区域配置文件的修改
  1. zone "ajaj.com" IN {
  2.         type master;
  3.         file "ajaj.localhost";
  4.         allow-update { 192.168.100.21; };
  5. };
  6. zone "100.168.192.in-addr.arpa" IN {
  7.         type master;
  8.         file "ajaj.loopback";
  9.         allow-update { 192.168.100.21; };
  10. };
复制代码
主 DNS 的区域配置文件中 allow-updata 参数添加从服务器 IP 地址。
配置数据文件
  1. cp -a named.localhost ajaj.localhost
  2. cp -a named.loopback ajaj.loopback
复制代码
正向数据文件
  1. vim ajaj.localhost
  2. $TTL 1D
  3. @       IN SOA  ajaj.com. rname.invalid. (
  4.                                         0       ; serial
  5.                                         1D      ; refresh
  6.                                         1H      ; retry
  7.                                         1W      ; expire
  8.                                         3H )    ; minimum
  9.         NS      dns.ajaj.com.
  10. dns     A       192.168.100.20
  11. www     A       192.168.100.23
复制代码
反向数据文件
  1. vim ajaj.loopback
  2. $TTL 1D
  3. @       IN SOA  ajaj.com. rname.invalid. (
  4.                                         0       ; serial
  5.                                         1D      ; refresh
  6.                                         1H      ; retry
  7.                                         1W      ; expire
  8.                                         3H )    ; minimum
  9.         NS      dns.ajaj.com.
  10. 20      PTR     dns.ajaj.com.
  11. 23      PTR     www.ajaj.com.                              
复制代码
启动 named 服务
  1. systemctl start named
复制代码
4.搭建从服务器步骤:

安装 bind 软件
  1. yum install bind -y
复制代码
修改主配置文件
  1. vim /etc/named.conf options {
  2.         listen-on port 53 { any; };
  3.         listen-on-v6 port 53 { any; };
  4.         directory       "/var/named";
  5.         dump-file       "/var/named/data/cache_dump.db";
  6.         statistics-file "/var/named/data/named_stats.txt";
  7.         memstatistics-file "/var/named/data/named_mem_stats.txt";
  8.         recursing-file  "/var/named/data/named.recursing";
  9.         secroots-file   "/var/named/data/named.secroots";
  10.         allow-query     { any; };
复制代码
配置区域文件
  1. 注意:从配置文件的类型需要修改为 slave,并且需要填写主服务器的地址
  2. zone "ajaj.com" IN {
  3.         type slave;
  4.         masters { 192.168.100.20; };
  5.         file "slaves/ajaj.localhost";
  6. };
  7. zone "100.168.192.in-addr.arpa" IN {
  8.         type slave;
  9.         masters { 192.168.100.20; };
  10.         file "slaves/ajaj.loopback";
  11. };
  12. 文件保存位置修改为 file“slaves/atguigu.localhost”;
复制代码
重启服务
  1. systemctl start named
复制代码
在测试机上填写从服务器的IP,并使用nslookup测试
  1. nslookup www.ajaj.com
  2. Server:         192.168.100.21
  3. Address:        192.168.100.21#53
  4. Name:   www.ajaj.com
  5. Address: 192.168.100.23
复制代码
4.3DNS缓存服务器

先关闭服务器和客户机上的防火墙和SELinux
实验作用:
加快解析速度,提高工作效率
实验软件:
dnsmasq
配置文件:
  1. /etc/dnsmasq.conf
  2. domain=域名
  3. #需要解析的域名
  4. server=ip
  5. #主 DNS 服务器 IP
  6. cache-size=15000
  7. #声明缓存条数
复制代码
重启服务:
  1. systemctl restart dnsmasq
复制代码
测试效果:
  1. 在测试机上填写DNS 缓存服务器服务器的 ip 地址
复制代码
来源:https://www.cnblogs.com/ajajroom/p/17215984.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具