DNS居然这么简单

目录

因特网中的域名结构

域名解析的过程

DNS服务类型:

DNS解析答案:

DNS的一种开源实现:bind

基本概念

bind的相关的程序包

配置

资源记录名称

正向解析文件(区域数据文件)

五种定义的信息

全局选项


DNS(Domain Name System)中文名称域名系统,是目前使用非常广泛的技术,在访问几乎任何网站时都离不开它。

DNS的作用:DNS的出现是为了解决这样一个问题,随着网络使用规模的扩大,ip地址的使用量也达到了前所未有的巅峰,但是人们在上网的过程中,如果每次都通过访问ip地址去访问目标网站,会非常难受,因为记不住那么多网站的名字。后来,人们为了解决这个麻烦,发明了域名系统,绑定ip和域名,然后通过输入英文字母组成的域名,让域名服务器解析出对应的ip地址并返回给客户端主机,达到方便记忆的目的。

因特网中的域名结构

域名只是逻辑概念,并不代表计算机所在的物理地点,分为三大类:
国家顶级域名:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国等。国家域名又常记为ccTLD
通用顶级域名:最常见的通用顶级域名有七个,分别是com(公司企业)、net(网络服务机构)、org(非盈利组织)、int(国际组织)、gov(美国的政府部门)、mil(美国的军事部门)
基础结构域名:这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名
现如今全球一共投放13个根服务器
        服务器主要用来管理互联网的主目录,全世界只有13台。1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。所有根服务器均由美国政府授权的互联网域名与号码分配机构ICANN统一管理,负责全球互联网域名根服务器、域名体系和lP地址等的管理。这13台根服务器可以指挥Firefox或互联网Explorer这样的Web浏览器和电子邮件程序控制互联网通信。换句话说攻击整个因特网最有力、最直接,也是最致命的方法恐怕就是攻击根域名服务器了。
 
由于根服务器中有经美国政府批准的260个左右的互联网后缀〈(如. com、. net等)和一些国家的指定符(如法国的. fr、挪威的. no等),美国政府对其管理拥有很大发言权。
 

域名解析的过程

1.在浏览器中输入www.qq . com 域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
2.如果hosts里没有这个域名的映射,则查找本地DNs解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
3.本地DNs解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNs服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
4.如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
5.如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNs服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到lP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理qq.com的DNs服务器地址给本地DNS服务器。当本地DNs服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www . qq.com主机。
6.如果用的是转发模式,本地DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把请求转至上上级,以此循环。找到最后把结果返回给本地DNs服务器,由此DNs服务器再返回给客户机。
 
114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS
8.8.8.8是GOOGLE公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用
 

DNS服务类型:

主DNS服务器:数据修改(接受用户请求返回数据)                master
辅助dns服务器:定期请求数据同步                                         slave
缓存dns服务器:只缓存dns数据                                               hint
转发服务器:缓存服务器去掉缓存功能                                    forward

DNS解析答案:

当DNS客户端向DNs服务器发出解析请求时,不管是否能够查询到想要的结果,都会返回一个解析答案。根据是否能够查询到想要的结果,可分为肯定答案和否定答案﹔根据解析答案是否由直接负责的DNs服务器返回,可分为权威答案和非权威答案。
根据是否能够查询到想要的结果:
①肯定答案:存在查询的键(key),并且存在与其查询键对应的值(value)。
②否定答案∶不存在查询的键(key),因此,自然不存在与其查询键(value)对应的值。根据解析答案是否由直接负责的DNS服务器返回∶
①权威答案∶由直接负责的DNS服务器返回的答案。
②非权威答案∶不是由直接负责的DNS服务器返回的答案。这种情况下一般是由其他DNs服务器直接返回缓存的解析结果。

DNS的一种开源实现:bind

提供dns服务的套件叫bind但执行服务名称的是named
我们说DNS是一种协议,而对于每一种协议的实现都需要程序员开发出遵循这种协议规范的软件程序来实现,这里要介绍的BIND就是DNs协议的一种开源实现。据统计,使用bind作为DNs服务器软件的DNS服务器大约占所有DNS服务器的九成。BIND全称为Berkeley Internet Name Domain,因为当今互联网上的通信几乎都必须借助于DNS服务器来解析主机名,得到通信对方的IP地址,而在DNS服务器上最常用的软件就是bind,所以,bind这款软件几乎可以说是当今互联网上常用的软件了。目前bind由ISC.org ( Internet Systems Consortium,互联网系统协会)负责开发与维护。
 

