实现正向解析dns服务
一、实现DNS正向主服务器
1.实验目的
搭建DNS正向主服务器,实现web服务器基于FQDN的访问
2.环境要求
需要三台主机 DNS服务端:10.0.0.14 web服务器:10.0.0.12 DNS客户端:10.0.0.11
3.前提准备
关闭SElinux
关闭防火墙
时间同步
4.实现步骤
1)在DNS服务端安装bind
[root@centos7 ~]# yum install -y bind
2)修改bind 配置文件
[root@centos7 ~]# vim /etc/named.conf #注释掉下面两行 // listen-on port 53 { 127.0.0.1; }; // allow-query { localhost; };
[root@centos7 ~]# vim /etc/named.rfc1912.zones #加上下面内容 zone "magedu.org" IN { type master; file "magedu.org.zone"; };
3)DNS区域数据库文件
[root@centos7 ~]# cp /var/named/named.localhost /var/named/magedu.org.zone -a
#如果没有加-p选项,需要修改所有者或权限。chgrp named magedu.org.zone
[root@centos7 ~]# vim /var/named/magedu.org.zone $TTL 1D @ IN SOA master admin.magedu.org. ( 2019042210 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS master master A 10.0.0.14 www A 10.0.0.12
4)检查配置文件和数据库文件格式,并启动服务
[root@centos7 ~]# named-checkconf [root@centos7 ~]# named-checkzone magedu.org /var/named/magedu.org.zone [root@centos7 ~]# systemctl start named #第一次启动服务 [root@centos7 ~]# rndc reload #不是第一次启动服务
5)实现WEB服务
#安装http服务 [root@centos7 html]# yum install -y httpd #配置主页面 [root@centos7 html]# echo www.magedu.org > /var/www/html/index.html #启动服务 [root@centos7 html]# systemctl start httpd
6)在客户端实现测试
[root@centos7 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DNS1=10.0.0.8 #centos7 以上版执行现下面命令生效 [root@centos8 ~]# nmcli con reload [root@centos8 ~]# nmcli con up eth0 #centos 6 执行下面命令生效 [root@centos7 ~]# service network restart #有以下记录,算是成功 [root@centos7 ~]# cat /etc/resolv.conf # Generated by NetworkManager nameserver 10.0.0.14 #测试网页,能显示就是成功 [root@centos7 ~]# curl www.magedu.org www.magedu.org
二、各种资源记录
区域解析库:由众多资源记录RR(Resource Record)组成
记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX
SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解 析库的第一条记录 A:internet Address,作用,FQDN --> IP AAAA:FQDN --> IPv6 PTR:PoinTeR,IP --> FQDN NS:Name Server,专用于标明当前区域的DNS服务器 CNAME : Canonical Name,别名记录 MX:Mail eXchanger,邮件交换器 TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:SPF(反垃圾邮 件)记录,https验证等
1.资源记录定义的
name [TTL] IN rr_type value
注意:
- TTL可从全局继承
- 使用 "@" 符号可用于引用当前区域的域名
- 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应
- 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机
面试题:
1. 我的网站域名需要更改,如何使其更快的生效? 2. 更改TTL值为多少比较合适呢?是如何生效的? 1.ttl时间越长,缓存时间越长,更新及时生效的可能性越小。如果ttl设置得更小,则有效时间将更快。 2.通常,域名服务提供商建议将ttl值设置在10-15分钟的范围内。 TTL(生存时间),它简单地表示dns服务器上域名解析记录的缓存时间。当本地DNS服务器收到解析请求时,将向域名指定的DNS服务器发出解析请求,以获取解析记录。获取记录后,该记录将在DNS服务器中保留一段时间。在此期间,如果再次收到解析域名的请求,DNS服务器将不再向DNS服务器发出请求,而是直接返回刚刚获得的记录。此记录保存在DNS服务器上的时间是TTL值。
2.SOA记录
name: 当前区域的名字,例如"magedu.org."
value: 有多部分组成
注意:
1. 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字 2. 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换 例如:admin.magedu.org 3. 主从服务区域传输相关定义以及否定的答案的统一的TTL
范例:
magedu.org. 86400 IN SOA ns.magedu.org. nsadmin.magedu.org. ( 2015042201; 序列号 2H; 刷新时间 10M; 重试时间 1W; 过期时间 1D; 否定答案的TTL值 )
3.NS记录
name: 当前区域的名字
value: 当前区域的某DNS服务器的名字,例如: ns.magedu.org.
注意:
1. 相邻的两个资源记录的name相同时,后续的可省略 2. 对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录 3. 一个区域可以有多个NS记录
范例:
magedu.org. IN NS ns1.magedu.org.
magedu.org. IN NS ns2.magedu.org.
4.MX记录
name: 当前区域的名字
value: 当前区域的某邮件服务器(smtp服务器)的主机名
注意:
1. 一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的 优先级;数字越小优先级越高 2. 对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录
5.A记录
name: 某主机的FQDN
value: 主机名对应主机的IP地址
避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址
范例:
www.magedu.org. IN A 1.1.1.1 www.magedu.org. IN A 2.2.2.2 mx1.magedu.org. IN A 3.3.3.3 mx2.magedu.org. IN A 4.4.4.4 $GENERATE 1-254 HOST$ IN A 1.2.3.$ *.magedu.org. IN A 5.5.5.5 magedu.org. IN A 6.6.6.6
#注意:如果有和DNS的IP相同的多个同名的A记录,优先返回DNS的本机IP
6.PTR记录
name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1;而有特定后缀:inaddr.arpa.,所以完整写法为:4.3.2.1.in-addr.arpa. value: FQDN
注意:网络地址及后缀可省略;主机地址依然需要反着写
7.CNAME别名记录
name: 别名的FQDN
value: 真正名字的FQDN
记录于2022-3-30-20:22 weilan