当前位置: 首页 > Linux

DNS服务器(一)

时间:2023-04-06 02:23:46 Linux

博客参考http://www.178linux.com/77218http://www.178linux.com/67736主要dns搭建:http://blog.csdn.net/reblue520/article/details/52537014Builtfromdns:http://blog.csdn.net/reblue520/article/details/52537026DNS服务原理详解互联网上的分布式数据库,将域名和IP地址相互映射,使用户可以访问上网更方便,不用记住机器直接读取的IP号串。通过主机名最终得到主机名对应的IP地址的过程称为域名解析。当我们访问一个网站时,只要输入该网站的网址,就会跳转到该网站的页面。要实现这个过程,需要DNS服务器将域名解析为IP地址,进而实现数据通信。DNS:DomainNameService域名解析服务监听端口:udp/53,tcp/53应用:BIND:BekerleyInternatNameDomain国际域名DNS域名根域一级域名:顶级域名:com,edu,mil,gov,net,org,int,arpa组织域:.com,.org,.net,.mil,.edu,.gov,.info,.cc,.me,.tv国家域:.cn,.us,.uk,.jp,.tw,.hk,.iq,.ir反向域名:.in-addr.arpa最多127级域名ICANN(互联网名称与数字地址分配机构),互联网公司为分配的名称和数字,负责Internet范围内的通用顶级域(gTLD)和国家代码顶级域(ccTLD)系统管理,以及根服务器系统管理。DNS树结构图DNS查询类型递归查询DNS请求被服务器接受后,如果属于本服务器管辖范围,则依次请求上级服务器传递请求,并将结果传递给本服务器依次请求主机。迭代查询DNS请求被服务器接受后,如果不在自己管辖范围内,则让客户端访问根域服务器,然后通知客户端以域名访问下级服务器,直到客户端最后访问管理所请求域名的服务器。名称服务器:负责解析域中名称的主机根服务器:13组服务器解析类型正向解析:FQDN(完整域名)->IP反向解析:IP->FQDN(完整域名)QualifiedDomainName)fullyqualifieddomainname注:正向和反向解析是两个不同的命名空间,是两个不同的解析树,因此,它们不是同一个解析库DNS服务器类型。主DNS服务器缓存来自DNS服务器(转发器)的DNS服务器MasterDNS服务器:在其负责的域内管理和维护解析库的服务器;读和写都可以进行。Number:解析库的版本号。当主服务器的解析库发生变化时,其序列会增加。RefreshInterval:从服务器向主服务器请求同步解析的时间间隔RetryInterval:当从服务器请求同步失败时:当从服务器无法联系到主服务器时,需要多长时间停止服务?否定答案的缓存持续时间。通过解析库的变化Domain:FullyQualifiedDomainNameForward:FQDN–>IPReverse:IP–>FQDN负责本地域名forwardareareverseareaDNS解析的正反解析库一个完整的过程查询请求:Client(客户端)->hosts文件->DNSServiceLocalCache(自己的本地缓存)->DNSServer(递归递归)->ServerCache(缓存)->iteration(迭代)->Root->top-一级域名DNS–>二级域名DNS...一个完整的查询请求流程:Client(客户端)–>hosts文件–>DNSServiceLocalCache(自己的本地缓存)–>DNSServer(递归递归)–>服务器缓存->迭代(iteration)->根->顶级域名DNS->二级域名DNS...解析回答:是回答:否定回答:请求条目不存在等原因导致无法访问返回权威结果答:直接负责的DNS服务器返回的答案是非权威答案:比如DNS客户端查询URL地址www.fastweb.com.cn流程图区域解析库由很多RR组成:(ResourceRecord)SOA:StartOfAuthority(初始授权记录)一个区域解析库有且只能有一条SOA记录,必须位于解析库的第一条记录A:internetAddress(地址记录)FQDN–>IPAAAA:FQDN–>IPv6PTR:PointTeR(域名服务记录)IP–>FQDN一个区域解析库可以有多个NS记录NS:NameServer(专门标记当前区域的DNS服务器)CNAME:CanonicalName(别名记录)MX:MaileXchanger(邮件exchange)priority:0-99,数字越小,优先级越高资源记录定义的格式语法:name[TTL]INrr_typevalue注:(1)TTL可以从全局继承(2)@可以用于引用当前区域的名称(3)同一个名称可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询的方式响应(4)同一个值也可能有多个不同的定义名称;多个不同的名称指向同一个值被定义;这仅意味着可以通过多个不同的名称找到同一台主机。SOA记录名称:当前区域的名称,如“rookie.com”。FQDN,也可以使用当前区域的名称(2)当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.代替,如linux.rookie.com(3)master-slaveserviceareatransfer和UnifiedTTLnegativeanswer的定义例如:rookie.com.86400INSOArookie.com。admin.rookie.com。(2017052201;序列号serial2H;刷新时间refresh10M;重试时间retry1W;过期时间expire1D;否定回答的TTL值否定回答ttl)NS记录名称:当前区域的名称值:当前区域的DNS服务器名称,如ns.rookie.com。注意:一个区域可以有多个NS记录例如:rookie.com。在NSns1.rookie.com.rookie.com。在NSns2.rookie.com。注意:(1)当相邻的两个资源记录同名时,后面的可以省略(2)对于NS记录,ns记录后面的任何服务器名都要跟一个A记录MX记录名:资源的名称当前区域值:当前区域的邮件服务器(smtp服务器)的主机名。可以有多个MX记录;但每条记录的值前应有一个数字(0-99),表示本服务器的优先级;数字越小,优先级越高例如:rookie.com。在MX10(优先级)mx1.rookie.com.rookie.com。在MX20(优先级)mx2.rookie.com。注意:(1)对于MX记录,任何MX记录后面的任何服务器名都要有后续的A记录A记录名:某个主机的FQDN,如www.rookie.com.value:主机名对应主机的IP地址,例如:www.rookie.com。在1.1.1.1www.rookie.com中。在2.2.2.2mx1.rookie.com中。在3.3.3.3mx2.rookie.com中。在4.4.4.4$GENERATE1-254HOST$A1.2.3.$*.rookie.com中。在5.5.5.5rookie.com。INA6.6.6.6为了避免用户写错名字时给出错误的答案,可以通过泛域名解析解析到具体的地址AAAA记录名:FQDN值:IPv6PTR记录名:IP地址,有特定的格式,写入反向IP地址,1.2.3.4,写4.3.2.1;并添加特定的后缀:in-addr.arpa.,所以完整的写法是:4.3.2.1.in-addr.arpa.value:FQDN例如:4.3.2.1.in-addr.arpa。在PTRwww.rookie.com。如果1.2.3是网址,可以简写为:4INPTRwww.rookie.com。注意:网络地址和后缀可以省略;主机地址还需要反写CNAME名称:FQDN格式别名值:FQDN格式的官方名称,例如:web.rookie.com。在CNAMEwww.rookie.com中。以小数点分隔。放在域名末尾的子域称为最高级别子域,或一级域,位于其前面的子域称为二级域。子域授权:每个域的名称服务器通过其上级名称服务器在解析库中进行授权。类似于根域授权tld:.com。在NSns1.com..com。在NSns2.com.ns1.com。在2.2.2.1ns2.com中。在2.2.2.2rookie.com。在.com的域名服务器上,添加资源记录rookie.com。在NSns1.rookie.com.rookie.com。在NSns2.rookie.com.rookie.com。在NSns3.rookie.com.ns1.rookie.com。在3.3.3.1ns2.rookie.com中。在3.3.3.2ns3.rookie.com。INA3.3.3.3glue记录:胶水记录,父域授权子域记录BIND安装DNS协议—>BIND程序环境:主程序:/usr/sbin/named单元文件:/usr/lib/systemd/system/named.service配置文件:/etc/named.conf区域解析库文件:/var/named关闭dnssec功能:vim/etc/named.confdnssec-enableno;dnssec-验证号;解析区域:定义:/etc/named.rfc1912.confzone“ilinux.io”IN{typemaster;文件“ZONE_FILE”;};示例:vim/etc/named.rfc1912.confzone“rookie.com”IN{typemaster;文件“rookie.com.zone”;};定义解析库文件示例:$TTL600#全局定义缓存十分钟ilinux.com.在SOAilinux.com中。nsadmin.ilinux.com。(20170523011H5M1W6H)在NSdns1.ilinux.com。在NSdns2.ilinux.com.dns1.ilinux.com中。在172.16.0.67dns2.ilinux中。com。INA172.16.0.68www.ilinux.com.INA172.16.0.1webINCNAMEwwwBIND安装配置:BIND:BerkeleyInternetNameDomaindns:protocolBIND:animplementationofthednsprotocolnamed:运行bind程序的进程Namednsservicepackage:bindunbound程序名:namedunboundpackage:yumlistallbind*bind:提供的dns服务器程序,以及几个常用的测试程序bind-libs:bind和bind-utils包中的程序常用的库文件bind-utils:绑定客户端程序集,如dig、host、nslookup等bind-chroot:可选,让named在监狱模式下运行/var/named/chroot/绑定服务器服务脚本和名称:/etc/rc.d/init.d/named/usr/lib/systemd/system/named.service主要配置文件:/etc/named.conf/etc/named.iscdlv.key/etc/named.rfc1912。zones/etc/named.root.keyyuminstall-ybind后可以看到解析库文件:/var/named/ZONE_NAME.ZONE注意:(1)一台DNS服务器可以同时提供多个区域的解析;(2)必须有根区解析库文件;named.ca(3)应该有两个zone解析库文件(如果包含ipv6的话应该还有)实现localhost和127.0.0.1的正向和反向解析库Forward:named.localhostReverse:named.loopbackrndc:remotenamedomaincontroller(远程域名控制器)提供辅助管理功能953/tcp但默认监听127.0.0.1地址,所以只允许本地使用。bind程序安装后,默认可以作为缓存名称服务器使用。如果没有专门解析的区域,可以直接启动服务。CentOS6:servicenamedstartCentOS7:systemctlstartnamed.service