Linux下dns解析服务
文章目录
1.安装部署dns
DNS,Domain Name System,域名系统。万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户方便的访问网络,主要负责把域名和IP地址的互换,DNS运行于TCP|UDP的53端口上。
(1)安装bind
yum install -y bind
(2)设置防火墙
firewall-cmd --permanent --add-service=dns 设置防火墙允许dns服务
firewall-cmd --reload 使命令立即生效
(3)开启named服务
systemctl start named
注:开启服务时,因为系统本身的加密字符不够而服务无法正常开启,可以在虚拟机中随意敲击键盘,并且只有在服务开启后才可以看到/etc/rndc.key文件
(4)修改named文件
需要修改以下信息:
listen-on port 53{any;}; 设置监听所有域名
allow-query {any;}; 设置所有设备均可访问域名缓存
forwards {114.114.114.114;}; 设置当缓存中查找不到域名时,直接去114.114.114.114查找
dnssec-validatiom no; 关闭dns扫描
保存退出后执行以下命令:
systemctl restart named 重启named
2.高速缓存
配置之后,当访问某个网址时会将此解析缓存下来,以后再次访问此网址就直接从缓存读取,速度更快。
首先在真机开启路由功能,打开防火墙并开启地址伪装,并在虚拟机中配置好网关。
再在虚拟机中进行以下操作:
vim /etc/resolv.conf
nameserver 172.25.254.128 将访问的dns服务器改为自己
netstat -antulpe |grep named 查看是否开启dns端口
dig www.baidu.com 首次访问
dig www.baidu.com 已访问过的,下次访问缓存为0s
真机:
vim /etc/resolv.conf
nameserver 172.25.254.128 dns解析改为已搭建的dns服务器ip
dig www.baidu.com 通过搭建的dns服务器访问,已访问过的,下次访问缓存为0s
3.正向解析(通过域名解析ip)
vim /etc/named.rfc1912.zones 编辑配置文件
编辑:
zone "haohao.com" IN { 域名
type master;
file "haohao.com.zone"; 对应文件
allow-update { none; };
};
cd /var/named
cp -p named.loopback haohao.com.zone 复制一份文件包括其权限(一定要加-p)
编辑:
vim haohao.com.zone 编辑解析文件
$TTL 1D
@ IN SOA dns.haohao.com. root.haohao.com. ( 谁授权 谁维护
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.haohao.com.
dns A 172.25.254.128
www A 172.25.254.128 新建域名
systemctl restart named
dig www.emp.com 解析新建域名
真机:
vim /etc/resolv.conf
nameserver 172.25.254.128
dig www.haohao.com
4.CNAME
vim haohao.com.zone
编辑:
bbs CNAME linux 域名重定向
linux A 172.25.254.188 域名
linux A 172.25.254.199
dig bbs.haohao.com
5.反向解析(PTR)(通过ip解析域名)
vim /etc/named.rfc1912.zones
编辑:
zone "254.25.172.in-addr.arpa" IN { 反向解析路径
type master;
file "haohao1.com.ptr"; 对应解析文件
allow-update { none; };
};
cp -p named.localhost haohao1.com.ptr
vim haohao1.com.ptr
编辑:
$TTL 1D
@ IN SOA dns.haohao1.com. root.haohao1.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.haohao.com.
dns A 172.25.254.128
185 PTR bbs.haohao1.com. 反向解析域名
195 PTR www.haohao1.com.
dig -x 172.25.254.185 解析ip对应的域名
dig -x 172.25.254.195
真机:
vim /etc/resolv.conf
nameserver 172.25.254.128 修改解析指向文件
dig -x 172.25.254.185 解析ip对应的域名
dig -x 172.25.254.195
6.双向解析(内网与外网)
cp -p /var/named/emp.com.zone /var/named/emp.com.localnet
vim emp.com.localnet
替换172.25.254为192.168.0(:%s/172.25.254/192.168.0/g) 将所有的网络位更换为内网提供服务
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.localnet
vim /etc/named.rfc1912.localnet
zone "haohao.com" IN {
type master;
file "haohao.com.localnet";
allow-update { none; };
};
vim /etc/named.conf
/*
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
*/
view localnet {
match-clients { 172.25.254.128; }; 自己使用
zone "." IN{
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.localnet"; 访问内网文件
};
view internet {
match-clients { any; }; 任何人使用
zone "." IN{
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones"; 访问文件
};
systemctl restart named 重启
测试:
本机:
vim /etc/resolv.conf
nameserver 172.25.254.128
本地解析
dig www.haohao.com 192.168.0.128
其他:
vim /etc/resolv.conf
nameserver 172.25.254.128
外网访问
dig www.haohao.com 172.25.254.128
7.搭建备dns服务器
首先要注释双向解析
备dns服务器:
配置IP
配置yum源
部署dns
yum install bind -y
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
配置文件以及指向文件修改
vim /etc/named.conf
listen-on port 53 { any; };
allow-query { any; };
vim /etc/named.rfc1912.zones
zone "haohao.com" IN {
type slave;
masters { 172.25.254.128; }; 主dns网络ip
file "slaves/westos.com.zone";
allow-update { none; };
systemctl restart named
vim /etc/resolv.conf
nameserver 172.25.254.228
dig www.haohao.com
主备同步更新
方法1:
解析文件以及指向文件修改
vim haohao.com.zone
1 ; serial 用来提醒有更新
www A 172.25.254.189 dns变更
vim /etc/named.rfc1912.zones
also-notify { 172.25.254.228; }; 允许同步设备
systemctl restart named
测试 :
dig www.haohao.com
方法2:
主dns:
selinux :disable
systemctl start named
vim /etc/named.rfc1912.zones
allow-update { 172.25.254.228; }; 允许谁更新
chmod 770 /var/named
systemctl restart named
实时同步更新:
备dns:
nsupdate
> server 172.25.254.128
> update add hello.haohao.com 86400 A 172.25.254.179 更新
> send 发送
dig hello.haohao.com
8.dns加密:
清理被污染的文件:
cd /var/named
ls
rm -rf haohao.com.zone.jnl 删除被污染的文件
cp -p /mnt/haohao.com.zone . 复制备份文件
systemctl restart named 重启服务
主dns:
cd /mnt
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST haohao 产生钥匙
(-a 加密方式 -b 钥匙大小 -n 主机名称 haohao 钥匙名称)
生成:Khaohao.+157+65037
ls
Khaohao.+157+65037.key Khaohao.+157+65037.private 钥匙文件
cat Khaohao.+157+65037.key
查看:haohao. IN KEY 512 3 157 c95+YrY1Mn4P458rEFIPOw==
cp -p /etc/rndc.key /etc/haohao.key
vim /etc/haohao.key
编辑:
key "haohao" {
algorithm hmac-md5;
secret "c95+YrY1Mn4P458rEFIPOw==";
};
vim /etc/named.conf
编辑:
include "/etc/haohao.key"; 添加钥匙
vim /etc/named.rfc1912.zones 编辑配置文件
编辑:
zone "haohao.com" IN {
type master;
file "haohao.com.zone";
allow-update { key haohao; }; 允许有钥匙的用户更新
also-notify { 172.25.254.74; };
};
scp Kemp.+157+65037.* root@172.25.254.228:/opt 发送钥匙
测试机:
cd /opt
ls
Khaohao.+157+65037.key Khaohao.+157+65037.private
nsupdate -k Kemp.+157+65037.key 设置有钥匙的用户可以用钥匙更新
输入以下指令:
server 172.25.254.74
update add hello.haohao.com 86400 A 172.25.254.185
send
dig hello.emp.com 172.25.254.185
8.dns动态域名解析dhcp
配置dhcp
主dns部署apache服务:
yum install dhcp -y
vim /etc/dhcp/dhcpd.conf
cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
编辑:
option domain-name "emp.com";
option domain-name-servers 172.25.254.229;
subnet 172.25.254.0 netmask 255.255.255.0 {
range 172.25.254.50 172.25.254.80;
option routers 172.25.254.29;
}
删除27/28,删除35以后;
重启:
systemctl restart dhcpd
firewall-cmd --permanent --add-service=dhcp
firewall-cmd --reload
备dns:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=dhcp
删掉 IPADDR 和 PREFIX
systemctl restart network
主dns:
vim /etc/dhcp/dhcpd.conf
key haohao {
algorithm hmac-md5
secret p5r0xjGy/ghL1SQvHACgTw==;
};
zone "haohao.com" {
primary 172.25.254.228;
key haohao;
}
vim haohao.com.zone
编辑:
只需要留一个dns
systemctl restart dhcpd
备dns上:
hostnamectl set-hostname test.haohao.com
systemctl restart network
10.DNS排错
NOERROR:查询成功
NXDOMAIN:服务器提示不能存在这样的名称
SERVFAIL:DNS服务器停机或DNSSEC响应验证失败
REFUSED:DNS服务器拒绝回答(也许是出于访问控制)
11.DNS资源记录
DNS区域采用资源记录的形式存储信息,每条资源记录具有一个类型,表明其保留的数据类型。
A:名称至IPV4地址
AAAA:名称至IPV6地址
CNAME:名称至规范名称(包含A/AAAA记录的另一个名名称)
PTR:IPV4/IPV6地址至名称
MX:用于名称的邮件交换器(向何处发送其电子邮件)
NS:域名的名称服务器