(1)dns介绍

1.基本介绍

名字解析:
NetBIOS名:localhost wins hosts
FQDN:完全限定域名,www.baidu.com
hosts文件:
作用:实现名字解析,主要为本地主机名丶集群节点提供快速解析,集中式数据库
dns服务器:
作用:实现名字解析(将主机名解析成ip地址),分布式数据库

2.dns解析流程:客户端解析www.baidu.com

1)客户端查询自己的缓存(windows中的hosts文件也是缓存),如果没有将查询发送到/etc/resolv.conf中的dns服务器
2)如果本地DNS服务器对于请求的信息具有权威性,会将权威答案发送到客户端
3)如果dns服务器在其缓存中有请求信息,则将(非权威答案)发送到客户端
4)如果缓存中没有该查询信息,dns服务器将搜索权威DNS服务器以查找信息
从根区域开始,按照dns层次结构向下搜索,直至对于信息具有权威的名称服务器,为客户端获取答案,dns服务器将信息传递给客户端,并在自己的缓存中保留一个副本
转发到其它服务器

3.权威服务器和非权威服务器

权威服务器:存储并提供某个区域的实际数据,例如126.com的DNS服务器,记录了126.com域中的所有主机的记录;是权威服务器返回的dns解析结果就是权威服务器返回的结果
master:主dns服务器,包含原始区域的数据
slave:备dns服务器,通过区域传输从master服务器获取区域数据的副本
非权威服务器:不存储某个区域的实际数据,仅缓存dns服务器,虽然可以提供查询,但查询的内容不具有权威性

4.正向区域和反向区域

正向解析:域名解析为ip
反向解析:ip地址解析成域名

(2)配置仅有缓存功能的dns服务器

0.关闭防火墙和selinux

systemctl stop firewalld.service
systemctl disable firewalld.service
sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/sysconfig/selinux
setenforce 0

1.安装bind和启动服务

yum install bind bind-chroot -y
systemctl restart named
systemctl enable named

2.修改配置文件

#vim /etc/named.conf
zone "." IN {
type hint;
file "named.ca"; //根区域,文件在选项directory(var/named)配置的目录下,全球13台根服务器
};
options {
listen-on port 53 { any; }; //监听端口在所有ipv4接口上
listen-on-v6 port 53 { any; }; //监听端口在所有ipv6接口上
directory "/var/named"; //数据库文件存储位置
allow-query { any; }; //允许任意主机查询
forward first; //当客户端发起查询,不是自己的区域,首先向forwarders服务器发起查询
forwarders { 114.114.114.114;114.114.115.115; }; //转发到上一级的DNS服务器
};

3.语法检测重启服务和验证测试

#named-checkconf /etc/named.conf                                             //检查主配置文件
#systemctl restart named
说明:当客户端的dns服务器为这台服务器的时候,如果该配置里面没有forward参数,默认发起查询会向根节点发起查询,全球有13台根服务器;如果配置forward选项,客户端发起的请求会转发forward的dns
测试:客户端dns服务器指向这台服务器,dig www.baidu.com ;然后在dns服务器上tcpdump -i ens33 -nn port 53

(3)配置dns服务器正向区域:dnstest.com

1.主配置文件 :相当于在域名服务商申请域名

#vim /etc/named.conf
options {
directory "/var/named"; //数据库文件存储位置
};
zone "testdns.com" IN { //创建域dnstest.com
type master;
file "testdns.com.zone"; //数据文件在/var/named目录下
};

2.数据库文件(区域文件),在域名服务提供的页面上做解析

