DNS与BIND学习(二)

DNS配制详述

名称服务器必须要有两类文件:

  1. 一类是区域数据文件,保存着域名和IP的对应关系

    • db.DOMAIN: 将主机名映射到地址的文件
    • db.ADDR: 将地址映射到主机名
    • db.cache: Root提示数据
    • db.127.0.0: 环回地址
  2. 第二类是配置文件,将所有数据区域文件绑定在一起

区域数据文件格式对于所有的DNS实现都是一样的,它被称为主文件格式;配置文件格式只与名称服务器的实现(这里指BIND)有关。

区域数据文件

区域数据文件的大部分条目被称为DNS资源记录(DNS resource record)

资源记录:Resource Record,RR
记录类型:A,AAAA,PTR,SOA,NS,CNAME,MX
  • SOA: Start Of Authority,指明该区域的权威
  • NS: NameServer,列出该区域的名称服务器
  • A: internet Address,作用是FQDN(完全限定域名)->IP
  • AAAA: FQDN -> IPv6
  • PTR: point-to-record,逆向DNS记录,IP-> FQDN
  • CNAME: Canonical Name,别名记录
  • MX: Mail Exchanger,邮件交换器
  • TXT: 对域名标识或说明,做验证记录时使用此项,如SPF(发垃圾邮件)记录,https验证等。

为了更好解释,假设一个场景:要建立一个cs.edu区域,我们有一个DNS服务器,2个客户机

网络号为192.168.125.38/24

DNS的IP 
    192.168.125.38
主机的IP
    * 192.168.125.8 IOT.cs.edu IOT
    * 192.168.125.28 AI.cs.edu AI

在这里插入图片描述

资源记录的格式

name [TTL] IN rr_type value

图示的db.cs.edu文件可以写为

$TTL 86400

; SOA记录
cs.edu. IN SOA ns1.cs.edu. admin.cs.edu (
    20241006   ; 序列号/版本号
    3h         ; 刷新时间
    10M        ; 重试时间
    1W         ; 过期时间
    1D         ; 否定答案的TTL值
)

; NS记录
cs.edu. IN NS ns1
cs.edu. IN NS IOT

; A记录
ns1.cs.edu. IN A 192.168.125.38
IOT         IN A 192.168.125.8
AI          IN A 192.168.125.28
*           IN A 192.168.125.28 ; 泛域名
@           IN A 192.168.125.28 ; 直接查询cs.edu也可以访问

; CNAME记录,别名
Internet-of-Things.cs.edu.       IN CNAME IOT.cs.edu.
Artificial-Intelligence.cs.edu.  IN CNAME AI.cs.edu.
SOA中记录解释
cs.edu. :  当前的区域
IN : Internet,一种数据类
SOA : 资源记录类型
ns1.cs.edu. : 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字
admin.cs.edu. : 当前区域管理员的邮箱地址,如admin@cs.edu,因为@是特殊字符,所以用.来代替

括号里面的数据:

为防止主服务器单点失败,需要备用服务器,从主服务器(推,拉)数据,达到数据一致。
· 推:主服务器变化,告诉从服务器
· 拉:从服务器从主服务器拉数据,

括号中的第二个参数为拉的时间间隔(如果版本号变化,从服务器拉取数据),第三个参数是拉取失败,多久重试一次,第四个数据是从服务器多久拉取失败,从服务器数据失效,第五个数据是不存在记录的缓存有效期。

简写
  1. 当前区域 cs.edu. 可以简写为 @
  2. ns1.cs.edu. 可以简写为 ns1,只要后面没有点,自动补全区域后缀cs.edu

编写区域数据文件

我们将38号虚拟机作为nameserver,就需要在其中加入区域的域名IP对应表。

ubuntu2204中我下载的bind9,他的配置文件在/etc/bind目录下。其中db.*是区域数据文件,named.conf.*是配置文件

建立自己的区域:
可以先复制现成的模版db.local
cp -p db.local db.cs.edu
修改内容
在这里插入图片描述

用named-checkzone来检验区域数据库文件格式
named-checkzone cs.edu /etc/bind/db.cs.edu

编写配置文件

bind9新版本中,配置文件
vim /etc/bind/named.conf.default-zones

增加下面的区域内容
在这里插入图片描述

用named-checkconf来检验配置文件是否有语法错误
named-checkconf

重新运行bind服务

区域数据文件和配置文件都格式正确后,运行
rndc reload
在这里插入图片描述

实验二

第一步:在28号上开启web服务

ubuntu开启web服务

  1. 安装Apache2:
    sudo apt install apache2
  2. 启动Apache2服务
    sudo systemctl start apache2
    可以根据 ss -ntul 查看tcp80端口开放
  3. 修改页面内容
    echo AI.cs.edu On 192.168.125.28 > /var/www/html/index.html

检查web页面是否可以正确加载
curl 192.168.125.28
结果如图所示:
在这里插入图片描述

如果正确访问到28号虚拟机,也就是正确访问到AI.cs.edu,那控制台就会返AI.cs.edu On 192.168.125.28

第二步:访问AI.cs.edu

28号虚拟机上运行的是AI.cs.edu,他的域名和IP对应关系只有38号虚拟机知道。如果其他客户机通过38号获得了28号IP与域名对应关系,那说明38号nameserver实现了DNS解析。

我们用192.168.125.8虚拟机来检验,首先让他的DNS为192.168.125.38
vim /etc/netplan/00-installer-config.yaml
修改配置文件
在这里插入图片描述

查看8号虚拟机的DNS

在这里插入图片描述

好啦,现在只要在8号虚拟机上ping一下AI.cs.edu,能ping通说明38号DNS完成解析。

在这里插入图片描述

访问一下AI.cs.edu

在这里插入图片描述

可以看到28号虚拟机上的网页被成功访问!

还有其他专业的查找IP方法

host AI.cs.edu 或 dig AI.cs.edu 或 nslookup AI.cs.edu

恭喜实验二完成~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值