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

mac2024-11-15  5

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

最新回复(0)