第一步:先安装服务
使用yum安装dns的安装包是 (安装包是bind,但是服务是named)
bind-9.11.4-26.P2.el8.x86_64
yum install bind-9.11.4-26.P2.el8.x86_64
安装完成(首先得搭建yum仓库,我有脚本放在最后)
主配置文件在/etc/named.conf
这个是主配置文件 进去修改
然后去要去编辑区域文件了
区域文件是vi /etc/named.rfc1912.zones
这个是区域文件
进去编辑他
zone "ssj.com" IN { #这个是你想要解析的域名(可以随意取名)
type master; #这个是主DNS
file "ssj.com.zone"; #这个文件是需要自己去创建的,在vi /var/named/ssj.com.zone
};
注意分号结尾!!!
这里写的是什么,文件的名字就要是什么
zone "80.168.192.in-addr.arpa" IN { #这个是固定格式,需要把ip反过来写
type master; #这个是主DNS
file "192.168.80.arpa"; #这个文件是需要自己去创建的,在vi /var/named/192.168.80.arpa
};
这两个配置文件配好了,就要去创建以上文件了
先cd/var/named
之前有两个配置文件,复制过来改改就行了(记得要cp -p)连同权限一起复制来
named.localhost 这个是正向区域的模板
然后进去修改
vi /var/named/ssj.com.zone
$TTL 1D #有效解析记录的生存周期
@ IN SOA @ rname.invalid. ( #这里的@是个变量,就是区域文件里定义的,(后面跟邮箱地址,@用.来代替)
0 ; serial #更新序列,主从同步就是看这个的
1D ; refresh #无效解析记录的生存周期
1H ; retry #刷新时间,重新下载地址数据的间隔
1W ; expire #失效时间,超过该时间仍无法下载则放弃
3H ) ; minimum
NS @ #name server 是@的变量ssj.com.zone
A 192.168.80.80 #这里写的是本机的ip地址
www IN A 192.168.80.70 #这里写的就是www解析的是192.168.80.70
mail IN CNAME www #mail.hello.com是www.hello.com的另一个名称
* IN A 192.168.80.6 #如果后缀是hello.com但是前面的内容记录中没有的时候向查询主机返回192.168.80.6这个地址。
以上是正向区域,和反向区域不同的是,正向是A解析(域名解析ip),反向是PTR(ip解析成域名)
下面配置反向区域
named.loopback 这个是反向区域的模板(以下我就不做解释了)
$TTL 1D
@ IN SOA ssj.com rname.invalid. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.80.80
80 IN PTR www.ssj.com.
70 IN PTR ftp.ssj.com.
前面跟的是ip的最后一位,PTR反向解析成域名,域名后面加. 是根域
配置好了就可以去启动服务了
service named start (安装包是bind,但是服务是named)
dns监听的是tcp的53端口
使用nslookup去测试(没有这个命令去安装bind-utils-32:9.11.4-26.P2.el8.x86_64)
和上面设置的是一样的
在试试反向解析
解析成功
#!/bin/bash
mount /dev/cdrom /mnt/
rpm -ivh /mnt/BaseOS/Packages/yum-4.2.7-6.el8.noarch.rpm
rm -rf /etc/yum.repos.d/*
echo "[yumku]
name=yumku
baseurl=file:///mnt/AppStream
enable=1
gpgcheck=0 " > /etc/yum.repos.d/yum.repo
echo "
[hello]
name=hello
baseurl=file:///mnt/BaseOS
enable=1
gpgcheck=0 " >> /etc/yum.repos.d/yum.repo
yum clean all &> /dev/null
echo "YUM已经搭建完成"
echo "共有以下几个库:"
yum repolist | tail -1
echo "共有软件包:"
yum list | wc -l
以上是我编写的yum仓库自动安装的一个简单小脚本
接下来是dns的主从同步(需要两台服务器,版本还得一样的)
cat /proc/version 查看一下内核版本是否一样
主服务还是在vi /etc/named.rfc1912.zones 里编辑正向区域和反向区域里加上
allow-update { 192.168.80.182; }; #这个是允许同步的服务器地址,就是从服务的ip
also-notify { 192.168.80.182; }; #这个是实时同步,不然不会实时
以上两条命令是加在主服务里的正反向区域里的
接下来搭建从服务器
开始编辑区域文件
vi /etc/named.rfc1912.zones
zone "ssj.com" IN { #这个引号里的域名是主服务器定义的,要一样
type slave; #类型是从服务器
masters { 192.168.80.80; }; #主服务是..... 括号里是主服务器的IP
file "slaves/ssj.com.zone"; #这个是文件是用来存放从主服务器同步来的
#位置在于/var/named/slaves/ 同步成功会自动创建
allow-notify { 192.168.80.80; }; #用来实时同步的
};
zone "80.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.80.80; };
file "slaves/192.168.80.arpa";
allow-notify { 192.168.80.80; };
};
从服务器把DNS指向自己,因为他自己也是DNS服务器
vi /etc/resolv.conf
nameserver 本机服务器的ip
启动服务, ls /var/named/slaves/
看看有没有自动生成文件,有就是同步成功
接下来就可以自行去测试了