魏蓝

以梦为马

导航

实现正向解析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

注意:

  1. TTL可从全局继承
  2. 使用 "@" 符号可用于引用当前区域的域名
  3. 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应
  4. 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机

面试题:

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

posted on 2022-03-30 19:51  魏蓝  阅读(89)  评论(0编辑  收藏  举报