DNS作用
Dns=domain name system
域名管理系统
域名:
由特定的格式组成
用来表示互联网这某一台计算机或者计算机组逇名称
能够让人更方便的访问互联网
而不用记忆能够被机器直接读取的 ip 地址
互联网中的计算机都是通过 ip 地址相互访问的
ipv4|ipv6
域名代替 ip 实现计算机的访问,是 ip 地址的别名
每个域名都应该有一个对应的 ip 地址
将域名正向解析为 IP
A 记录
DNS IP 反向解析域名 PTR 反向解析
DNS工作原理
查询方式
1. 递归查询,逐级查询,一次到位,但是速度慢
2. 迭代查询,多次查询一个地址,可以缓存
一次递归,多次迭代
dig解析域名
yum -y install bind-utils.x86_64
只要 ip 地址,不要解析过程
[root @localhost ~ ] # dig @server www.baidu.com
dig : couldn 't get address for ' server ': not found
[root @localhost ~ ] # dig www.baidu.com
反向解析
[root @localhost ~ ] # dig -x 180.101.50.188
搭建DNS环境准备
DNS 域名解析都是 udp/53, 主从之间的数据传输默认使用 tcp/53
dns 服务端软件
setenforce 0
vim /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld
DNS软件安装与查询
安装 bind 软件
yum search bind
[root@dns ~]# yum -y install bind
安装可以使用 rpm -ql 是否安装
find 查询文件
[root @dns ~ ] # rpm -qa|grep bind
bind-libs-9 .11.4 - 26 .P2.el7_9 .16 .x86_64
bind-9 .11.4 - 26 .P2.el7_9 .16 .x86_64
bind-libs-lite-9 .11.4 - 26 .P2.el7_9 .16 .x86_64
查看配置文件
[root @dns ~ ] # rpm -ql bind
/ etc / logrotate.d / named
/ etc / named
# 配置文件
/ etc / named.conf
/ etc / named.iscdlv.key
# 定义区域文件 正向和负向解析
/ etc / named.rfc1912.zones
/ etc / named.root.key
/ etc / rndc.conf
/ etc / rndc.key
# 日志文件
/ var / log / named.log
/ var / named
/ var / named / data
/ var / named / dynamic
启动服务
systemctl start named
DNS配置文件
/etc/named.conf
主要配置访问权限控制
配置哪些主机可以访问 dns 服务器
/etc/named.rfc1912.zones
主要定义域名如何解析,正向解析,解析到具体的 ip 地址
备份文件
[root @dns ~ ] # cp /etc/named.conf /etc/named.conf.bak
[root @dns ~ ] # cp /etc/named.rfc1912.zones
/etc/named.rfc1912.zones.bak
[root @dns ~ ] # ls -l /etc/named*
DNS正向解析
配置主配置文件 named.conf
添加 any ,所有主机都可以访问
[root @dns ~ ] # vim /etc/named.conf
options {
# 允许任何主机访问
listen-on port 53 { 127.0.0.1 ;any; };
listen-on-v6 port 53 { :: 1 ; };
directory "/var/named" ;
dump-file "/var/named/data/cache_dump.db" ;
statistics-file "/var/named/data/named_stats.txt" ;
memstatistics-file
"/var/named/data/named_mem_stats.txt" ;
recursing-file "/var/named/data/named.recursing" ;
secroots-file "/var/named/data/named.secroots" ;
# 允许任何主机访问
allow-query { localhost;any; };
配置 zones 文件
创建文件 file "yuanyu.zhangmin.zone";
vim /var/named/yuanyu.zhangmin.zone 定义正向解析
复制文件修改
[root@dns ~]# vim /etc/named.rfc1912.zones
# 显示行
:set nu
# 复制内容
:19,23 co 42
42
43 zone "yuanyu.zhangmin" IN {
44 type master;
45 file "yuanyu.zhangmin.zone";
46 allow-update { none; };
47 };
[root @dns ~ ] # cd /var/named/
[root @dns named] # ls
data dynamic named.ca named.empty named.localhost
named.loopback slaves
[root @dns named] # cp -p named.localhost
-p 保持文件原属性赋值
编辑域名文件
vim yuanyu.zhangmin.zone
[root @dns ~ ] # cd /var/named/
[root @dns named] # ls
data dynamic named.ca named.empty named.localhost
named.loopback slaves
[root @dns named] # cp -p named.localhost
yuanyu.zhangmin.zone
[root @dns named] # ls
data dynamic named.ca named.empty named.localhost
named.loopback slaves yuanyu.zhangmin.zone
[root @dns named] # ls -l
总用量 20
# 缓存周期 一天
$TTL 1D
# @ 当前域 IN 互联网 SOA 开始授权 @ 当前域 rname.invalid 邮箱
@ IN SOA @ rname . invalid . (
# 更新序列号
0 ; serial
# 跟新间隔
1D ; refresh
# 失败重试
1H ; retry
# 区域文件的过期时间
1W ; expire
# 缓存的最小生存周期
3H ) ; minimum
NS @ A 127.0.0.1 AAAA ::1
检查文件
/etc/named.conf 和 zone 文件
[root @dns named] # named-checkconf /etc/named.conf
[root @dns named] # named-checkconf /etc/named.rfc1912.zones
[root @dns named] # named-checkzone yuanyu.zhangmin.zone
启动DNS服务
[root @dns named] # systemctl start named
[root @dns named] # netstat -lnput|grep named
web服务器配置
yum -y install nginx
客户端进行DNS测试
添加 dns 服务器
临时
echo "nameserver 10.1.1.11" > /etc/resole.conf
[root @web ~ ] # echo "nameserver 10.1.1.11" >
/etc/resolv.conf
[root @web ~ ] #
# 临时添加,重启 network 就还原了
永久
[root @web ~ ] # vim /etc/sysconfig/network-scripts/ifcfg
ens33
# 添加 dns 服务就可以了
DNS : 10.1.1.11
检测域名是否正确
[root @web ~ ] # ping www.yuanyu.zhangmin
[root @web ~ ] # yum -y install elinks.x86_64