文章目录
1. DNS的作用
1.1 概述:
DNS系统,在网络中的作用就是维护一个地址数据库,记录了各种主机域名:与IP地址的对应关系,以便为客户程序提供地址查询服务,默认监听端口为53
1.2 分类:
- 根据解析方向:
- 正向解析:通过域名解析IP,解析方式有两种:
- A记录方式:是普通解析方式
- cname:类似别名,将多域名解析到同IP
- 反向解析:通过IP反向解析IP,方式是PTR指针记录
- 根据管理的区域地址数据的来源不同:
- 缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高数据查询速度和效率。构建时,必须设置根域或指定其他DNS服务器作为解析来源
- 主域名服务器:维护某个特定DNS区域的地址数据库,对其中的解析记录具有自主控制权,例如:.baidu.com服务器
- 从域名服务器:和主相同,是主的热备份
- 智能解析服务器:通过自动判断访问者IP来解析相应的IP地址,使得电信用户访问到电信服务器,网通用户访问到网通服务器
1.3 查询方式
- 递归查询:客户端发出DNS解析请求,从本地DNS服务器(缓存域名服务器)得到IP,反馈给客户端。
- 客户端发出DNS请求,先查找本地缓存,无果,查询hosts文件,无果,请求提交到LDNS
- LDNS收到请求,从本地缓存和hosts文件,和解析记录表文件,成功命中,返回IP给客户端
- 迭代查询:当LDNS无法命中时,LDNS会将解析请求发给根域名服务器(全球13台),然后一步步向下查询,得到IP的方式
- LDNS发送解析请求到根域名解析器,根域名返回顶级域名服务器的IP
- LDNS收到后,发送解析请求到顶级域名解析服务器,顶级域名解析服务器返回该域名的权威服务器的IP
- LDNS收到后,发送解析请求到权威服务器,最后得到域名对应的IP
- 最后,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