玄子Share-DNS域名解析服务

玄子Share-DNS域名解析服务

DNS 服务介绍

DNS是英文Domain Name System的缩写,翻译过来就是域名解析系统。

它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

  • 协议:UDP协议
  • 架构:C/S

DNS 系统的作用

DNS系统在网络中的作用就是维护一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正向解析和反向解析;

  • 正向解析:根据域名查找对应的IP地址
  • 反向解析:根据IP地址查找对应的域名

DNS 系统的分布式数据结构

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

DNS 域名解析服务的应用场景

A.公司内部

DNS 系统的介绍

Internet 域名空间的最顶层是根域(.)

  • 全球有 13 台根服务器
  • 1 个主根域名服务器
  • 12 个辅根域名服务器

DNS 根域下面是顶级域

  • 由 Internet 域名注册授权机构管理。共有 3 种类型的顶级域
  • 国际顶级域名:采用 3 个字符的代号,如.com .edu.org
  • 国家或地区域名:采用 2 个字符的国家或地区代号,如.cn 为中国.kr 为韩国.us 为美国
  • 新通用顶级域名:也叫新顶级域名、新顶域,如xin .top .xyz.vip
DNS 域名组织类型举例
com商业公司www.xuanzishare.com
edu教育机构www.harvard.edu
net网络公司www.csdn.net
gov非军事政府机构www.whitehouse.gov
mil军事政府机构www.navy.mil
org非营利组织www.linux.org
xx国家/地区www.cas.cn

DNS域名解析查询过程

DNS查询方式

  • 递归查询(主机向本地域名服务器查询采用递归查询)

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

  • 迭代查询(本地域名服务器向域名服务器查询采用迭代查询)

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

常见DNS服务器地址

  • Google 谷歌公司:8.8.8.8(主),8.8.4.4 (备)
  • 国内电信DNS:114.114.114.114
  • 阿里巴巴公司:223.5.5.5 (主),223.6.6.6 (备)

DNS系统类型

  • 缓存域名服务器
    • 也称为DNS高速缓存服务器
    • 通过向其他域名服务器查询获得域名 -> IP地址记录
    • 将客户端域名查询结果缓存到本地,提高重复查询时的速度和效率。
  • 主域名服务器
    • 特定DNS区域的权威服务器,具有唯一性
    • 负责维护该区域内所有域名->IP地址的映射记录
    • 需要自行建立所负责区域的地址数据文件
  • 从域名服务器
    • 也称为辅助域名服务器,是对主域名服务器的热备份
    • 其维护的域名->IP地址记录来源于主域名服务器
    • 需要从主域名服务器自动同步区域地址数据库

BIND 软件安装

BIND(Berkeley Internet Name Daemon)

  • BIND是应用最广泛的DNS服务程序
  • 官方站点:https://www.isc.org/

安装bind程序所需的包有:

  • bind:主程序包,提供域名解析服务的主要程序和相关配置文件
  • bind-utils:提供 DNS 域名解析使用的各种测试工具,如:nslookup
  • bind-libs:提供 bind、bind-utils 实现功能的各种库函数
  • bind-chroot:安装 bind 服务时提供的一个伪装目录(/var/named/chroot),提高配置文件和区域数据文件的安全性
    • /etc/named.conf – /var/named/chroot/etc/named.conf

BIND 服务

  • BIND服务器端程序
    • 主要执行程序:/usr/sbin/named
    • 默认监听端口:53
    • 主配置文件:/etc/named.conf
    • DNS解析记录的数据文件路径:/var/named/
  • BIND服务控制
    • systemctl [status|start|stop|restart] named.service

主配置文件 named.conf

全局配置部分

  • 设置DNS服务器的全局参数
  • 包括监听地址和端口、区域数据文件存放的目录等
  • 使用options { …… }; 的配置段
