linux-DNS域名正向解析、服务程序BIND安装与配置

一、DNS系统

1、概念

  • DNS域名系统(Domain Name system缩写DNS, Domain Name被译为域名)是因特网的一项核心服务, 它作为可以将域名和IP地址相互映射的一个分布式数据库;是应用层协议,是域名也是服务
  • DNS使用的协议及端口号是TCP和UDP的53端口号
  • TCP是用来做区域传送,多用于主从同步
    在一个区中主DNS服务器从自己术机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息
  • UDP是用来做DNS解析的
    FQON全称Fully Qualified Domain Name
    即全城名:同时带有主机名和域名的名称
    FQDN=Hostnane + DomainName
    如: ww. baidu. com.
    注意:最前面的一定是主机,最后一个点表示根域,通常是省略不写的,但实际上www. abc . com=www. abc. com.

2、作用

  • 正向解析:根据域名查找对应的IP地址
  • 反向解析:根据IP地址查找对应的城名(域名的反向解析不是很常用,只在一些特殊场合才会用到,比如可用于反垃圾邮件的验证。)

今天我们主要以实验的方式详细讲解正向解析的过程

3、域名系统是树形的域名树

首先DNS系统的分布式数据结构是树形,分为根域、顶级域、二层域、三层域或子域、主机名五个部分;具体看图1
例:www.sina.com.cn
在这里插入图片描述
从上往下,一层管理一层

  • 根域:位于域名空间最顶层,一般用一个".“表示根域
  • 顶级城:一般代表种类型的组织机构或国家地区, 比如com. cn. net, uk等
  • 二级域::用来标明顶级域内的一个特定的组织。国家顶级域下面的二级域名由国家网络部门统一管理,比如baidu. taobao等
  • 子域:二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名sina.com.cn
  • 主机位:位于域名空间最下层,就是一台具体的计算机,比如www,mail等
    每一级的城名长度限制是63个字符,域名总长度则不能超过253个字符

拓展小知识:

  • 顶级域:
    .com:盈利的组织,一般是盈利的企业申请
    .net:网络公司
    .org:民间团体组织;非盈利的
    .edu:教育性,比如大学的网址
    .cn:中国的
    .uk:美国的
    .gov:政府
    .mil:军事
    .hk:中国香港
  • 主机名:
    mail:邮件
    news:新闻
    ftp:上传下载的类

4、工作原理

这里还是给大家画一个图,方便大家的理解
在这里插入图片描述
dns服务器经过了两个过程:
递归查询:客户端-域名服务器-ip;可以直接告诉准确结果的
迭代查询:从域名服务器-根域-二级域-服务器-三级域;无法直接告知,需要一层层查
具体解析过程如下:

  1. 看本机的缓存记录
  2. 查询hosts文件
  3. 查询dns域名服务器,交给dns域名服务器处理
  4. 域名服务器查看缓存:查询缓存表有直接返回结果,没有则进行下一步
  5. 域名服务器发送请求给根域:根域通过查看域名服务器请求的地址,告知顶级服务器可能会知道结果,让其去找顶级服务器
  6. 顶级域服务器:顶级域服务器返回三级域服务器可能会知道结果,让其去找三级域服务器
  7. 三级域服务器:三级域服务器返回二级域服务器可能会知道结果,让其去找二级域服务器
  8. 二级域服务器:二级域服务器查询主机位内的缓存表,发现是我的主机,把查询到的IP地址返回给本地域名服务器
  9. 本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端

//1-3的过程称为递归查询;4-9的过程称为迭代查询

<

