DNS域名解析

1. DNS的作用

1.1 概述:

DNS系统,在网络中的作用就是维护一个地址数据库,记录了各种主机域名:与IP地址的对应关系,以便为客户程序提供地址查询服务,默认监听端口为53

1.2 分类:

  • 根据解析方向:
  1. 正向解析:通过域名解析IP,解析方式有两种:
    1. A记录方式:是普通解析方式
    2. cname:类似别名,将多域名解析到同IP
  2. 反向解析:通过IP反向解析IP,方式是PTR指针记录
  • 根据管理的区域地址数据的来源不同:
  1. 缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高数据查询速度和效率。构建时,必须设置根域或指定其他DNS服务器作为解析来源
  2. 主域名服务器:维护某个特定DNS区域的地址数据库,对其中的解析记录具有自主控制权,例如:.baidu.com服务器
  3. 从域名服务器:和主相同,是主的热备份
  4. 智能解析服务器:通过自动判断访问者IP来解析相应的IP地址,使得电信用户访问到电信服务器,网通用户访问到网通服务器

1.3 查询方式

  • 递归查询:客户端发出DNS解析请求,从本地DNS服务器(缓存域名服务器)得到IP,反馈给客户端。
  1. 客户端发出DNS请求,先查找本地缓存,无果,查询hosts文件,无果,请求提交到LDNS
  2. LDNS收到请求,从本地缓存和hosts文件,和解析记录表文件,成功命中,返回IP给客户端
  • 迭代查询:当LDNS无法命中时,LDNS会将解析请求发给根域名服务器(全球13台),然后一步步向下查询,得到IP的方式
  1. LDNS发送解析请求到根域名解析器,根域名返回顶级域名服务器的IP
  2. LDNS收到后,发送解析请求到顶级域名解析服务器,顶级域名解析服务器返回该域名的权威服务器的IP
  3. LDNS收到后,发送解析请求到权威服务器,最后得到域名对应的IP
  4. 最后,LDNS返回最终的解析信息给客户端,在返回时,LDNS会将解析信息记录在缓存中,而客户端收到后,也会在缓存中记录

2. DNS相关服务的安装

2.1 named服务安装

  • bind:提供域名服务的主要程序和相关文件
  • bind-utils:提供对DNS服务器的测试工具,如nslookup
  • bind-libs:提供函数库
  • bind-chroot:为bind服务提供伪根目录/var/named/chroot,提高安全性,jail机制(监牢机制)
  • 以上四个软件都需要安装,先通过rpm检测,安装未安装的

2.2 配置文件:

options和logging模块属于全局配置
zone属于区域配置

3. DNS服务搭建:

两台主机,web1为192.168.200.176,web2为192.168.200.178
将web1配置为缓存域名服务器,web2配置为主域名解析服务器

3.1 搭建缓存域名服务器

通常架设在公司局域网内,提高域名解析速度,减少出口流量

3.1.1 在web1修改配置文件

vim /etc/named.conf
#修改options模块,监听IP为本机IP,注释ipv6,将允许连接的范围改为any,注释dnssec相关验证(不注释也ok)
listen-on port 53 { 192.168.200.176; };

3.1.2 搭建的两种方式

  • options模块增加转发给联通DNS服务器,并注释根服务器区域
    forwarders { 202.106.0.20 ;};
  • 采用转发给根服务器解析域名的方式
  • named-checkconf /etc/named.conf
    检查配置文件语法是否有误,或者查看系统日志文件找出错误
    ###3.1.3 测试
    #web1启动named服务:
    /etc/init.d/named start #Centos 6
    systemctl start named #Centos 7
    #将web2的网关地址设置为web1d的IP(重启网络服务会更新为初始网关)
    vim /etc/resolv.conf
    nameserver 192.168.200.176
    #在web2测试
    nslookup www.baidu.com
    #解析正确则会输出Address

3.2 搭建主域名解析服务器

通常假设在internet环境中,提供一个或多个域名的解析服务,还可以搭建从服务器做备份

3.2.1 修改web2配置文件

vim /etc/named.conf
#监听IP改为本机IP,允许连接范围改为any
#在根模块之前添加zone区域
zone "yunjisuan.com" IN{
    type master;
    file "yunjisuan.com.zone";
};
#若配置反向解析,需要添加反向解析zone
zone "200.168.192.in-addr.arpa" IN {
    type master;
    file "192.168.200.arpa";
};
#检查配置文件语法
named-checkconf /etc/named.conf

