今天给大家介绍如何搭建一个DNS服务,以下图为例,当一个小区客户端去访问www.jiabing.com时,DNS需要如何去搭建。

搭建前需要先把每台服务器的防火墙和SELINUX关闭。

关闭防火墙:iptables -F

查看SELINUX是否关闭:getenforce没有关闭需要关闭:setenforce 0

除了客户端,别的都需要安装bind包:yum install bind

启动服务:service named start

rpm - -import  RPM-GPG-KEY-...导出公钥(新安装的系统需要执行,导出公钥后就可以安装bind包了)

一、先配置web服务器(因为每配置一个服务器都需要去测试一下,容易排错)

在/var/www/html/下创建一个index.html文件

vim index.html内容如下

顺便再把httpd服务启动起来:service httpd start

此时web服务器已经配好

二、配置主DNS服务器

配置DNS主配置文件/etc/named.conf

vim /etc/named.conf内容如下:

将53端口绑定到本地地址

linsten-on port 53 { localhost; };

允许所有人通过53端口连接本机

allow-query { any; };

只允许172.17.166.166从本机抓取数据库

allwo-transfer { 172.17.166.166;};

配置/etc/named.rfc1912.zones文件,添加一个域

vim /etc/named.rfc1912.zones内容如下:

在/var/named/下创建一个与/etc/named.rfc1912.zones文件里面配置域名字一样的文件后面加个.zone

vim /var/named/jiabing.com.zone内容如下:

前面是SOA记录,

后面需要配置两个NS记录,对应的两个DNS服务器地址,一个指向自己172.17.177.177,另一个只想从DNS服务器172.17.166.166

最后配置域名地址并设置一个别名,ip地址指向web服务器

此时主DNS已经配置完毕,需要用dig www.jiabing.com @172.17.177.177去测试一下自己。(如果测试不成功的话,需要把DNS指向自己,因为还没有配置根DNS)

三、配置从DNS服务器(当主DNS宕机的时候,从DNS可以工作)

同上需要配置主配置文件/etc/named.conf

vim /etc/named.conf内容如下:

将53端口绑定到本地地址

linsten-on port 53 { localhost; };

允许所有人通过53端口连接本机

allow-query { any; };

不允许任何人截取DNS数据库

allow-transfer {  none;};

从服务器配置只需要在/etc/named.rfc1912.zones里面加个条件就行

vim /etc/named.rfc1912.zones内容如下:

指定类型

type slave

指定主DNSip地址

masters { 172.17.177.177;};

文件自动生成路径

file“slaves/jiabing.com.zone”

此时从DNS已经配置成功

rdnc reload同步一下就直接生成/var/named/slaves/jiabing.com.zone文件

同时dig www.jiabing.com @172.17.166.166测试一下看能否访问

四、配置comDNS服务器

配置DNS主配置文件/etc/named.conf

vim /etc/named.conf内容如下:

我们也可以把listen-on port 53 { 127.0.0.1; };和allow-query { localhost;};注释掉,那样就所有IP地址都监听53端口。

如果是转发的DNS服务器需要更改dnssec-enable yes和dnssec-validation yes换成dnssec-enable no和dnssec-validation no。

配置/etc/named.rfc1912.zones文件

添加一个com域,类同于上面配置主DNS的magedu域一样

/var/named/下需要配置一个com.zone域文件

vim /var/named/com.zone内容如下:

前面是SOA记录,类同于magedu.zone域。此时需要配置三个NS,一个dns1的IP地址指向自己172.17.254.77,一个dns2的地址指向主DNS服务 器172.17.177.177,另一个dns3的地址指向从DNS服务器172.17.166.166。

此时comDNS已经配置完毕

dig www.jiabing.com @172.17.254.77测试一下是否能访问

五、配置根DNS服务器

配置/etc/named.conf文件

vim /etc/named.conf内容如下:

此时根文件就是自己,所以要配置一个根域,(因为根域直接就在/etc/named.conf中,所以就不用去/etc/named.rfc1912.zones里面更改了)

配置/var/named/下root.zone

vim /var/named/root.zone内容如下:

上面的SOA类同。需要有两个NS记录,一个dns1指向自己172.17.133.133,另一个指向子域com172.17.254.77。

配置/var/named/named.ca文件(因为自己当根,所以只有一个根服务器)

vim /var/named/named.ca内容如下:

并且这个文件需要给comDNS主机DNS从DNS小区DNS,都需要更改/var/named/named.ca和根下的/var/named/named.ca一样。

六、配置小区DNS服务器

只需要编辑/etc/named.conf文件

配置内容同上

七、配置客户端DNS

vim /etc/resolv.conf内容如下:

将DNS指向小区DNS的IP地址

此时客户端就能通过网页访问www.jiabing.com了,到此一个DNS大框架也就配置成功。。

在以上实验中如果哪一步测试失败,失败原因可能是一下几种

1、NXDOMAIN:不存在的域名

查看/var/named/下文件是否写错。