DNS解析BIND 9(适用于WINDOWS桌面系统) 完全改进: Security Fixes Treat an all zero netmask as invalid when generating the localnets acl to workaround bug on Windows platform. [CVE-2013-6230] [RT #34687] Fix crashes when serving some NSEC3 signed zones. memcpy was incorrectly called with overlapping ranges, resulting in malformed names being generated on some platforms. This could cause INSIST failures. (CVE 2014-0591) [RT #35120] Features Changes Add the ability to specify ndots to "nslookup". [RT #34711] Introduce a new tool "dnssec-importkey" to allow externally-generated DNSKEY to be imported into the DNSKEY management framework. [RT #34698] Check that EDNS subnet client options are well formed. [RT #34718] "named" now preserves the capitalization of names when responding to queries. [RT #34737] Include a comment in .nzf files (used for adding new zones via "rndc"), giving the name of the associated view. [RT #34765] Use separate rate limiting queues for refresh and notify requests. [RT #30589] Adjust when a master server is deemed unreachable to be less aggressive. [RT #27075] Create delegations for all "children" of empty zones except "forward first". [RT #34826] Changed the name of "isc-config.sh" developers script (for outputting compiler and linker flags) to "bind9-config". [RT #23825] Add "dig" option to keep the TCP socket open between successive queries (+[no]keepopen). [RT #34918] Add dns_client_createx2() function to DNS Client API to provide a way to specify the local address for use when sending update packets. [RT #34811] "named-checkconf -z" now checks zones of type hint as well as master. [RT #35046] Update config.guess and config.sub to add support for ppc64le (powerpc 64-bit Little Endian). [RT #35060] Update the Windows build system to support feature selection and WIN64 builds. This is a work in progress. [RT #34160] Add "dnssec-signzone -Q" switch to drop signatures from keys that are still published but no longer active. [RT #34990] Add a more detailed "not found" message to "rndc" commands which specify a zone name. [RT #35059] named will now warn when a zone's configured "key-directory" does not exist or is not a directory. [RT #35108] Added improvements to statistics channel XSL stylesheet: the stylesheet can now be cached by the browser; section headers are omitted from the stats display when there is no data in those sections to be displayed; counters are now right-justified for easier readability. (Only available with ./configure --enable-newstats.) [RT #35117] "named-checkconf" can now obscure shared secrets when printing by specifying '-x'. [RT #34465] "named" can now accept integer timestamps in RRSIG records. [RT #35185] The export-library API call for loading "resolv.conf", irs_resconf_load(), has been modified to return ISC_R_FILENOTFOUND when the file does not exist and initializes the resconf structure as if the file had existed and configured with nameservers at the localhost addresses (127.0.0.1 and ::1). [RT #35194] Bug Fixes Treat type 65533 (KEYDATA) as opaque except when used in a key zone. [RT #34238] Fix "host" and "nslookup" so don't need dot after the domain by checking ndots when searching. Only continue searching on NXDOMAIN responses. [RT #34711] Handle changes to sig-validity-interval settings better. [RT #34625] Fix bug where journal filename string could be set incorrectly, causing garbage in log messages. [RT #34738] Address a race condition when shutting down a zone. [RT #34750] Address race condition with manual notify requests. [RT #34806] Fix nslookup crash where some readline clones don't accept NULL pointers when calling add_history. [RT #34842] Fix Linux compilation issue when libcap-devel is installed. [RT #34838] Fix installation on Solaris -- don't add explicit make dependencies/rules for python programs as make won't use the implicit rules. [RT #34835] Fix hanging server with inline-signed zones by addressing lock order reversal deadlock with inline zones. [RT #34856] Fix "host" failure if a UDP query timed out. [RT #34870] Address bugs in dns_rdata_fromstruct and dns_rdata_tostruct for WKS and ISDN types. [RT #34910] Updated OpenSSL PKCS#11 patches to fix active list locking and other bugs. [RT #34855] Fix a potential hang with failure to release lock on error in receive_secure_db. #34944] Fix cast in lex.c which could see 0xff treated as EOF. This fixes issue with potential bad data in a database used by DLZ or SDB. [RT #34993] Fix build issue on newer FreeBSD needing -lhx509 for GSSAPI build. [RT #35001] Address read after free in server side of lwres_getrrsetbyname. [RT #29075] Fix "nsupdate" memory leak if "realm" was used multiple times. [RT #35073] Fix "dig" for cleaning up TCP sockets still waiting on connect(). [RT #35074] Fix "dnssec-importkey" so imported key won't overwrite an existing non-imported private key. Fix issue where queries covered by a disabled Response Policy Zone (query type was '*') are answered with TTL of 0. [RT #35026] Fix "nsupdate" memory leak if "realm" was used multiple times. [RT #35073] Fix "dig" for cleaning up TCP sockets still waiting on connect(). [RT #35074] Fix issue with "rndc retransfer" with inline-signing replacing NSEC3 with NSEC records. [RT #34745] Fix issue with "rndc refresh" failing to sign slave zones using inline-signing. [RT #35105] Fix potential hang (detected by our inline-signing system test) with null pointer dereference in libdns zone_xfrdone. [RT #35042] Address bug in libdns loadnode function that could return a freed node on out of memory. [RT #35106] Fixed a bug causing an insecure delegation from one "static-stub" zone to another to fail with a broken trust chain. [RT #35081] Fixed problem where iterative responses could be discarded when the "query-source" port for an upstream query was the same as the listener port (53). [RT #34925] Fix crashes in RBTDB implementation. Two calls to dns_db_getoriginnode were fatal if there was no data at the node. [RT #35080] Fix a possible race and crash in the socket_search() function in dispatch.c. [RT #35107] Fix "dig" so it can handle AXFR style IXFR responses which span multiple messages. [RT #35137] Fix a "host" tool problem with converting UTF-8 textname to IDN encoding by handling "." as a search list element when IDN support is enabled. [RT #35133] Fix "queryperf" to prevent a possible integer overflow when printing results. [RT #35182] Prevent a theoretically possible race and crash when obtaining a socket in dispatch.c [RT #35128] Use built-in versions of strptime() and timegm() on all platforms to avoid portability issues. [RT #35183] Fix a bug which could cause a crash when running "rndc reconfig" or "rndc reload" after configuration is changed from regular zones to automatic empty zones. [RT #35177]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值