[linux学习](linuxprobe课程)十二 使用Bind提供域名解析服务

DNS(domain NAME SYSTEM)域名解析系统

用来地址解析,比如内网环境想外网听歌,可以配置个DNS服务器,服务器联通内外网,听歌的地址解析成一个IP,再将IP映射到外网。也可进行反向解析,目前没发现有啥用

正向解析

配置

  1. 下载软件
# 牢笼机制,可以让这个服务的作用范围缩到最小,类似于自己建个nologin用户,只给某个服务用
yum install named-chroot
  1. 配置文件
    分三部分
    主配置文件 /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进行不同的设置,限制访问的地址。

配置方式

  1. 主配置文件,修改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
………………省略部分输出信息………………
  1. 区域配置文件,配置多个区域,并且每个区域设置不同的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 };
  1. 建立数据配置文件。分别通过模板文件创建出两份不同名称的区域数据文件,其名称应与上面区域配置文件中的参数相对应。
[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.)
  1. 重启bind服务
systemctl restart named

部分感悟

  1. DNS在解析时是从根域开始的,比如www.baidu.com 就是从com后面省略的点开始,当我们访问一个网址时,如果本地的缓存没有数据,就会请求配置的DNS地址,如果还是没有,就请求根域服务器他会记录一级域的服务器地址,如果没有,就访问一级域名的服务器(一般情况下,域名绑定都是绑定在这些服务器上,大部分都是二级域名),访问一级域名服务器后还是没有,就访问2级域名服务器,可能是部分本地运营商的地址,也可能是自己搭建的DNS服务器,大多数情况下,就可以解析出来。
  2. 数据配置文件内容是通过记录的形式书写的,SOA NS A是三种不同的记录,分别代表着域名服务器参数配置,域名服务器记录,以及真正的域名解析地址。
  3. 数据配置文件中的www等都是省略了域的书写方式,比如baidu.com这个域,当记录中存在www时,意味着这是www.baidu.com

DNS

https://www.cnblogs.com/heiye123/articles/7687922.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值