2、REFUSED:拒绝访问

查看网络是否通

3、no servers could be reached:DNS不可到达

查看服务是否开启

4、SERVFAIL:

可能是权限的问题,或者别的问题,需要检查权限

5、检查防火墙和SELINUX

linux 简单dns搭建,搭建一个简易的DNS服务相关推荐

  1. 【Linux操作系统】--攥写一个简易的shell工具

    目录 做一个简易的shell 第一步:打印提示符,在同一行打印出提示符 第二步:获取标准输入,获取命令字符串 第三步:将字符串分割,解析字符串 第四步:替换进程,执行第三方命令 3.5.执行第三方命令 ...

  2. 快速搭建一个简易的KMS 服务

    xu言: 之前,闹的沸沸扬扬的KMS激活工具自身都存在问题的事.让我们对以前的什么小马激活.kms激活.各种激活工具都去打了一个深深的"?",到底哪些能用.哪些不能用.有些还注明的 ...

  3. 使用一个超简单的类实现一个简易服务器,明白Tomcat的运行机制

    代码如下: package bear.网络通讯;import java.io.BufferedReader; import java.io.IOException; import java.io.In ...

  4. Linux系统编程下做一个简易的shell

    自主实现一个shell--------minshell shell:命令行解释器-------解释执行用户的输入(完成相对应的功能) 步骤 1. 获取标准输入中的字符串 2. 对字符串进行解析[ls ...

  5. 搭建一个简易的发布系统

    为了解决 博客 写作环境限制的问题,尝试搭建了一个简易的发布系统.Git 仓库只是托管 md 文件,通过 Webhook 通知服务器更新 md 文件,然后执行构建静态文件操作,完成一个发布过程. 需求 ...

  6. 基于腾讯信鸽设计一个微型推送服务

    今日科技快讯 据印度媒体报道,对于旗下短视频应用抖音国际版TikTok在印度遭封杀,母公司字节跳动表现得似乎"非常乐观",并计划未来三年在印度投资10亿美元.在接受采访时,字节跳动 ...

  7. Linux上利用nginx搭建一个简单的rtmp视频流服务器(不涉及直播)

    文章目录 Linux上利用nginx搭建一个简单的rtmp视频流服务器(不涉及直播) 一.基础环境搭建 二.构建Nginx 下载nginx-rtmp-module 安装Nginx 编译nginx,代理 ...

  8. linux ftp dns,Ubuntu下FTP与DNS服务器搭建教程PDF

    Linux服务器系统是Ubuntu 16.04 LTS,FTP软件选择的当然是vsftpd(very secure FTP daemon), Ubuntu装vsftpd还是很简单,一句命令就行: su ...

  9. LINUX下dns的搭建(主dns和辅助dns)

    首先,看看dns是否安装,这里的包名为bind 这里就说明所有dns需要的包已经安装.如果没有安装,我们直接连接镜像文件,直接界面化安装,也可以用命令来安装(需要注意安装顺序)注:如果已经安装,则下面 ...

最新文章

  1. leetcode-45 跳跃游戏II
  2. 复杂个人信息输出程序python_练习题-修改个人信息程序
  3. 不爱沟通的人可以做产品经理嘛?
  4. HTML5 Canvas(画布)
  5. word 目录格式的设置
  6. 用Python自制一个百度一下,这操作可还行
  7. 软件著作权申请成功,申请流程攻略
  8. js数字金额转大写,javaScript数字金额转大写。
  9. JavaScript数组方法总结
  10. 区块链 交易和区块数据存在哪儿
  11. unit怎么发音_unitl是什么意思
  12. php登陆界面点登陆没有反应,ThinkPHP5实战的登录界面的登陆按钮点击之后没有任何反应怎么解决?...
  13. 快速扫盲 | 霍尔传感器的工作原理
  14. jQuery 基础 筛选和遍历 jQuery 对象
  15. Android小项目--Suzy计算器
  16. 软件测试基础知识面试题目(25题英文题目)
  17. 南京市租房网上提取公积金步骤
  18. 在Unity中使用FFmpeg将视频绿色背景处理为透明背景
  19. c语言isnan,C# Double.IsNaN()用法及代码示例
  20. python+pyqt5

热门文章

  1. 解决:【异常】Caused by: java.lang.IllegalStateException: Zip64 archives are not supported
  2. FaceShifter:一秒换脸的人脸交换模型
  3. SSHFD:IBM提出的单阶段人体跌倒检测网络
  4. 自动驾驶的视觉感知包括哪些内容?
  5. Hbase原理、基本概念、基本架构
  6. 超牛EXCEL操作技巧,用的好,会涨工资哦
  7. BNUOJ34980方(芳)格(哥)取数(好坑)
  8. 驰骋工作流程引擎案例-水质检测工作流程设计开发实现过程
  9. php的yii2框架下开发环境xampp,vim,xdebug,DBGp的搭建
  10. phpMyAdmin安装图解教程