DNS(domain NAME SYSTEM)域名解析系统
用来地址解析,比如内网环境想外网听歌,可以配置个DNS服务器,服务器联通内外网,听歌的地址解析成一个IP,再将IP映射到外网。也可进行反向解析,目前没发现有啥用
正向解析
配置
- 下载软件
# 牢笼机制,可以让这个服务的作用范围缩到最小,类似于自己建个nologin用户,只给某个服务用
yum install named-chroot
- 配置文件
分三部分
主配置文件 /etc/named.conf
区域配置文件 /etc/named.rfc1912.zones 保存域名映射关系存的地址
数据配置文件目录 /var/named 对应区域配置文件里的zone,一一对应,一个zone对应一个文件,意味着一个域名对应一个文件
vim /etc/named.conf
# 更改11行和17行为any即可,11行意味着所有的网口都监听解析请求,17是所有人都能向这个服务器发送解析请求,类似于source和direction的配置
1 //
2 // named.conf
3 //
4 // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
5 // server as a caching only nameserver (as a localhost DNS resolver only).
6 //
7 // See /usr/share/doc/bind*/sample/ for example named configuration files.
8 //
9
10 options {
11 listen-on port 53 { any; };
12 listen-on-v6 port 53 { ::1; };
13 directory "/var/named";
14 dump-file "/var/named/data/cache_dump.db";
15 statistics-file "/var/named/data/named_stats.txt";
16 memstatistics-file "/var/named/data/named_mem_stats.txt";
17 allow-query { any; };
# 一个区域配置文件可以配置多个域名
vim /etc/named.rfc1912.zones
# 定义一个域名的空间
zone "haha.com" IN{
# 主域名服务器
type master;
# 域名空间的存放文件名称,虽遍起名,但是为了规范最好和空间一样
file "haha.com.zone";
# 是否允许同步,none是不允许
allow-update {none;};
}
# 目前/var/named下面有很多文件,都是示例文件,可以直接拷贝一份后修改使用,注意所属用户和所属组
# 文件名对应着区域配置文件里的配置,一个文件对应一个域名
cp -a named.localhost haha.com.zone
# 修改配置文件
vim haha.com.zone
# 生效时间 一天这就是个变量
$TTL 1D
# @ 下面所有的信息都是一个记录,它是有自己的规范的,详细的见最后DNS链接,此处@意思为默认域,或者叫当前域,因为我们编辑的文件是区域配置文件指向的数据文件,所以内容都是以这个区域配置文件中对应的参数为准的
# IN SOA SOA记录,可以理解为定义这个域的版本之类的参数,版本是从服务器同步时是否更新的判断标砖,修改DNS后,自动增加。具体怎么增加的还真不清楚,IN是记录的意思,
# haha.com. ***域名记着最后的根域.要加***
# haha.haha.haha 邮箱地址,第一个"."是@的替代,防止冲突
@ IN SOA haha.com. haha.haha.haha.(
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
# name server 服务器地址,目前看不出来是干嘛的
# ns.haha.com 也看不出来干嘛的
NS ns.haha.com.
# ns ns.haha.com的省略,因为已经定义过域名为haha.com,所以后面的可以省略
# IN A 类似于映射 意味着ns.haha.com 映射到后面的地址,A 是A记录的意思,NS是NS记录
# 192.168.10.10 实际的IP地址
ns IN A 192.168.10.10
# www www.haha.com的缩写
www IN A 192.168.10.10
分离解析技术
因不同国家或地区所使用的IP是不同的,所以为了让不同地区访问同一个服务时,不会因服务器的位置导致访问过慢,使用了分离解析技术,让不同国家访问本地的或比较近的服务器,类似于访问控制列表,对不同的IP进行不同的设置,限制访问的地址。
配置方式
- 主配置文件,修改bind服务程序的主配置文件,把第11行的监听端口与第17行的允许查询主机修改为any。由于配置的DNS分离解析功能与DNS根服务器配置参数有冲突,所以需要把第51~54行的根域信息删除。
[root@linuxprobe ~]# vim /etc/named.conf
………………省略部分输出信息………………
44 logging {
45 channel default_debug {
46 file "data/named.run";
47 severity dynamic;
48 };
49 };
50
51 zone "." IN {
52 type hint;
53 file "named.ca";
54 };
55
56 include "/etc/named.rfc1912.zones";
57 include "/etc/named.root.key";
58
………………省略部分输出信息………………
- 区域配置文件,配置多个区域,并且每个区域设置不同的IP,意味着,这些IP访问时会访问不同的数据配置文件
[root@linuxprobe ~]# vim /etc/named.rfc1912.zones
1 acl "china" { 122.71.115.0/24; };
2 acl "american" { 106.185.25.0/24;};
3 view "china"{
4 match-clients { "china"; };
5 zone "linuxprobe.com" {
6 type master;
7 file "linuxprobe.com.china";
8 };
9 };
10 view "american" {
11 match-clients { "american"; };
12 zone "linuxprobe.com" {
13 type master;
14 file "linuxprobe.com.american";
15 };
16 };
- 建立数据配置文件。分别通过模板文件创建出两份不同名称的区域数据文件,其名称应与上面区域配置文件中的参数相对应。
[root@linuxprobe ~]# cd /var/named
[root@linuxprobe named]# cp -a named.localhost linuxprobe.com.china
[root@linuxprobe named]# cp -a named.localhost linuxprobe.com.american
[root@linuxprobe named]# vim linuxprobe.com.china
@ IN SOA linuxprobe.com. root.linuxprobe.com. (
#授权信息开始: #DNS区域的地址 #域名管理员的邮箱(不要用@符号)
0;serial #更新序列号
1D;refresh #更新时间
1H;retry #重试延时
1W;expire #失效时间
3H;)minimum #无效解析记录的缓存时间
NS ns.linuxprobe.com. #域名服务器记录
ns IN A 122.71.115.10 #地址记录(ns.linuxprobe.com.)
www IN A 122.71.115.15 #地址记录(www.linuxprobe.com.)
$TTL 1D #生存周期为1天
@ IN SOA linuxprobe.com. root.linuxprobe.com. (
#授权信息开始: #DNS区域的地址 #域名管理员的邮箱(不要用@符号)
0;serial #更新序列号
1D;refresh #更新时间
1H;retry #重试延时
1W;expire #失效时间
3H;)minimum #无效解析记录的缓存时间
NS ns.linuxprobe.com. #域名服务器记录
ns IN A 106.185.25.10 #地址记录(ns.linuxprobe.com.)
www IN A 106.185.25.15 #地址记录(www.linuxprobe.com.)
- 重启bind服务
systemctl restart named
部分感悟
- DNS在解析时是从根域开始的,比如www.baidu.com 就是从com后面省略的点开始,当我们访问一个网址时,如果本地的缓存没有数据,就会请求配置的DNS地址,如果还是没有,就请求根域服务器他会记录一级域的服务器地址,如果没有,就访问一级域名的服务器(一般情况下,域名绑定都是绑定在这些服务器上,大部分都是二级域名),访问一级域名服务器后还是没有,就访问2级域名服务器,可能是部分本地运营商的地址,也可能是自己搭建的DNS服务器,大多数情况下,就可以解析出来。
- 数据配置文件内容是通过记录的形式书写的,SOA NS A是三种不同的记录,分别代表着域名服务器参数配置,域名服务器记录,以及真正的域名解析地址。
- 数据配置文件中的www等都是省略了域的书写方式,比如baidu.com这个域,当记录中存在www时,意味着这是www.baidu.com
DNS
https://www.cnblogs.com/heiye123/articles/7687922.html