#vim /var/named/testdns.com.zone
$TTL 600 //设置缓存记录10分钟
@ IN SOA @ root( 2018051600 1H 15M 1W 1D) //起始授权记录,用于指出DNS服务器,必须配置,()里面的内容用于主从复制使用
@ IN NS dns //指区域所授权的主机是ns主机,必须配置
dns IN A 192.168.1.31 //dns服务器本机ip
www 100 IN A 192.168.1.32 //www.testdns.com解析成192.168.1.32
@ IN A 192.168.1.32 //直接对域名进行解析,这里对域名testdns.com解析成192.168.1.32这个ip
说明:缓存时间有三种,优先级最大生效
$TTL 600 //缓存时间10分钟;优先级中
( 2018051600 1H 15M 1W 1D) //这里1D是缓存时间1天;优先级最低
www 300 IN A 192.168.1.32 //缓存时间5分钟;优先级最大生效

3.检测语法和重启服务

named-checkconf /etc/named.conf                 //检查配置文件
named-checkzone testdns.com /var/named/testdns.com.zone //检查区域数据文件,
systemctl restart named
在客户端测试:dig www.testdns.com //如果从权威服务器获取的解析结果,flags标志位有aa记录

(4)客户端工具详解

1.dig(linux工具)

dig www.baidu.com 						//使用/etc/resolv.conf设置的dns
dig @114.114.114.114 //使用指定的dns

2.host(linux工具)

host www.baidu.com 						//等同于host -t A www.baidu.com ,正向解析,查询A记录
host 114.114.114.114 //反向解析,查询PTR记录
host www.baidu.com 114.114.114.114 //使用指定的dns服务器114.114.114.114 解析
host -t SOA baidu.com //查询某个域的SOA记录
host -t NS baidu.com //查询某个域的NS记录
host -t MX baidu.com //查询某个域的邮件服务器

3.nslookup(linux/windows工具)

nslookup www.baidu.com
nslookup 114.114.114.114
#nslookup //进入nslookup交互界面
set q=soa //设置查询soa记录
baidu.com
set q=a //设置查询A记录
www.baidu.com

4.ipconfig(windows工具)

ipconfig /flushdns 					//清空dns缓存
ipconfig /displaydns //显示dns缓存信息
ipconfig /release //释放ipv4地址
ipconfig /renew //更新ipv4地址

(5)配置主从复制

1.从服务器配置

#vim /etc/named.conf
zone "testdns.com" IN {
type slave; //类型从
masters { 192.168.1.32; }; //指定master服务器ip地址
file "slaves/testdns.com.zone"; //数据文件放置在哪里
};
#systemctl restart named

2.主服务器配置

#vim /etc/named.conf
zone "testdns.com" IN {
type master;
file "testdns.com.zone";
allow-transfer { 192.168.1.33; };
};

CentOS7安装和配置dns服务器的更多相关文章

  1. 烂泥:centos安装及配置DNS服务器

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 要在centos配置DNS服务器,要先安装DNS软件BIND.当然我们也可以安装其他的DNS软件,比如国内的开源DNS软件DNSPod. 在此我们以通过 ...

  2. centOS7配置DNS服务器

    世上无难事只怕有心人,遇事千万千万不要抵触,消极的情绪是失败之母,一点一滴,踏踏实实是通往幸福的捷径. 历经激动,受挫,抵触和鼓励以及征服,终于配好了让我欢喜让我忧的dns.在这里记录下来,希望能够给 ...

  3. CentOS7安装及配置vsftpd (FTP服务器)

    CentOS7安装及配置vsftpd (FTP服务器) 1.安装vsftpd 1 yum -y install vsftpd 2.设置开机启动 1 systemctl enable vsftpd 3. ...

  4. CentOS7安装及配置vsftpd (FTP服务器FTP账号创建以及权限设置)

    本文章向大家介绍CentOS7安装及配置vsftpd (FTP服务器FTP账号创建以及权限设置),主要包括CentOS7安装及配置vsftpd (FTP服务器FTP账号创建以及权限设置)使用实例.应用 ...

  5. 在Debian上用Bind 配置DNS服务器

    1 什么是DNS 初学者可能不理解DNS到底是什么,干什么用.我是在1998年大学毕业时才听说这个词的.那时我在聊天室碰到潍坊信息港的一个网管,我恬不知耻地说我也是个网管,他说也维护DNS吗?我说,D ...

  6. Linux下搭建Oracle11g RAC(2)----配置DNS服务器,确认SCAN IP可以被解析

    从Oracle 11gR2开始,引入SCAN(Single Client Access Name) IP的概念,相当于在客户端和数据库之间增加一层虚拟的网络服务层,即是SCAN IP和SCAP IP  ...

  7. centos7安装dnsmasq局域网dns

    Dnsmaq介绍: Dnsmasq是一款小巧且方便地用于配置DNS服务器和DHCP服务器的工具,适用于小型网络,它提供了DNS解析功能和可选择的DHCP功能. Dnsmasq可以解决小范围的dns查询 ...

  8. windows server 2008 配置DNS服务器与IIS

    0x00: 总结这个星期在学校学的. 0x01安装: 首先你得安装好windows server 2008 然后在添加角色->安装IIS和DNS服务器 勾选好你要安装的. 安装-> 根据老 ...

  9. 开发--CentOS-7安装及配置

    开发|CentOS-7安装及配置 本文主要进行详细讲解CentOS7.5系统的安装过程,以及CentOS系统初始化技术.我并不想将这篇文章变成一个教程,尽管我将详细的进行每一步的讲解,enjoy! 前 ...

