概念 | DNS在网络中的作用就是维护者一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,便于为各户程序提供正向或反向的地址查询服务,即正向解析与反向解析。 1).正向解析:根据域名查IP地址,是DNS服务最常用的基本功能; A记录,Cname(别名,不同域名同一ip) 2).反向解析:根据IP查域名。 PTR 每台DNS服务器都负责管理一个有限范围(一个或多个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段成为zone(区域) |
分类 | 1).缓存域名服务器:帮你找域名解析,本身并不能解析 2).主域名服务器:自己维护一个域名的解析记录本 3).从域名服务器:主的备份 4).智能解析服务器 |
解析流程 |
|
查询模式 | 递归查询:当客户机向DNS服务器发出解析请求,DNS服务器从服务器本地的高速缓存中查询出结果,反馈给客户机,此过程为递归查询,即Client-Server。 迭代查询:当客户机向DNS服务器发出解析请求,DNS服务器从服务器本地的唯高速缓存中查询发现没有结果,此时该DNS服务器以DNS客户机的身份向其他DNS服务器发送解析请求或向根域名服务器发送请求,此过程成为迭代查询,即Server-Server |
端口 | TCP 53端口 UDP 53 端口 |
所需包 | bind:提供了域名服务器的主要程序及相关文件 bind-utils:提供了对DNS服务器的测试工具,如nslookup等 bind-libs:提供了bind、bind-utils需要使用的函数库 bind-chroot:为BIND服务提供一个伪装的根目录(将/var/named/chroot文件夹作为BIND的根目录)以提高安全性,也成为jail(监牢)机制 bind安装后,会自动添加一个名为named的系统服务。 |
实验部署步骤 | |
环境 部署 | 先使用rpm -qa查看系统中是否存在安装包bind,bind-chroot,bind-utils,如果存在,那么使用rpm -e将其卸载,避免引起冲突。 |
1. | 使用yum安装服务bind,bind-chroot,bind-utils |
2. | 修改主配置文件:/etc/named.conf
在allow-query下一行添加forwarders {192.168.200.5}表示让缓存服务器去找括号内IP服务器去要解析。也就是指定服务器解析。 保存退出 |
3. | 检查DNS配置文件 [root@centos ~]# named-checkconf /etc/named.conf 无提示表示配置无误 |
4. | 启动DNS服务 [root@centos ~]# /etc/init.d/named start |
5. | 查看服务监听端口号,确定服务是否开启 [root@centos ~]# netstat -antup | grep 53 |
6. | 修改DNS解析配置文件 |
实验:DNS搭建 | |
1. | DNS主服务器搭建 所需硬件:两台centos6,一台做服务器,一台做客户机或一个centos6服务器,一个win7客户机 (本实验中,server表示服务器,client表示客户机) |
安装 DNS 服务 | 服务器 客户机 |
修改配置文件 | [root@server ~]# vim /etc/named.conf //进入DNS主配置文件 (此处进入配置文件后,删除了里面的所有内容,自己编写即可。如果需要监听IP,设置连接范围,请参照“环境部署中的内容”) options:全局选项 directory:指定区域数据文件存放位置 /var/named:用于存放DNS正向和反向解析的区域数据文件 zone:负责区域,第一个声明的是正向区域,所以为正向解析的域名;第二个 后面的为反向区域,所以为IP地址网段反写(注意,是网络位反写,不要添 加主机位!)。 type:类型,master为主区域,slave为从区域(下个实验会有) file:指定实际的区域数据文件,引号内的文件名可以自定,但是在后面的正反解析文件的文件名必须与这里的一样,要不然会读不到配置文件。 Ps:注意!配置文件中的“;”“{}”“”””不要多写和漏写不然会报错。 |
配置正向解析 | [root@server ~]# cd /var/named //进入/var/named目录,配置正向和反向解析文件 [root@server named]# vim LJL.zheng //配置正向解析文件(正向和反向都是没有的,需要手动创建) $TTL:生命周期,86400表示一天的秒数 @:表示域名 SOA:表示授权,后跟授权的域名,管理员的邮箱。这两个都是完全域名,即“com.”。 2021010311:表示更新序列号,不超过十位即可 3H:刷新事件(3小时),重新下载地址数据的间隔 15M:重试延时(15分钟),下载失败后的重试间隔 1W:失效时间,超过该事件仍无法下载则放弃 1D:无法解析记录的生存周期 NS:记录当前区域的DNS服务器的主机地址 MX:记录当前区域的邮件服务器的主机地址。当有多个记录时,数字10表示选择邮件服务器的优先级,数字越大,优先级越低 A:记录正向解析条目 |
配置反向解析 | [root@server named]# vim LJL.fan //配置反向解析文件 PTR:指针记录。格式: 主机地址 IN PTR 转换成的域名 |
检查配置文件 | [root@server named]# named-checkconf -z /etc/named.conf //对主配置文件检查,如果提示job则表示配置文件错误,仔细检查配置文件 |
[root@server named]# named-checkzone baidu.com /var/named/LJL.zheng //对正向解析配置文件进行检查,提示OK表示无问题 [root@server named]# named-checkzone baidu.com /var/named/LJL.fan //对反向解析配置文件进行检查,提示OK表示无问题 | |
启动 DNS 服务 | [root@server named]# /etc/init.d/named start 或 [root@server named]# service named start //启动DNS服务,这两种方法哪种都可以 建议:如果是第一次启动服务,使用start,如果启动服务后修改了文件,那么使用restart重启服务。 如果启动中,提示job,如下,则检查配置文件:/etc/named.conf,/var/named/LJL.zheng,/var/named/LJL.fan |
测试 | 服务器: nslookup:该命令用于域名解析,双向解析都可以,解析不到的话,检查配置文件。 客户机: 将客户机的DNS地址改成服务器的IP地址,然后使用nslookup进行测试。 方法1:进入网卡配置模式进行修改: vim /etc/sysconfig/network-scripts/ifcfg-ent0 方法2:进入DNS地址配置文件修改: vim /etc/resolv.conf 如果该文件中什么都没有,那么写上:nameserver DNS服务器地址 保存退出 测试: 如果,提示连接超时,那么先检查两台机器是否可以Ping通;如果可以Ping 通,但是还是提示超时,那么检查两台机器的DNS地址是否一致(服务器的DNS为他的IP,客户机的DNS为服务器的IP);假如还是不通,那么,检查你的防火墙,看看是不是没有关闭,并检查selinux服务是否关闭。 配位文件无问题,且服务器可以解析自己的DNS,那么就是以上问题。 |
2. | DNS主从结构 所需硬件:两台centos6,一台做主服务器,一台做从服务器。 (server为主服务器,server2为从服务器) |
修改主配置文件 | [root@server ~]# vim /etc/named.conf //进入主服务器上修改主配置文件 添加allow-transfer { 192.168.200.5; }; 括号内的地址为从服务器的地址, allow-transfer作用是允许从服务器下载LJL.zheng和LJL.fan。 |
修改正向解析 | [root@server ~]# vim /var/named/LJL.zheng //修改正向解析配置文件 ns1为主DNS的IP,ns2为辅助DNS的IP |
修改反向解析 | [root@server ~]# vim /var/named/LJL.fan //修改反向解析配置文件 当客户机设置的DNS地址为5或4,都将能解析到域名。 |
重启 服务 | [root@server ~]# service named restart //重启DNS服务 |
服务器 DNS 解析 | 此时是解析不到5的地址网段,因为从DNS还未配置。 |
从 服务器 | 环境同主服务器一致,都需安装DNS服务相关的包 |
修改主配置文件 | [root@server2 ~]# vim /etc/named.conf //进入主配置文件进行修改 type:DNS服务器的类型未slave,代表从服务器。 file:slaves/LJL.fan表示在slaves目录下,从主服务器备份正向和反向配置文件 masters:为从主服务器下载实际区域数据文件,{}中为主服务器的IP地址 |
区域数据文件 | [root@server2 ~]# ls /var/named/slaves //查看/var/named/slaves是否有区域数据文件 [root@server2 ~]# service named restart //重启DNS服务 [root@server2 ~]# ls /var/named/slaves/ //查看主服务器的DNS区域数据文件是否传递过来 |
从DNS测试 | 从测试结果,我们可以看到,解析的IP或者域名都是主DNS的IP地址,但是如果在从服务器上解析从服务器的地址,那么将显示从服务器的地址。 |
3. | 负载均衡 在实际访问服务器的时候,用户数量过多会导致服务器承受不住,从而崩溃,因此,通过负载均衡,让用户可以解析同一个域名,不同IP,使服务器减少工作量,从而提高工作效率。 |
修改主配置文件 | 如果做完主从结构,那么在哪一台服务器上,都可以进行操作。 [root@server ~]# vim /var/named/LJL.zheng //进入正向解析文件进行修改 |
重启 服务 | |
测试 | 结论:每次测试分给用户的DNS地址都不一样,但是域名是相同的,实现负载均衡,以提高工作效率。 |
4. | 别名操作 一个域名的多种访问 |
修改主配置文件 | 如果做完主从结构,那么在哪一台服务器上,都可以进行操作 [root@server ~]# vim /var/named/LJL.zheng //进入正向解析区域配置文件 CNAME:别名,将其他域名映射到一个域名。也就是说解析web.LJL.com或abc.LJL.com效果同等与www.LJL.com |
重启 服务 | |
测试 | |
5. | 输入任何域名都可以回馈IP地址,而不是回馈找不到域名。 |
修改配置文件 | 如果做完主从结构,那么在哪一台服务器上,都可以进行操作 [root@server ~]# vim /var/named/LJL.zheng //进入正向解析区域配置文件 *:表示任意,也就是不管用户输入的域名是什么,解析都会回馈一个127.0.0.1。如:wac.LJL.com,asdkgljas.LJL.com,11111111.LJL.com等,都会返回127.0.0.1。 |
重启 服务 | |
测试 | 无论输入什么域名,都会回馈127.0.0.1这个地址。 |
2021-1-6 |
Linux基础篇·DNS
最新推荐文章于 2024-03-12 09:23:45 发布