DNS:
域名解析服务。
PC访问DNS用的是 UDP 53端口;主辅同步数据用的是 TCP 53端口。
工作原理:当解析一台主机域名时,首先会访问电信、网通等提供的DNS服务器地址上的DNS服务器,去访问 .(根域),也就是根域(大概有13台),然后根域会返回(
返回给这个请求它的DNS服务器
)说知道com, cn , org等域(也就是根与的子域),然后这时PC会拿这个域名(如:
www.baidu.com
)去访问根域提供的DNS服务器(也就是根的子域的服务器),这时就会提供baidu.com域的DNS服务器地址,然后PC访问这时的DNS服务器地址,从而找到baidu主机名对应的IP地址--
最终的结果是由 PC 设置的 DNS服务器返回给PC的。(其中每一层返回的是DNS服务器,最终稿由PC中的DNS服务器返回给PC结果)
DNS的工作目录:
、 /var/named
配置文件中
type的类型
1、hint;一般是作为根 不需要动
2、master;表示为主DNS
3、slave;表示:辅DNS。
递归查询:PC查询NDS服务器的过程, 当PC向DNS索要一个主机名的IP地址时,不管这个DNS服务器知不道,都会向外一层一层的查询,直至查询出结果。
迭代查询:DNS从根域开始查找到找到主机名称作迭代查询
DNS服务器用到的软件是
: bind
安装DNS需要的工具包:
chroot:也就是把一个目录当成根,用户看到的是根,但是服务器看到的是某一个目录。
1、拷贝对应的配置文件。
需要注意的:
bind读取配置文件的时,是chroot过的,也就是把 /var/named/chroot/ 这个目录当成了根
而我们的配置文件都是在 /etc/ 下的,所以需要将 /etc/named* 文件都拷贝到 /var/named/chroot/etc/ 目录下。
用到的配置文件: /var/named/ 在这个目录中的。
DNS的工作目录:/var/named/ 但是但是:做了chroot,这个根就不是系统的根了,而是:/var/named/chroot/ ,这时工作目录其实就变成了:/var/named/chroot/var/named/
其实:bind运行的时候因为做了chroot,会感觉是在根下运行的,其实是在 /var/named/chroot/ 这个目录下运行的。所以需要将 /etc/ 下的配置文件拷贝到 /var/named/chroot/ 目录下
第一次拷贝 etc 需要的配置文件
1-1、将系统/var/named 中的DNS用到的配置文件及目录拷贝到 chroot 对应的目录当中
这里拷贝了 data/ dynamic/ slaves/ name.* 供4个
DNSd 工作目录是:/var/named/ 但是 因为做了chroot、所以这里的根不是系统的根,而是: /var/named/chroot/var/named/
2、DNS的主配置文件。位置是:/var/named/chroot/etc/
2-1、options选项参数
2-1-1、listen-on port 53 {any;};
#any表示任意网卡的,也就是如果有多张网卡都会监听各个网卡的53端口。
2-1-2、listen-on-v6 port 53 { ::1;};
#关于IPv6的信息,不用管
2-1-3、directory "/var/named";
#如果创建文件没有指定目录,这个文件就存在这个目录中。这里设置的是chroot后的默认路径,也就是,这里的根并不是系统的根,真正的目录是:
/var/named/chroot/var/named/
2-1-4、dump-fiel statistics-file memstatistics-file 做的统计信息
#不用管
2-1-5、allow-query { localhost; };##修改为any
#允许哪些主机可以访问,localhost是本机,any是任何主机,如果是网段:192.168.30.0/24
2-1-6、recursion yes;
#是否开启递归查询。当收到访问时,会向外 其他的DNS查找域名对应的IP地址,从而告诉PC这个域
名对应的IP地址。如果 no ,则只会查询当前DNS服务器管理域中的主机。如果对设置的主机或网段
的主机为no,则当这些主机访问的时外网的域名主机时直接放回找不到,不会向外做迭代查询。
设置当no的时候,设置哪些主机可以做递归查询:
allow-recursion { 192.168.30.250;};
#注意格式 后面都是分号。
2-1-7、dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto;
#这是 dnssec 的密钥,不用多管,默认即可。
2-2、日志处理。
2-3、定义管理的 zone(区)
这个域只是做的正向解析
这IN是:intent的意思。
type的类型
1、hint;一般是作为根 不需要动
2、master;表示为主DNS
3、slave;表示:辅DNS。
type:master;
##作用表明这台DNS为主DNS服务器,每个域中有2台,一台主,一台辅,平时都是访问主,一旦主有问题辅就会立即生效自傲,并且平时主辅之间的数据都是同步的。 这样就不会让整个网络崩溃
##这个DNS会维护这个域中的所有主机名与IP地址的对应关系。这个对应关系就是一个文件(记录所有主机与IP地址的对应关系)。file 的名字可以任意写。但是要注意:写这个对应关系文件时内的格式。
编写域中主机与IP地址的对应关系:这个配置文件是放下chroot后的named目录下的
第一行很特殊:必须按照特定的方式来写。
root@kun.cc
.[邮箱地址,如果DNS出现了问题就会向这个邮箱发送邮件,邮箱地址后也必须要有一个 点]
(
202111 #这是序列号,作用:主辅2台DNS之间,辅服务器用于判断是否更新配置,如果辅判断序列号比存储的序列号大,则更新到本机配置。否则就不会接收
1D #刷新的时间1D就是一天,辅服务器就会询问主发送请求,询问是否有更新。
1H #重试时间;如果未收到主服务器的恢复,则会1小时重试一次。
1W #1周后重试取消。
3H # 缓存时间
)
第二行:有多少台主机,就需要写多少台主机对应的IP地址。这些都是手工写的。
第一列:域名
第二列:class
IN:用的最多的。其他的2个用到的不多
第三列:type类型
A:address
PTR:做反向解析。指针记录
CNME:别名
MX:后面跟的是主机名,指明这个域中哪一台是电子邮件服务器。
NS:nameserver:指明这个域中哪一台是DNS服务器。
第四列:值
编写主机IP地址对应关系文件的格式:(完整版)--- 主机名对应IP地址都是手动编写的
要特别注意的是:
1、因为@在文件中已经有特殊含义,是个变量,代表了当前的域 kun.cc (在named.conf文件中定义的)。而后面的邮件地址中的@就不能使用了,所以使用 .点 来表示,当系统读到的时候会自动将这个点转换成@。
2、并且,如果主机名后面 没有加点的话,系统会自动补上 .kun.cc.
比如:www.rhce.cc 可以写成:www
3、如果下一行的的列与上一行的列一样,可以省略不写,但是如果不一样则必须写。
比如:如果这样写就表示 ftp:有2个IP地址了,一个是192.168.30.1 一个是:192.168.30.2。如下:
编写主机IP地址对应关系文件的格式:(简写后)
$TTL:
表示存活期。黑色部分记录的存活期。
3、修改主机与IP地址对应关系文件的所属组 和 权限,否则启动服务时可能会报错。
3-1、保存创建的文件属性。
3-2、修改创建文件的所属组和权限;
如果不修改,启动服务的时候启动不起来。必须要注意主机与IP地址对应关系文件中的格式;
3-3、如果启动服务时提示需要key;如果是--红帽 不需要---生成key的命令,
自己会生成这么个key,默认没有安装DNS后才有
3-4、启动服务
4、添加防火强规则:
DNS用的是 53端口 , 即有 TCP , 也有 UDP :
当主辅DNS服务器进行数据同步的时候,使用的端口是TCP的53端口。
当客户端向DNS服务器查询主机名的时候,使用的端口是 UDP的 53端口。
4-1、添加本地主机
4-2、添加成功后查看域中的所有主机
如果这是查询错误,是因为:4-1步骤中的本地主机没有添加。
测试成功;需要注意的是,chroot/etc/named.conf 配置文件一定要配置正确,否则是解析不出来的
设置DNS反向解析,将IP地址转换成主机名
修改chroot后的 配置文件位置:/etc/named/chroot/etc/named.conf
type的类型
1、hint;一般是作为根 不需要动
2、master;表示为主DNS
3、slave;表示:辅DNS。
file "kun.cc.arpa" 这个文件所在目录是:chroot后的目录全目录是:注意文件权限必须是named
/etc/named/chroot/var/named/
named目录下的:named.localhost 是个模版文件。创建主机名IP地址对应文件的时候可以拷贝这个文件,正向解析 和 反向解析都可以用这个模版文件。
反向解析
5、正向批量生成主机与IP地址的对应关系:特别要注意正向解析中的变量必须要与反向解析中的变量一致,否则反向解析不出对应的IP地址
5-1、正向查看批量生成的主机IP对应关系
5-2、反向解析批量生成
5-2、反向查看解析批量生成的关系
5-3、特别要注意的:
6、查询批量主机对应的IP地址---抓包
配置主辅DNS服务器---TSIG(事务签名)
这是在辅服务器操作的。---注意 zone 的格式。
除了添加zone(区)外还需要修改俩个地方
1、
listen-on port 53 {any;}; --- 在辅服务器操作
2、
allow-query { any; }; --- 在辅服务器操作
3、在主服务器操作的 ,在options中添加 --- 一定要注意格式的正确
allow-transfer { 192.168.197.100; }; ---指明将数据发送给谁。也就是指明辅服务器
重启辅服务器即可将数据同步到辅服务器。但是会存在问题:如果有其他电脑占用了10IP,就会将数据同步到其他电脑上,这时候就需要下面的解决方法。
TSIG(事务签名)
存在的问题:只设置了IP地址并不安全,生成辅服务器需要密钥才可以真正接收数据、
生成密钥:
在服务端配置文件中配置密钥信息--需要修改为:
allow-transfer { key xx; };
其中 xx 为密钥名称可随意起。
这些都是在主服务器配置的。指明客户端必须有密钥才可以正常通信同步数据。
在辅服务器设置密钥:
试图:
当内网访问DNS的时候解析到的IP是内网的私有IP地址,而外网解析访问到的则是外网看到的。也就是同一个主机在一个DNS服务器上解析出2个IP地址 --- 并未实际操作里面的坑没有踩。 - -、
最下面2行 ,include 删除掉了。
当 aa 主机过来访问的时候,匹配的是 yy (上面)的试图,而当 bb 来访问的时候,匹配的是zz(下面)的试图--对应的 aa1.zone 需要再生成
需要做的:需要在对应的客户端上将DNS的服务地址改成 设置的DNS服务器IP地址
创建子域授权---如果要有子域,里面的事物需要删掉,不然可能会影响
1、在子(辅服务器)DNS服务上配置文件中
xx.zone的配置文件:
在主DNS服务器需要配置的---
编辑的是aa.zone
aa.rhce.cc
---指明子域中的DNS服务器是哪一台,然后再给这个DNS做一个解析。就可以了。
这时候,在子域解析主DNS服务器解析不出来,同样的在主服务器解析子域的DNS服务器也是解析不出来的。
修改主、子的配置文件
这是在子服务器其配置文件的修改
添加:forwarders { 192.168.30.250; }
表明:子服务器解析不了的,转发给主服务器解析
。
这时候仍是子解析主服务器解析不成功,主服务器解析子服务器页是不成功,所以需要再将子、主服务器中的 三行
(蓝色部分)
注释掉。 最后2行 include 子、主都是删除掉的。?