options {
    # 全局的选项和设置
    listen-on port 53 { 192.168.60.11; };
    # 监听 DNS 查询的 53 端口
    directory "/var/named";
    # 指定区域文件存储的目录
    allow-query { 192.168.60.0/24; 192.168.70.0/24; };
    # 允许来自指定 IP 段的 DNS 查询
};

区域配置部分

  • 设置本服务器提供域名解析的特定DNS区域
  • 包括域名、服务器角色、数据文件名等
  • 使用zone “区域名” IN { …… }; 的配置段
zone "xuanzi.cloud" IN {
    # 定义 xuanzi.cloud 区域
    type master;
    # 将此区域定义为主区域
    file "xuanzi.com.zone";
    # 指向包含 xuanzi.cloud 区域数据的文件
    allow-transfer { 192.168.60.12; };
    # 允许区域传输到指定的 IP 地址
};

zone "16.16.173.in-addr.arpa" IN {
    # 定义 16.16.173.in-addr.arpa 的反向查找区域
    type master;
    # 将此区域定义为主区域
    file "173.16.16.arpa";
    # 指向包含反向查找区域数据的文件
    allow-transfer { 192.168.60.12; };
    # 允许区域传输到指定的 IP 地址
};

全局 TTL 配置项及 SOA 记录

全局TTL配置项及SOA记录

  • $TTL(Time To Live,生存时间)
  • SOA(Start Of Authority,授权信息开始)
  • 分号 “;” 开始的部分表示注释信息
$TTL    86400		
# 有效解析记录的生存周期
@  IN  SOA  bdqn.com. admin.bdqn.com.(	
# SOA标记、区域名称  管理邮箱地址
2011030501		
# 更新序列号,可以是10位以内的整数
3H 			
# 刷新时间,重新下载地址数据的间隔
15M			
# 重试延时,下载失败后的重试间隔
1W 			
# 失效时间,超过该时间仍无法下载则放弃,从服务器更新参数
1D 			
# 无效解析记录的生存周期
)

正向解析记录

  • NS 域名服务器(Name Server)记录
  • MX 邮件交换(Mail Exchange)记录
  • A 地址(Address)记录,只用在正向解析区域中
  • CNAME 别名(Canonical Name)记录
 @        	IN   	NS         	ns1.bdqn.com.
 		IN     	MX 10	mail.bdqn.com.
ns1       	IN     	A          	58.119.74.203
www      	IN     	A          	173.16.16.1
mail     	IN     	A          	173.16.16.4
ftp      	IN     	CNAME	www

反向解析记录

  • PTR 指针(Point)记录
  • 记录的第一列指定 IP 地址中的主机地址部分
1	IN	PTR	www.bdqn.com. 
4	IN	PTR	mail.bdqn.com. 

基于域名解析的负载均衡

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

www          IN     A          173.16.16.173
www          IN     A          173.16.16.174
www          IN     A          173.16.16.175	

泛域名解析

找不到精确对应的A记录时,使用“*”进行匹配

*                IN     A          173.16.16.173

对配置文件进行语法检查

named-checkconf 工具

named-checkconf  [主配置文件]
[root@localhost ~]# named-checkconf -z /etc/named.conf
# -z 尝试加载主配置文件中对应的区域数据库文件
zone bdqn.com/IN: loading from master file bdqn.com.zone failed: file not found
……	//省略部分内容

named-checkzone 工具

 named-checkzone  <域名> <区域数据文件>
[root@localhost ~]# cd /var/named/
[root@localhost named]# named-checkzone bdqn.com bdqn.com.zone
zone  bdqn.com/IN: loaded serial 2011030501
OK

DNS 服务配置实战

主服务器配置

