DNS配置范例
这里使用CentOS 7作为DNS主服务器.(ip:172.18.7.77)
正向解析配置:
]# vim /etc/named.rfc1912.zones
zone "opsnote.com" IN {
type master;
file "opsnote.com.zone";
};
]# cd /var/named
]# vim opsnote.com.zone
$TTL 3600
$ORIGIN opsnote.com.
@ IN SOA ns1.opsnote.com. admin.opsnote.com. (
0
1H
10M
3D
1D )
IN NS ns1
ns1 IN A 172.18.7.77
www IN A 172.18.7.73
web IN CNAME www
bbs IN A 172.18.7.74
确保区域数据库文件的属主属组都为named,文件权限为640
]# chown :named opsnote.com.zone
]# chmod 640 opsnote.com.zone
]# ll opsnote.com.zone
-rw-r-----. 1 root named 240 Jan 18 17:29 opsnote.com.zone
检查语法
检查/etc/named.conf配置语法
]# named-checkconf
检查自定义区域数据库文件语法
]# named-checkzone opsnote.com opsnote.com.zone
查看一下当前区域数量
]# rndc status
number of zones: 101
重新载入配置文件
]# rndc reload
再查看一下区域数量
]# rndc status
number of zones: 102
说明刚刚的opsnote.com添加成功
测试:
]# dig -t A www.opsnote.com @172.18.7.77
配置反向解析:
定义反向区域
反向区域的名字为.in-addr.arpa,本机地址为172.18.7.77
]# vim /etc/named.rfc1912.zones
zone "7.18.172.in-addr.arpa" IN {
type master;
file "172.18.7.zone";
};
定义反向区域解析库文件
]# cd /var/named
]# vim 172.18.7.zone
$TTL 3600
$ORGIN 7.18.172.in-addr.arpa.
@ IN SOA opsnote.com. admin.opsnote.com. (
0
1H
10M
3D
12H )
IN NS ns1.opsnote.com.
77 IN PTR ns1.opsnote.com.
73 IN PTR www.opsnote.com.
74 IN PTR bbs.opsnote.com.
61 IN PTR bbs.opsnote.com.
修改属组和权限
]# chgrp named 172.18.7.zone
]# chmod o= 172.18.7.zone
检查语法
]# named-checkconf
]# named-checkzone 7.18.172.in-addr.arpa 172.18.7.zone
配置从DNS服务器
这次使用另一台centos 6 作为上面DNS服务器的从服务器
定义从区域
方法与主服务器相似,指定file在/var/named/slaves目录下,但不需手动创建,可分别指明一个以上主服务器.
安装bind.
]# yum install bind -y
]# ps aux | grep named
编辑配置文件
]# vim /etc/named.conf
//listen-on port 53 { 127.0.0.1; };
//allow-query { localhost; };
dnssec-enable no;
dnssec-validation no;
启动服务
]# service named start
查看服务状态
]# service named status
version: 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4
CPUs found: 4
worker threads: 4
number of zones: 19
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
named (pid 15052) is running...
配置主配置文件,添加从区域
zone "opsnote.com" IN {
type slave;
file "slaves/opsnote.com.zone";
masters { 172.18.7.77; };
};
回到主服务器,添加从服务器NS记录
]# vim /var/named/opsnote.com.zone
IN NS ns2
ns2 IN A 172.18.7.61
检查语法
]# named-checkconf
重载
]# rndc reload
查看服务状态
]# rndc status
88
version: 9.9.4-RedHat-9.9.4-50.el7 <id:8f9657aa>
CPUs found: 4
worker threads: 4
UDP listeners per interface: 4
number of zones: 103
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
回到从服务器
重载服务
]# rndc reload
查看状态
]# service named status
version: 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4
CPUs found: 4
worker threads: 4
number of zones: 19
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
named (pid 15052) is running...
测试:
]# dig -t A www.opsnote.com @172.18.7.61
验证主从同步过程
修改主服务器区域文件内容
]# vim /var/named/opsnote.com.zone
增加内容
bbs3 IN A 172.18.7.74
修改版本号0 –> 2
重载
]# rndc reload
查看日志
]# systemctl status named
Jan 20 15:14:21 ce7.qt named[1407]: client 172.18.7.61#52689 (opsnote.com): transfer of 'opsnote.com/IN': AXFR-style IXFR started
Jan 20 15:14:21 ce7.qt named[1407]: client 172.18.7.61#52689 (opsnote.com): transfer of 'opsnote.com/IN': AXFR-style IXFR ended
Jan 20 15:14:21 ce7.qt named[1407]: client 172.18.7.61#9134: received notify for zone 'opsnote.com'
去从服务器检查同步结果
]# tail /var/log/messages
Jan 20 15:14:21 centos6 named[15052]: client 172.18.7.77#60229: received notify for zone 'opsnote.com'
Jan 20 15:14:21 centos6 named[15052]: zone opsnote.com/IN: Transfer started.
Jan 20 15:14:21 centos6 named[15052]: transfer of 'opsnote.com/IN' from 172.18.7.77#53: connected using 172.18.7.61#52689
Jan 20 15:14:21 centos6 named[15052]: zone opsnote.com/IN: transferred serial 2
Jan 20 15:14:21 centos6 named[15052]: transfer of 'opsnote.com/IN' from 172.18.7.77#53: Transfer completed: 1 messages, 10 records, 254 bytes, 0.001 secs (254000 bytes/sec)
Jan 20 15:14:21 centos6 named[15052]: zone opsnote.com/IN: sending notifies (serial 2)
在其他主机上测试从服务器
]# dig -t A bbs3.opsnote.com @172.18.7.61
可通过axfr类型获得服务器上整个正向和反向区域的资源记录
]# dig -t axfr opsnote.com @172.18.7.77
]# dig -t axfr 7.18.172.in-addr.arpa @172.18.7.77
子域授权
1.在父域的主DNS服务器的正向区域数据库文件/var/named/opsnote.com.zone上授权子域
]# vim /var/named/opsnote.com.zone
aaa IN NS ns3.aaa
ns3.aaa IN A 172.18.7.73
记得增加版本号
重载
]# rndc reload
2.子域服务器上(172.18.7.73)
安装bind
]# yum install bind –y
3.编辑主配置文件
]# vim /etc/named.conf
//listen-on port 53 { 127.0.0.1; };
//allow-query { localhost; };
dnssec-enable no;
dnssec-validation no;
4.启动named服务并查看53端口是否已绑定
]# systemctl start named
]# systemctl status named
]# ss -tunl
172.18.7.73:53
编辑主配置文件
]# vim /etc/named.rfc1912.zones
zone "aaa.opsnote.com" IN {
type master;
file "aaa.opsnote.com.zone";
};
5.创建aaa.opsnote.com.zone文件
]# vim /var/named/aaa.opsnote.com.zone
$TTL 3600
@ IN SOA ns3.aaa.opsnote.com. admin.opsnote.com. (
0 ;序列号
1H ;刷新时间
10M ;重试时间
1D ;过期时间
2H ) ;否定回答的TTL值
IN NS ns3
ns3 IN A 172.18.7.73
www IN A 172.18.7.73
6.修改属组和权限
]# chmod 640 aaa.opsnote.com.zone
]# chgrp named aaa.opsnote.com.zone
]# ll aaa.opsnote.com.zone
-rw-r----- 1 root named 162 Jan 20 16:14 aaa.opsnote.com.zone
7.检查语法
]# named-checkzone aaa.opsnote.com aaa.opsnote.com.zone
zone aaa.opsnote.com/IN: loaded serial 0
OK
8.重载服务
]# rndc reload
9测试正向解析
]# dig -t A www.aaa.opsnote.com @172.18.7.73
如果想通过子域服务器解析父域,子域会先找根,再找.com顶级域进行的带查询,但只要给子域定义了转发区域,就可以让子域解析自己的父域.
给子域服务器定义转发区域
子域服务器(172.18.7.73)
1.编辑主配置文件
]# vim /etc/named.rfc1912.zones
zone "opsnote.com" IN {
type forward;
forward only;
forwarders { 172.18.7.77; 172.18.7.61; };
};
2.检查语法
]# named-checkconf
3.重载
]# rndc reload
4.测试
在父域主服务器(172.18.7.77)上解析子域
]# dig -t A www.aaa.opsnote.com @172.18.7.77
会得到标志位flags: qr rd ra; 其中没有权威应答aa标志,说明不是父域自己解析的.
父域解析自己负责的域
]# dig -t A www.opsnote.com @172.18.7.77
会得到标志位flags: qr aa rd ra; 其中包含的aa为权威应答,说明是自己负责的解析内容.
在子域服务器(172.18.7.73)上解析父域
]# dig -t A www.opsnote.com @172.18.7.73
得到标志位flags: qr rd ra;因为父域只能去找父域解析,所以这里没有aa
如果要子域解析其他域名,如www.qq.com,默认情况下子域服务器会因为自己数据库中没有定义而去互联网上找跟服务器询问并得到结果,假如只想通过父域解析,需要定义全局转发.
在子域服务器上定义全局转发
]# vim /etc/named.conf
options段中添加
forward only;
forwarders { 172.18.7.77; };
forward 有两个参数
firest: 先转发.如果转发器不响应,自己回去迭代查询.
only:只转发,不迭代.
重载
]# rndc reload
测试:
]# dig -t A www.qq.com @172.18.7.73
此时由父域主服务器(172.18.7.73)解析www.qq.com
只允许从服务器进行区域传送,访问控制列表
之前我们通过
]# dig -t axfr opsnote.com @172.18.7.77
直接得到了主服务器上的区域数据库内容,这是不安全的,应该限制为只允许从服务器才能读取.下面为实现方法.
1.在主服务器上编辑/etc/named.conf文件,如添加在options段则全局生效,如添加在zone段则只对当前区域生效.
这里添加在zone,所以可以直接编辑/etc/named.rfc1912.zones文件,找到之前定义的zone "opsnote.com" IN {段,在其中添加allow-transfer { slaves; };
]# vim /etc/named.rfc1912.zones
zone "opsnote.com" IN {
type master;
file "opsnote.com.zone";
allow-transfer { myslaves; };
};
myslaves表示自定义访问控制列表.
2.在主服务器中改配置访问控制列表:
在/etc/named.conf 文件options段前添加
]# vim /etc/named.conf
acl myslaves {
172.18.7.61;
127.0.0.1;
};
检查语法
]# named-checkconf
重载
]# rndc reload
测试:
在非从服务器中测试:
]# dig -t axfr opsnote.com @172.18.7.77
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> -t axfr opsnote.com @172.18.7.77
;; global options: +cmd
; Transfer failed.
在从服务器测试:
]# dig -t axfr opsnote.com @172.18.7.77
传送成功
在主服务器测试:
]# dig -t axfr opsnote.com @172.18.7.77
]# dig -t axfr opsnote.com @127.0.0.1
.7.77传送失败,因为不在访问控制列表中
127.0.0.1传送成功,但是因为我把/etc/named.conf中的listen-on port 53一行注释掉了,所以本机的任何ip都可以接受传送,如果把注释去掉,并且括号中没有127.0.0.1的话,则会传送失败.
DNS配置范例的更多相关文章
- Linux 如何查看修改DNS配置
DNS服务器介绍 DNS是计算机域名系统(Domain Name System 或Domain Name Service) 的缩写,它是由域名解析器和域名服务器组成的.域名服务器是指保存有该网络中所有 ...
- Redhat 一则关于路由及DNS配置的实例
安装了Redhat 7.2, 配置路由, 但发现路由重启之后,不能生效. 配置路由: touch /etc/sysconfig/static-router, 然后编辑路由信息如下. any defau ...
- liunx之:解决liunx下dns配置重启失效的问题
有时候能ping同ip地址,却ping不通域名,这就是dns没有配置的缘故. 但是DNS配置文件 /etc/resolv.conf 每次重启就会失效. 打开这个配置文件,发现有注释提示: Dynami ...
- 彻底解决Ubuntu 14.04 重启后DNS配置丢失的问题
最近得到一个比较好用的DNS,每次重启后都修改DNS配置文件 /etc/resolv.conf 重启就会失效 从网上得知 /etc/resolv.conf中的DNS配置是从/etc/resolvcon ...
- 从DNS配置
从服务器可以从主服务器上抓取指定的区域数据文件起到备份解析记录和负载均衡的作用. 主DNS服务器IP:192.168.16.20 从DNS服务器IP:192.168.16.30 1,修改主服务器区域配 ...
- 安装Oracle 11g RAC R2 之Linux DNS 配置
Oracle 11g RAC 集群中引入了SCAN(Single Client Access Name)的概念,也就是指集群的单客户端访问名称.SCAN 这个特性为客户端提供了单一的主机名,用于访问集 ...
- Redhat linux DNS配置指南(SCANIP配置手册)
在oracle 11g的RAC中增加了SCAN IP,而使用 SCAN IP的一种方式就是使用DNS,这里介绍在Redhat Linux 5.4中DNS的详细配置操作在配置DNS之前修改主机名Redh ...
- 21. DNS 配置和端口检测
一.将本机的 DNS 配置为 8.8.8.8 ,用 nslookup (还可以使用 host.dig)验证 # 修改配置文件 # vim /etc/resolv.conf # 在文件的最后加入 ...
- Ubuntu系统下静态DNS配置详解
1.DNS服务的简介: DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器.DNS中保存了一张域 ...
随机推荐
- Hudson-ci/Using Hudson/Installing Hudson/Installing Hudson RPM--官方文档
< Hudson-ci | Using Hudson | Installing Hudson(Redirected from Hudson-ci/Installing Hudson RPM) ...
- [PY3]——内置数据结构(5)——字符串编码
py2和py3中关于字符串的最大区别? python2中只有 unicode类型 而python3中有 string bytes两种类型 关于string和bytes的区分? 1.str是文本序列.b ...
- flask框架的学习
---恢复内容开始--- 第一个flask程序讲解:1. 第一次创建项目的时候,要添加flask的虚拟环境.添加虚拟环境的时候,一定要选择到python这个执行文件.比如你的flask的虚拟环境的目录 ...
- URL重写html后Html文件打不开解决办法
1.首先照旧在网站配置的应用程序扩展名映射中添加扩展名.html映射到aspnet_isapi.dll,是否存在不选: 2.在web.config文件中<compilation>节点下添加 ...
- unity简易ui框架
在unity项目开发中,ui模块的开发往往占据了很大一部分工作,部分游戏甚至绝大部分的工作都是在ui上,如何高效管理各种界面,这里分享一套高效易用的UI框架. 首先,我们定义一个PanelBase类, ...
- Jsp&Servlet入门级项目全程实录第1讲
惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 1.jdbc数据库连接(略) 2.登录表单 2.1设置内边距 <dir style="padding- ...
- Java - 接口还是抽象类
Java有两种机制可以为某个抽象提供多种实现——Interface和abstract class. Interface 和 abstract class, 除了比较明显的区别(也就是能否提供基本实现) ...
- C# 之构造函数
构造函数是一种特殊的成员函数,它主要用于为对象分配存储空间,对数据成员进行初始化. 构造函数具有一些特殊的性质: (1)构造函数的名字必须与类同名; (2)构造函数没有返回类型,它可以带参数,也可以不 ...
- 二进制之Java位运算(一)
1. 位运算符 下表列出了位运算符的基本运算,假设整数变量A的值为60和变量B的值为13: (表格来自菜鸟教程) 操作符 描述 例子 & 如果相对应位都是1,则结果为1,否则为0 (A& ...
- 基于SSM框架配置多数据源
项目基于ssm + maven,通过注解可以实现自动切换数据源. 一.pom.xml <?xml version="1.0" encoding="UTF-8&quo ...