3.2.2 建立正,反向区域数据文件

建立正向区域数据文件:

#注意cp时使用-p参数,需要保证区域数据文件的属主
cd /var/named/
cp -p named.empty yunjisuan.com.zone
vim yunjisuan.com.zone

内容修改为:

$TTL 1D
@       IN SOA  yunjisuan.com. root.ns1.yunjisuan.com. (
                                20190707        ; serial
                                1D      ; refresh
                                1H      ; retry
                                1W      ; expire
                                3H )    ; minimum
        NS      ns1.yunjisuan.com
nsl     A       192.168.200.178
www     A       192.168.200.2
news    A       192.168.200.1
bbs     CNAME   news
*       A       192.168.200.176
#第一行代表生存时间为1天
#第二行代表授权信息开始,yunjisuan.com代表DNS区域的地址,root.ns1.yunjisuan.com代表域名管理员的邮箱
#serial:序列号,可设定为日期,其他几项是时间参数
#NS代表解析记录方式,ns1.yunjisuan.com代表本列是域名对应的IP,第一列代表域名范围,当处于这个范围内,会输出对应的IP
#当记录方式为cname时,可以实现多域名解析同IP

建立反向区域数据文件
cd /var/named/
cp -p named.empty 192.168.200.arpa
vim 192.168.200.arpa
内容修改为:

$TTL 3H
@   IN SOA  yunjisuan.com root.nsl.yunjisuan.com. (
                                20190707        ; serial
                                1D      ; refresh
                                1H      ; retry
                                1W      ; expire
                                3H )    ; minimum
        NS      nsl.yunjisuan.com.
2       PTR     www.yunjisuan.com.
100     PTR     nsl.yunjisuan.com.
50      PTR     xxx.yunjisuan.com.
#第一列为IP范围,PTR反向解析的记录方式,当处于这些IP时,会解析出对应域名

3.2.3 测试

#在web2上启动named服务
/etc/init.d/named start     #Centos 6
systemctl start named   #Centos 7
#将web2的网关地址设置为web1d的IP(重启网络服务会更新为初始网关)
vim /etc/resolv.conf
mnameserver 192.168.200.178
#在web1测试
nslookup  www.yunjisuan.com
#解析正确则会输出对应IP
nslookup 192.168.200.50
#解析正确会输出对应域名

4 构建分离解析DNS服务器

初始环境:
centos 7.5
3.10.0-862.el7.x86_64

DNS服务器有两块网卡,ens32为192.168.100.232,ens34为192.168.100.234
客户端A的IP为192.168.100.50
客户端B的IP为192.168.100.51

分离解析的配置文件为
vim /etc/named.conf
注释掉配置文件最后一个zone模块(应该是根解析模块)
options模块中,监听地址改为(或改为any;):
listen-on port 53 { 192.168.100.232; 192.168.100.234; };
注释IPv6的监听,允许任何IP连接:
allow-query { any; };
删除源文件中的解析模块,新增两个解析模块:

view "LANA" {
match-clients { 192.168.100.50; };
zone "yunjisuan.com" {
    type master;
    file "amber.lana";
}};
view "LANB" {
match-clients { 192.168.100.51; };
zone "yunjisuan.com" {
    type master;
    file "amber.lanb";
};
};

建立不同的区域数据文件

cd /var/named/
cp -p named.localhost amber.lana
cp -p named.localhost amber.lanb
    
#两个文件的内容为
cat amber.lana
#内容为
$TTL 1D
@	IN SOA	@ rname.invalid. (
				20190804	; serial
				1D	; refresh
				1H	; retry
				1W	; expire
				3H )	; minimum
    NS	@
    A	192.168.100.232
www	A	192.168.100.111
#当客户端A的DNS服务器为232时,第一条匹配规则后面IP就写它的DNS服务器,给客户端B创建的的匹配规则同理

cat amber.lanb
#内容为
$TTL 1D
@	IN SOA	@ rname.invalid. (
				20190804	; serial
				1D	; refresh
				1H	; retry
				1W	; expire
				3H )	; minimum
    NS	@
    A	192.168.100.234
www	A	192.168.100.222

测试

#重启named服务
systemctl restart named
#分别在客户端A、B上测试,若解析出指定的IP则配置成功
nslookup www.yunjisuan.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值