DNS域名解析
我们知道互联网都是通过URL来发布和请求资源的,而URL中的域名需要解析成IP地址才能与远程主机建立连接,如何将域名解析成IP地址就属于DNS解析的工作范畴。
DNS域名解析过程
当我们在浏览器中输入www.abc.com时,DNS解析将会有将近10个步骤,这个过程大体大体由一张图可以表示:
名词解释
正向解析:从域名到ip地址的解析过程。
反向解析:从ip地址到域名的解析过程。
DNS缓存: DNS服务器在解析客户机的请求时,如果本地没有该DNS的信息,则可以会询问其他DNS服务器,当其他域名服务器返回查询记过时,该DNS服务器就会将结果记录在本地的缓存中,成为DNS缓存。
区(zone):是DNS名称空间的一个连续部分,其中包一组存储在DNS服务器上的资源记录。
资源记录:DNS服务器的信息数据,按照类进行存储,能够即系客户端的DNS请求
区文件:包含区资源记录的文件,选择DNS服务器为授权服务器,管理该区域。
DNS的解析
一、DNS的正向解析
1.安装DNS服务器软件(bind)
[root@localhost ~]# yum install bind.x86_64 -y
Loaded plugins: langpacks
software | 4.1 kB 00:00
Resolving Dependencies
--> Running transaction check
---> Package bind.x86_64 32:9.9.4-14.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
bind x86_64 32:9.9.4-14.el7 software 1.8 M
Transaction Summary
================================================================================
Install 1 Package
Total download size: 1.8 M
Installed size: 4.3 M
Downloading packages:
bind-9.9.4-14.el7.x86_64.rpm | 1.8 MB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 32:bind-9.9.4-14.el7.x86_64 1/1
Verifying : 32:bind-9.9.4-14.el7.x86_64 1/1
Installed:
bind.x86_64 32:9.9.4-14.el7
Complete!
2.更改主配置文件
[root@localhost ~]# vim /etc/named.conf
说明:根区域是互联网中所有域名的开始,使用句点(.)表示,缓存服务器只有能够访问DNS根服务器才能担供正常的域名解析服务。
options { listen-on port 53 { any; }; 监听端口已经监听的地址 listen-on-v6 port 53 { ::1; }; directory “/var/named”; 区域文件存储目录,即bind服务器的工作目录 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”; // Those options should be used carefully because they disable port // randomization // query-source port 53; // query-source-v6 port 53; allow-query { any; }; 允许本机发起查询 any :允许任何人向你发起查询 allow-query-cache { localhost; }; 允许那些查询有缓存 }; logging { channel default_debug { file “data/named.run”; 日志的保存路径 severity dynamic; }; }; view localhost_resolver { match-clients { localhost; }; 匹配客户端的地址 ,改成any match-destinations { localhost; }; 改成any recursion yes; 允许递归,如果不递归,那么在找不到匹配的 域名解析是后,就会显示找不到,直接告诉你结果 include “/etc/named.rfc1912.zones”; 此文件主要定义了根区域,localdomain区域,localhost区域,及反向解析区域 }; |
在缓存域名服务器的named. caching-nameserver.conf文件中加载的named.rfc1912.zones文件对根区域进行了设置.
此文件中的type hint表示此区域类型是根区域;file “named.ca”设置区域文件名称,该文件保存在bind工作目录/var/named/中
- 查看端口:
[root@localhost ~]# netstat -antlpe | grep named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 25 111456 32071/named
tcp 0 0 172.25.254.141:53 0.0.0.0