DNS and bind 初步
前言
TCP/IP协议通信是针对于ip地址的,你说我要是去淘宝买东西,怎么可能记住ip地址,我要是去百度买东西,也记不住啊,所以针对于此,就出现了这样一个翻译器,起一个名字,跟ip地址对应。是多对一还是一对多呢,都可以,我几个ip指向一个网址也没问题,几个网址指向一个ip也可以。
对于反向域名解析功能等以后用到再做总结,反向域名解析功能用到电子邮件上,用来处理那些查找不到域名的垃圾邮件,直接拒绝接受,一般公司应用不到,固在先不做总结。
知识点
1、空间结构
我怎么根据一个ip地址在万军从中找到找到那个名字?设置一台DNS服务器可以嘛?我现在全球有40亿个请求等着解析百度的网站名,一台肯定不行,那多台可以嘛,可以嘛?也不可以?用户基数大,不但有读请求,还有写请求,每台服务器管多少是够?服务器也是会崩溃的
所以,DNS采用分布式数据库系统,就像原来的文件系统一样,倒装树一样。全球有13个根DNS服务器,根服务器只管顶级域,如cn,com。顶级域下面有二级域,像com下面的baidu,二级域下面的有三级域等等,以baidu.com.结尾的都属于这个二级域的,可以说是百度的吧。子域是二级域下面的,如www等。
主机名是最下面最下面的要找的主机名。大致图形自己脑补,就是倒状树。
2、DNS解析类型
正向:ip--->主机名 反向:主机名--->ip
3、DNS服务器类型
主服务器: 辅服务器:复制主服务器的数据,止可读,不可改,可以跟主的分担查询解析 缓存服务器:这个服务器是不负责域解析的
4、请求流程
client--->hosts文件--->DNS Local Cache----->DNS 服务器 --->自己负责解析的域---->直接就可以找到(自家的孩子就不用麻烦别人找了) --->不是自己负责解析的--->先找服务器缓存找不到去找根求助,根通过迭代的方式帮你找
DNS服务器安装和配置
1、安装容易
yum 安装bind 和 bind-libs包,后面用到的可以再装
2、配置文件
主配置文件/etc/named.conf
该文件包含两部分,一个是来设置DNS服务器整体生效的内容,我们常说是全局配置,包括options,logging
还有一个是用来设置区域名、区域类型和区域文件名的,叫局部配置,从zone往后都是。
全局配置
全局配置要改几个东西:
listen-on port 53 { 127.0.0.1; };
设置监听的DNS服务器IPv4端口和IP地址,这里要将127.0.0.1改成DNS服务器的IPv4地址 它是什么意思呢,我想的就是客户端发送请求,服务端接受请求,这叫什么啊?这叫c/s架构,c/s架构通常靠什么通信,靠套接字sockets通信,套接字是什么啊,是ip地址加端口,端口有了,53,那要ip地址。要谁的ip地址,要客户端的c的ip地址,客户端是谁啊,是我啊,我他妈天天要访问百度,我用的是什么东西,用的是虚拟机,所以ip地址是虚拟机的ip,那么端口是干什么的,端口是进程访问用的,我有你电脑的ip地址有毛用啊,我发你qq信息是发到哪里,是发到你邮箱还是qq上,这时候就要有一个端口了,就是进程地址。这么想对嘛,不对啊,我在配置DNS,我的电脑是服务器。那么少了什么东西,别人要访问我,我要干什么嘛,我要等着别人访问,这叫什么,这叫监听(linsten),所以把我的地址放在53号上面,等着别人访问,至于为什么是53号,我想大致是因为,这个53号端口是特定为这个DNS请求访问准备的吧。 然后来配置吧,把127.0.0.1(默认地址)改成我的ip地址。遇到了问题。直接改嘛?改完了为什么不行啊,找不到,上网查了一下。如上述所示,为什么啊,暂且这样记住吧。
directory
顾名思义,我的DNS服务器配置好了,数据放到哪里,就放在这里面。
allow-query
就是我设置的DNS服务器为哪些主机服务,local 就相当于只为当前主机提供了DNS解析服务,别人的DNS填我这个服务地址是没法用的。
recursion 是否设置启用递归是DNS服务器,dnssec都设置成no。
forwarders
设置DNS转发器 为什么要设置,说白了就是可以越过根,直接找另外一个厉害的DNS服务器请求。会比直接去根上找快一点 还有,假如我在公司内部设置一个DNS服务解析器,设置员工只能浏览指定的网页,这个时候就可以让其他域名在本地找不到,这个时候就可以转到一个错误的解析器上,指定错误的ip,就不能上其他的网站了。
局部配置
zone:设置区域的相关信息
区域是什么啊?magedu.com.算是一个二级域了,就是我这个DNS解析器管哪个域,为哪个域解析名字。
type:设置区域类型
区域类型是什么啊? 我如何去定义一个主DNS服务器,和一个辅DNS服务器,就要靠区域类型来决定了。
ss -tnl查看是否监听在53号端口上。
把自己的地址设置成为DNS解析器的地址
vim /etc/resdv.conf
配置完成后的测试
配置完成后,为了检验自己配的对不对,启动服务来测试一下。 启动服务:systemctl start named.service 测试:dig -t A www.baidu.com (+trace追踪解析过程)
配置DNS区域文件(正向解析:以magedu为例)
我要想用dns管理一个域所必备的条件 有一个联网的主机 有一在互联网上注册的域可以供你来解析 有一个ip地址可以供你的域用
定义区域
1、定义区域 vim /etc/named.rfc1912.zones加一个区域 就直接如下编辑: cat >>/etc/named.rfc1912.zones<<EOF 区域名即为域名
2、建立区域数据文件 怎么建立:cd /var/named/ cat named.localhost(仿照这个文件)
进行配置:(在/var/named目录下) vim magedu.com.zone
magedu.com. IN NS ns1.magedu.com. (表示magedu.com.这个区域的域名服务器是ns1.magedu.com.) magedu.com. IN MX 10 mx1.magedu.com. magedu.com. IN MX 20 mx2.magedu.com. (表示magedu.com.当前的邮件交换主机名是mx1.magedu.com.,10表示优先级,MX记录可以有多个) A记录,真正的解析数据库。(A表示ipv4地址) www.magedu.com. IN A 1.1.1.1 www.magedu.com. IN A 1.1.1.2 mx1.magedu.com. IN A 3.3.3.3 mx2.magedu.com. IN A 3.3.3.3 PTR记录,用在反向解析: 有特定格式,把IP地址反过来写 如:1.2.3.4,要写作4.3.2.1; 有特定后缀:in-addr.arpa. 如:完整写法为:4.3.2.1.in-addra.arpa. CNAME:(别名) web.magedu.com. IN CNAME www.magedu.com. (表示www的这个主机的别名为web)
上截图是复制的,为了验证效果,再写一次:
$TTL 3600 @ IN SOA ns1.magedu.com. dnsadmin.magedu.com. ( 2016120601 1H 10M 3D 1D) IN NS ns1 IN MX 10 mx1 IN MX 20 mx2 ns1 IN A 192.168.1.109 mx1 IN A 192.168.1.105 mx2 IN A 192.168.1.104 www IN A 192.168.1.109 web IN CNAME www bbs IN A 192.168.1.107 bbs IN A 192.168.1.105
rndc status
rndc reload
之后再改权限:其它不可读: chmod o= magedu.com.zone 测试: dig -t A www.magedu.com.
原创文章,作者:N24_yezi,如若转载,请注明出处:http://www.178linux.com/62830
评论列表(1条)
总结的非常好,举例也很生动,加油!