随机推荐

  1. Nginx配置(一)

    下载源码安装包:http://nginx.org 稳定版Nginx 1.6.2 tengine: 2.1.2 1.安装缺少依赖的包: (yum install jemalloc) yum -y ins ...

  2. 2015/9/2 Python基础(7):元组

    为什么要创造一个和列表差别不大的容器类型?元组和列表看起来不同的一点是元组用圆括号而列表用方括号.而最重要的是,元组是不可变类型.这就保证了元组的安全性.创造元组给它赋值和列表完全一样.除了一个元素的 ...

  3. 【bzoj3648】环套树+点分治+树状数组

    tree 1s 128M  by hzw czy神犇种了一棵树,他想知道地球的质量 给定一棵n个点的树,求树上经过点的个数≥K的路径数量ans 对于部分数据,树上某两点间会多出最多一条无向边 输入数据 ...

  4. 【bzoj3362-导航难题】带权并查集

    题意: 约翰所在的乡村可以看做一个二维平面,其中有N 座牧场,每座牧场都有自己的坐标,编号为1到N.牧场间存在一些道路,每条道路道路连接两个不同的牧场,方向必定平行于X 轴或Y轴.连通两座牧场之间的路 ...

  5. 崩坏3mmd中的渲染技术研究

    http://youxiputao.com/articles/11839 主要是参考该篇文章做一个微小的复盘. 漫反射与高光 文章中的漫反射与高光并不是类似于普通的 resultCol = Diffu ...

  6. 将已编写的静态的网页发布到github上

    最近在学习前端框架的过程中,一直想把自己学习中做的demo 发布到github 上去.但是在查看了很多相关资料也没能找到一个比较满意的结果. 无奈之下,只能尝试做用了一种自认为最low 的方式来达到部 ...

  7. Android中的异常情况

    1.setText()方法中,如果参数是int类型,Android会把它当做是一个id查找,报以下异常,因此解决办法就是将参数转化为String类型 如:setText(num) è setText( ...

  8. 树莓派开启smb

    1.安装smb apt-get install samba samba-common-bin 2.修改/etc/samba/smb.conf配置 设置使用系统用户登入 增加smb访问文件夹 [shar ...

  9. Linux中查看进程占用内存的情况【转】

    转自:http://hutaow.com/blog/2014/08/28/display-process-memory-in-linux/ Linux中查看某个进程占用内存的情况,执行如下命令即可,将 ...

  10. 64_j1

    JSCookMenu-2.0.4-13.fc26.noarch.rpm 13-Feb-2017 22:06 38098 Java-WebSocket-1.3.1-0.2.git58d1778.fc24 ...