vim /etc/sysconfig/network-scripts/ifcfg-ens33
# 先修改 网络配置文件中,DNS 地址
DNS1=192.168.254.11
DNS2=192.168.254.12
# 安装 bind 软件
[root@xuanzi ~]# mkdir /media/cdrom
[root@xuanzi ~]# mount /dev/cdrom /media/cdrom/
[root@xuanzi ~]# cd /media/cdrom/Packages/
[root@xuanzi Packages]# rpm -ivh bind-9.9.4-72.el7.x86_64.rpm 
# 错误:依赖检测失败:python-ply 被 bind-32:9.9.4-72.el7.x86_64 需要
[root@xuanzi Packages]# rpm -ivh python-ply-3.4-11.el7.noarch.rpm
[root@xuanzi Packages]# rpm -ivh bind-9.9.4-72.el7.x86_64.rpm
# 安装 bind 包
[root@xuanzi Packages]# cp /etc/named.conf /etc/named.conf.bak
# 备份配置文件
[root@xuanzi Packages]# vim /etc/named.conf

named.conf

options {
    # 全局的选项和设置
    listen-on port 53 { 192.168.254.13; };
    # 监听 DNS 查询的 53 端口
    directory "/var/named";
    # 指定区域文件存储的目录
    allow-query { 192.168.254.0/24; 192.168.70.0/24; };
    # 允许来自指定 IP 段的 DNS 查询
};

zone "xuanzi.cloud" IN {
    # 定义 xuanzi.cloud 区域
    type master;
    # 将此区域定义为主区域
    file "xuanzi.cloud.zone";
    # 指向包含 xuanzi.cloud 区域数据的文件
    allow-transfer { 192.168.254.13; };
    # 允许区域传输到指定的 IP 地址
};

zone "16.16.173.in-addr.arpa" IN {
    # 定义 16.16.173.in-addr.arpa 的反向查找区域
    type master;
    # 将此区域定义为主区域
    file "173.16.16.arpa";
    # 指向包含反向查找区域数据的文件
    allow-transfer { 192.168.254.13; };
    # 允许区域传输到指定的 IP 地址
};
[root@xuanzi ~]# cd /var/named/
[root@xuanzi named]# vim xuanzi.cloud.zone
# :r named.localhost
# 导入模板文件

xuanzi.cloud.zone

$TTL 86400
@  IN  SOA  xuanzi.cloud.  admin.xuanzi.cloud. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@      IN  NS          ns1.xuanzi.cloud.
       IN  NS          ns2.xuanzi.cloud.
       IN  MX     10   mail.xuanzi.cloud.
ns1    IN  A           192.168.254.11
ns2    IN  A           192.168.254.13
www    IN  A           173.16.16.1
mail   IN  A           173.16.16.2
study  IN  A           173.16.16.3
ftp    IN  A           173.16.16.4
web    IN  CNAME       173.16.16.1
*      IN  A           173.16.16.1

173.16.16.arpa

$TTL 86400
@  IN  SOA  xuanzi.cloud.  admin.xuanzi.cloud. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@      IN  NS          ns1.xuanzi.cloud.
       IN  NS          ns2.xuanzi.cloud.
       IN  MX     10   mail.xuanzi.cloud.
ns1    IN  A           192.168.254.11
ns2    IN  A           192.168.254.13
mail   IN  A           173.16.16.2
1      IN  PTR         www.xuanzi.cloud.
2      IN  PTR         mail.xuanzi.cloud.
3      IN  PTR         study.xuanzi.cloud.
4      IN  PTR         ftp.xuanzi.cloud.
[root@xuanzi named]# named-checkconf -z /etc/named.conf
# 检查主配置文件
[root@xuanzi named]# named-checkzone xuanzi.cloud  /var/named/xuanzi.cloud.zone 
zone xuanzi.cloud/IN: loaded serial 0
OK
# 检查区域配置文件
[root@xuanzi named]# named-checkzone xuanzi.cloud  /var/named/173.16.16.arpa 
zone xuanzi.cloud/IN: loaded serial 0
OK
# 检查区域配置文件
systemctl enable named
systemctl start named
systemctl status named
[root@xuanzi named]# netstat -anpt | grep named

设置 WIndows Server IP 信息

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用nslookup命令进行测试

从服务器配置

基础配置与主服务器一致即可