基本概念

dns端口号:53        使用的传输层协议:tcd和udp
bind:dns协议的一种开源实现
named:bind程序运行起来的进程名

bind的相关的程序包

bind:提供dns server程序,以及几个常用的测试工具。
bind-utils: bind客户端程序集,例如提供dig,nslookup等工具。
bind-libs:提供bind和bind-utils包中的程序共同用到的库文件。
bind-chroot:选装,让bind程序(hamed进程)运行于jail进程之下。
 

配置

yum install bind -y 安装文件包
rpm -ql bind查看bind的相关配置文件
/etc/named.conf主配置文件/etc/rndc.conf:相关配置文件区域数据文件,需要手动创建
/var/named/zidingyi.zone配置检查脚本工具
/usr/sbin/named-checkconf区域配置检查工具
/usr/sbin/named-checkzone
#全球十三个根服务器的相关信息﹔/var/named/named.ca区域文件dns数据库
解析库文件∶存放于/var/named/目录下,一般名字为ZONE_NAME.zone
 

资源记录名称

SOA(起始授权记录)记录提供有关dns区域工作方式的信息---具体负责哪个区域的解析(指定权威服务器)这代表着master/salve相关的认证,授权资料。不论有没有设定master/salve的架构都需要设定好。NS标记dns服务器将域名最终映射到哪一台主机(标记本地dns服务器)
A (ipv4地址记录)资源记录将主机名映射到ipv4地址。
CNAME(规范名称)记录域别名
MX邮件交换记录---标记邮件服务主机名
PTR指针记录将IPV4 IPV6地址映射到主机名(用于反向DNS)
AAAA (IPV6地址记录)资源记录(四A记录)将主机名映射到ipv6地址。/var/named/named.ca(数据文件----资源记录文件)
 

正向解析文件(区域数据文件)

资源记录包含的元素:
owner-name                TTL                class                type                date
主机名资源记录        生存时间        INTERNET        A                记录存储数据

五种定义的信息

serial number:序列号定义当前使用的数据序列号sn遵循"年+月+日+编号”·主和从的更新依据
refresh :定义检查间隔时间(上次和这次变化的时间>retry :重试时间<检查时间>
expire:过期时间(什么时候通过从服务器解析)
negative answer ttl:否定答案的缓存时长(没有指定生存期的数据可以保存在数据中的时间及TTL值)
 
时间单位:M(分钟)、H(小时)、D(天)、W(周),默认单位是秒
配置文件详解︰
dns的主配置文件,作为dns的设定档,将我自己的设定档案列出来然后逐部分进行解释。
该文件属主root , named用户组
 

全局选项

options {
定义监听端口,如果所有地址都监听,则只写端口listen-on port 53 { 127.0.0.1;;
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";分配统计目录allow-query { localhost; }; #只允许本地主机进行查询
recursion yes;#允许递归
#tallow-recursion { 192.168.0.0/16;};指定可以递归的范围
dnssec功能会对解析结果进行验证,是否为权威解答,不是就会报错,虽然不影响使用,但是看着不爽

logging { //指定日志记录分类和他们的目标位置};
zone{定义区域,一个zone定义一个区域type hint;
File named.ca);
查看named.localhost文件∶
[root@www ]# cat /var/named/named.localhost$TTL 1D
IN         SoA           @        rname.invalid. (
                                0; serial1D ; refresh1H ; retry1w ; expire
                                3H ) ; minimum
NS                @
A127.0.0.1
//关键就是这一条记录。
查看named.loopback文件:
[root@www ~]# cat/var/named/named.loopback$TTL 1D
IN         SOA        @        rname.invalid. (
                                 0; serial1D ; refresh1H ; retry1W ; expire
                                3H ) ; minimum
NS                @
PTR localhost.        //关键就是这一条记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值