搭建最基础的DNS服务

搭建一个简单的DNS

为了更方便和清晰的了解DNS的作用,通过搭建一个简单的DNS服务来学习。

在搭建之前,先简单了解一下DNS的工作原理

  1. 客户端把访问的域名传递给DNS服务器a,如果有记录,则将IP传递给客户端
  2. DNS服务器a没有记录,则以 递归方式 访问其他服务器。首先访问根域
  3. 根域将匹配的一级域名DNS服务器b地址传递给DNS服务器a
  4. DNS服务器a再去访问DNS服务器b,DNS服务器b再将匹配的二级域名DNS服务器c传递给DNS服务器a
  5. DNS服务器a再去访问DNS服务器c,重复以上3,4步骤
  6. DNS服务器a得到客户端要访问域名的ip地址,传递给客户端,并留下记录,方便以后访问。

简单模拟一个DNS工作

1.准备两台终端,客户端,服务器。

这里我以Centos6.9为客户端,Centos7.3位服务器。

2.在服务端安装bind(提供DNS服务的软件)


  1. [root@centos7 named]# yum -y install bind 
  2. Loaded plugins: fastestmirror, langpacks 
  3. Loading mirror speeds from cached hostfile 
  4.  * base: mirrors.163.com 
  5.  * extras: mirrors.163.com 
  6. * updates: mirrors.btte.net 
  7.  
  8. Resolving Dependencies 
  9. --> Running transaction check 
  10. ---> Package bind.x86_64 32:9.9.4-50.el7_3.1 will be installed 
  11. --> Finished Dependency Resolution 
  12.  
  13. Dependencies Resolved 
  14.  
  15. ================================================================================================== 
  16.  Package          Arch               Version                            Repository           Size 
  17. ================================================================================================== 
  18. Installing: 
  19. bind             x86_64             32:9.9.4-50.el7_3.1                updates             1.8 M 
  20. Transaction Summary 
  21.  
  22. ================================================================================================== 
  23. Install  1 Package 
  24.  
  25. Total download size: 1.8 M 
  26. Installed size: 4.3 M 
  27. Downloading packages: 
  28. bind-9.9.4-50.el7_3.1.x86_64.rpm                                           | 1.8 MB  00:00:01      
  29. Running transaction check 
  30. Running transaction test 
  31. Transaction test succeeded 
  32. Running transaction 
  33.   Installing : 32:bind-9.9.4-50.el7_3.1.x86_64                                                1/1  
  34.   Verifying  : 32:bind-9.9.4-50.el7_3.1.x86_64                                                1/1  
  35.  
  36. Installed: 
  37.  bind.x86_64 32:9.9.4-50.el7_3.1                                                                  
  38.  
  39. Complete!`  

3.关闭linux安全策略和防火墙

1).服务器–Centos7


  1. sed -i ‘s/SELINUX=enforcing/SELINUX=permissive/g’ /etc/selinux/config 
  2. iptables -F 
  3. systemctl disable firewalld 
  4. systemctl stop firewalld 

2).客户端–Centos6


  1. sed -i ‘s/SELINUX=enforcing/SELINUX=permissive/g’ /etc/selinux/config  
  2. chkconfig iptables off  
  3. service iptables stop 

检查selinux安全策略是否修改为”允许”

cat /etc/selinux/config

4.启动DNS服务器


  1. systemctl start named  
  2. systemctl enable named 

启动后确认端口开启(端口号默认为 53)


  1. ss -nutl 

把服务器53端口绑定在所有服务器ip上


  1. cd -p /etc/named.conf{,.bak} 

(需要修改陪指文件,建议先备份 )


  1. vim /etc/named.conf 

修改listen-on port 53 {localhost; }中的localhost

改为any或0.0.0.0或将整行注释


  1. vim /etc/sysconfig/network-scripts/ifcfg-ens33 

在最后一行加上DNS1=127.0.0.1

重启服务(配置文件生效)


  1. systemctl restart network 

在客户端(Centos6)配置DNS,指向服务器DNS(Centos7)


  1. vim /etc/sysconfig/network-scripts/ifcfg-eth0 

最后加上DNS1=172.16.0.24(DNS)


  1. systemctl restart network 

在服务器(Centos7)配置DNS,允许本地以外的地址访问


  1. vim /etc/named.conf 

修改allow-query { localhost;any; };

改为any或0.0.0.0或将整行注释

在客户端(Centos6)尝试连接外网


  1. [root@centos6 ~]# dig www.baidu.com 
  2.  
  3. ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> www.baidu.com 
  4. ;; global options: +cmd 
  5. ;; Got answer: 
  6. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59143 
  7. ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 5 
  8.  
  9. ;; QUESTION SECTION: 
  10. ;www.baidu.com. IN A 
  11.  
  12. ;; ANSWER SECTION: 
  13. www.baidu.com. 347 IN CNAME www.a.shifen.com. 
  14. www.a.shifen.com. 43 IN A 61.135.169.121 
  15. www.a.shifen.com. 43 IN A 61.135.169.125 
  16.  
  17. ;; AUTHORITY SECTION: 
  18. a.shifen.com. 254 IN NS ns1.a.shifen.com. 
  19. a.shifen.com. 254 IN NS ns3.a.shifen.com. 
  20. a.shifen.com. 254 IN NS ns5.a.shifen.com. 
  21. a.shifen.com. 254 IN NS ns2.a.shifen.com. 
  22. a.shifen.com. 254 IN NS ns4.a.shifen.com. 
  23.  
  24. ;; ADDITIONAL SECTION: 
  25. ns1.a.shifen.com. 254 IN A 61.135.165.224 
  26. ns2.a.shifen.com. 254 IN A 180.149.133.241 
  27. ns3.a.shifen.com. 254 IN A 61.135.162.215 
  28. ns4.a.shifen.com. 254 IN A 115.239.210.176 
  29. ns5.a.shifen.com. 254 IN A 119.75.222.17 
  30.  
  31. ;; Query time: 1 msec 
  32. ;; SERVER: 172.16.0.1#53(172.16.0.1) 
  33. ;; WHEN: Mon Jul 24 14:16:16 2017 
  34. ;; MSG SIZE rcvd: 260 

本文作者:佚名

来源:51CTO

时间: 2024-10-30 06:01:43

搭建最基础的DNS服务的相关文章

使用 unbound 在 RHEL7 上搭建 DNS 服务

使用 unbound 在 RHEL7 上搭建 DNS 服务 1.概念 DNS (域名解析服务Domain Name Server),使用 TCP&UDP 的53号端口(主从 DNS 之间用 TCP,客户端查询使用 UDP).它可以完成域名与 IP 地址的互换,可以通过 IP 地址解析到域名,也可以通过域名解析到 IP 地址. FQDN(完全合格域名Fully Qualified Domain Name),层次化树形结构.通常表现为:主机名.子域.二级域.顶级域.根域. .例如我们平时访问的网站:

如何搭建DNS服务(转)

继NTP时间服务器后,继续搭建DNS服务,鉴于昨晚撰写时间超过预期,这次改变策略,先把自己需要用到的部分写出来(主要是基于RAC的搭建,只涉及正向和反向DNS解析),后面再添加必要的说明和阐述. 试验环境:       1. Red Hat 6.3       2. IP 192.168.1.128       3. 欲搭建的域名 being.com 一.安装DNS软件      [root@hello ~]# yum install bind* -y 查询相关软件包:[root@localho

容器化dns服务

容器化dns服务 之前将一个小应用使用docker compose部署之后,遇到一个问题,修改域名解析的IP.之前在虚拟机上可以直接修改hosts文件, 在docker容器中修改就比较麻烦,修改主机hosts文件也没有效果. 为了解决这个问题,引入了dnsmasq作为dns服务器.由于主机上本身已经有docker环境,因此也打算把dnsmasq放到容器中去运行. 首先是选择容器,在docker hub上下载量最多的是 andyshinn/dnsmasq 镜像.这个镜像的最大优势就是简单,整个镜像

在 CentOS7.0 上搭建 Chroot 的 Bind DNS 服务器

在 CentOS7.0 上搭建 Chroot 的 Bind DNS 服务器 BIND(Berkeley internet Name Daemon)也叫做NAMED,是现今互联网上使用最为广泛的DNS 服务器程序.这篇文章将要讲述如何在 chroot 监牢中运行 BIND,这样它就无法访问文件系统中除"监牢"以外的其它部分. 例如,在这篇文章中,我会将BIND的运行根目录改为 /var/named/chroot/.当然,对于BIND来说,这个目录就是 /(根目录). "jail

DNS.COM全面筑互联网域名生态圈 推出公共DNS服务

2016年7月23日,在被美国前总统尼克松赞誉为"东方夏威夷"的海滨城市厦门,"帝心引力求同存域"--2016DNS.COM域名生态大会拉开帷幕. 会上,DNS.COM(原名51DNS,中文名:帝恩思)董事长王宇杰.总经理许渊培以及域名圈内众多大咖悉数到场,并正式推出了公共DNS服务.此次大会围绕着如何构筑互联网生态圈,从战略到生态.从产品到联盟全景展示了DNS.COM未来发展的全面布局. DNS.COM是国内最大的高防DNS域名解析服务商,DNS.COM作为国内新

网络基础四 DNS DHCP 路由 FTP

第1章 网络基础 1.1 IP地址分类     IP地址的类别-按IP地址数值范围划分     IP地址的类别-按IP地址用途分类     IP地址的类别-按网络通信方式划分 1.2 局域网上网原理过程     DHCP原理过程详情.     http://blog.oldboyedu.com/autoinstall-kickstart/     http://www.zyops.com/dhcp-working-procedure DHCP(Dynamic Host Configuration

电信屏蔽Godaddy部分DNS服务

从7月16日开始,国内部分地区用户(主要是西安电信和部分地区联通用户)向我反映,无法访问我的博客,经过我的测试排查发现,原因是部分地区的电信运营商屏蔽了我博客DNS解析服务商Godaddy的DNS服务,西安电信的DNS服务器218.30.19.40已将Godaddy的某些DNS屏蔽,使导致那些使用Godaddy DNS的网站都无法从西安访问,包括我的博客在内. Godaddy成立于1997年,是全球域名注册排名第一的服务商,全球市场占有率达18%.域名的附加服务很多,价格低廉,平均价格只有国内域

Linux系统下的动态DNS服务配置方法详解

在网络管理中,对于DNS服务的管理是一项基础性的工作.随着用户规模的扩大,频繁地手工修改DNS的区域数据库文件不是一件轻松的工作.关于动态DNS(DDNS)的研究逐渐引起了人们的关注,不同的平台都推出了自己的解决方案.本文将详细介绍Linux环境下DDNS的解决方案,即由Internet Software Consortium(ISC)开发的BIND-DNS和DHCP(Dynamic Host Configure Protocol,动态主机配置协议)协同工作,进而共同实现DDNS的方法. 在Li

简述DNS服务在网络中的应用

第一部分:DNS的安装和简单使用 DNS简介 DNS 是域名系统(Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串. DNS使用TCP与UDP端口号都是53,主要使用UDP,服务器之间备份使用TCP 位置 提供DNS服务的是安装了DNS服务端软件的计算机.服务器端软件既可以是基于类linux操作系统,也可以是基于windows操作系统的.装好DNS服务