vim /etc/sysconfig/network-scripts/ifcfg-ens33
# 先修改 网络配置文件中,DNS 地址
DNS1=192.168.254.11
DNS2=192.168.254.12
# 安装 bind 软件
[root@xuanzi ~]# mkdir /media/cdrom
[root@xuanzi ~]# mount /dev/cdrom /media/cdrom/
[root@xuanzi ~]# cd /media/cdrom/Packages/
[root@xuanzi Packages]# rpm -ivh bind-9.9.4-72.el7.x86_64.rpm 
# 错误:依赖检测失败:python-ply 被 bind-32:9.9.4-72.el7.x86_64 需要
[root@xuanzi Packages]# rpm -ivh python-ply-3.4-11.el7.noarch.rpm
[root@xuanzi Packages]# rpm -ivh bind-9.9.4-72.el7.x86_64.rpm
# 安装 bind 包
[root@xuanzi Packages]# cp /etc/named.conf /etc/named.conf.bak
# 备份配置文件
[root@xuanzi Packages]# vim /etc/named.conf
options {
    listen-on port 53 { 192.168.254.13; };
    directory "/var/named";
    allow-query { 192.168.254.0/24; 192.168.70.0/24; };
};

zone "xuanzi.cloud" IN {
    type slave;
    file "slaves/xuanzi.cloud.zone";
    masters { 192.168.254.11; };

};

zone "16.16.173.in-addr.arpa" IN {
    type slave;
    file "slaves/173.16.16.arpa";
    masters { 192.168.254.11; };
};
systemctl enable named
systemctl start named
systemctl status named
[root@xuanzi named]# netstat -anpt | grep named
[root@xuanzi named]# ll /var/named/slaves

设置 WIndows Server IP 信息

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用nslookup命令进行测试

缓存服务器配置

前置配置与主服务器一致,仅修改 named.conf 配置文件即可

options {
        listen-on port 53 { 192.168.254.11; };
        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";
        query-source  port 53;
        allow-query { 192.168.254.0/24; };
        recursion  yes;
};

zone "." IN {
        type hint;
        file "named.ca";
};

分离解析配置

新添加网卡,且修改为仅主机模式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

vim /etc/sysconfig/network-scripts/ifcfg-ens33

IPADDR=192.168.1.1
NETWORK=2555.255.255.0
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens36
vim ifcfg-ens36
BOOTPROTO=static
DEFROUTE=yes
NAME=ens36
DEVICE=ens36
ONBOOT=yse
IPADDR=173.16.16.1
NETWORK=255.255.0.0
systemctl restart network
ifconfig ens36

然后常规安装 bind 修改 named.conf

options {
        listen-on port 53 { any; };
        directory "/var/named";
        allow-query { any; };
};

view "LAN" {
        match-clients { 192.168.1.0/24; };
        zone "bt.com" IN {
                type master;
                file "bt.com.zone.lan";
        };
};

view "WAN" {
        match-clients { any; };
        zone "bt.com" IN {
                type master;
                file "bt.com.zone.wan";
        };
};
cd /var/named/
vim bt.com.zone.lan
$TTL 86400
@  IN SOA bt.com. admin.bt.com.  (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN      NS       ns1.bt.com.
ns1     IN      A       192.168.1.1
www     IN      A       192.168.1.4
mail    IN      A       192.168.1.5
ftp     IN      A       192.168.1.6              
 cp bt.com.zone.lan bt.com.zone.wan
 vim bt.com.zone.wan
$TTL 86400
@  IN SOA bt.com. admin.bt.com.  (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN      NS       ns1.bt.com.
ns1     IN      A       192.168.1.1
www     IN      A       173.16.16.101
mail    IN      A       173.16.16.102
ftp     IN      A       173.16.16.103

内网,网卡模式改为 NAT,然后使用 nslookup 测试

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外网,网卡模式改为 仅主机,然后使用 nslookup 测试

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


玄子Share-DNS域名解析服务 2024.04.09

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值