内建DNS服务器--BIND
时间:2022-05-06
本文章向大家介绍内建DNS服务器--BIND,主要内容包括1、系统环境说明、2、安装bind、3、修改配置文件、检查配置是否正确、4、启动服务、测试DNS服务器、5、搭建公司内部域、源文件说明、检查配置文件、6、验证测试、在linux里测试、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
参考 BIND 官网:http://www.isc.org/downloads/bind/
1、系统环境说明
[root@clsn6 ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@clsn6 ~]# uname -r
2.6.32-696.el6.x86_64
[root@clsn6 ~]# sestatus
SELinux status: disabled
[root@clsn6 ~]# /etc/init.d/iptables status
iptables: Firewall is not running.
[root@clsn6 ~]# hostname -I
10.0.0.188 172.16.1.188 192.168.19.105
2、安装bind
[root@clsn6 ~]# yum install bind* -y
# 文件说明
[root@clsn6 ~]# rpm -ql bind
/etc/named.conf # 主配置文件
/etc/named.rfc1912.zones # 区域解析库文件
/var/log/named.log #日志文件
/var/named #服务根目录
3、修改配置文件
备份named.conf并修改
cp -p /etc/named.conf{,.bak}
修改配置文件
[root@clsn6 ~]# cat /etc/named.conf
# 修改监听地址,删除ipv6监听
options {
listen-on port 53 { 192.168.19.105; };
··· # 运行所有地址请求
allow-query { localhost;any; };
···
}
检查配置是否正确
[root@clsn6 ~]# named-checkconf /etc/named.conf
4、启动服务
[root@clsn6 ~]# /etc/init.d/named start
Generating /etc/rndc.key: [ OK ]
Starting named: [ OK ]
检查端口
[root@clsn6 ~]# netstat -lntup |grep :53
tcp 0 0 192.168.19.105:53 0.0.0.0:* LISTEN 4227/named-sdb
udp 0 0 192.168.19.105:53 0.0.0.0:* 4227/named-sdb
测试DNS服务器
[root@clsn6 named]# dig nmtui.com @192.168.19.105
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> nmtui.com @192.168.19.105
;; global options: +cmd
;; Got answer:
;; ->>HEADER < < opcode: QUERY, status: NOERROR, id: 38139
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 16
;; QUESTION SECTION:
;nmtui.com. IN A
;; ANSWER SECTION:
nmtui.com. 38 IN A 121.42.87.209
;; AUTHORITY SECTION:
nmtui.com. 172237 IN NS dns2.hichina.com.
nmtui.com. 172237 IN NS dns1.hichina.com.
;; ADDITIONAL SECTION:
dns2.hichina.com. 172237 IN A 106.11.211.54
dns2.hichina.com. 172237 IN A 106.11.211.64
dns2.hichina.com. 172237 IN A 140.205.41.14
dns2.hichina.com. 172237 IN A 140.205.41.24
dns2.hichina.com. 172237 IN A 140.205.81.14
dns2.hichina.com. 172237 IN A 140.205.81.24
dns2.hichina.com. 172237 IN A 106.11.141.114
dns2.hichina.com. 172237 IN A 106.11.141.124
dns1.hichina.com. 172237 IN A 106.11.211.63
dns1.hichina.com. 172237 IN A 140.205.41.13
dns1.hichina.com. 172237 IN A 140.205.41.23
dns1.hichina.com. 172237 IN A 140.205.81.13
dns1.hichina.com. 172237 IN A 140.205.81.23
dns1.hichina.com. 172237 IN A 106.11.141.113
dns1.hichina.com. 172237 IN A 106.11.141.123
dns1.hichina.com. 172237 IN A 106.11.211.53
;; Query time: 0 msec
;; SERVER: 192.168.19.105#53(192.168.19.105)
;; WHEN: Tue Feb 6 21:03:38 2018
;; MSG SIZE rcvd: 345
5、搭建公司内部域
搭建自己的域,让当前的DNS解析www.nmtui.com域
将域名 IP 关系存储在DNS上,在 /etc/named.rfc1912.zones 文件中进行添加
[root@clsn6 ~]# vim /etc/named.rfc1912.zones
zone "nmtui.com" IN { # hengxia.top是域名
type master; # 表示权威DNS,即第一个
file "nmtui.com.zone"; # 域数据库,默认位于/var/named/下面,只需告知文件名nmtui.com.zone是库文件名
};
以/var/named目录下的named.localhost为模板,创建nmtui.com.zone文件,创建区域数据库
复制文件
[root@clsn6 named]# cp -av named.localhost nmtui.com.zone
'named.localhost' -> 'nmtui.com.zone' ## 注意cp -a 保持原有属性
源文件说明
[root@clsn6 named]# cat nmtui.com.zone # 解析区域数据库格式,存放名字与IP的对应关系
$TTL 1D # 统一定义TTL(过期时间、缓存时间)
@ IN SOA @ rname.invalid. ( # SOA记录 IN internet技术 IN第一条要写,后面可以省略,可继承第一条IN rname.invalid. 资源的类型
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @ # 代表当前配置域
A 127.0.0.1 # A记录 名字 到 IP 对应IPv4地址
AAAA ::1 # A记录 名字 到 IP 对应IPv6地址
修改配置文件
[root@clsn6 named]# cat /var/named/nmtui.com.zone
$TTL 1D
@ IN SOA @ nmtui.top. (
30 ; serial
1M ; refresh
1M ; retry
1M ; expire
3M ) ; minimum
NS @
www A 10.0.0.188
blog A 10.0.0.188
@ A 10.0.0.188
检查配置文件
[root@clsn6 named]# named-checkconf # 检查配置文件是否正确
# 检查区域配置是否正确
[root@clsn6 named]# named-checkzone nmtui.com /var/named/nmtui.com.zone
zone nmtui.com/IN: loaded serial 0
OK
# 载入配置
[root@clsn6 named]# rndc reload
server reload successful
重新载入不成功可以重启服务!
6、验证测试
在windows上测试
C:Usersclsn>nslookup - 192.168.19.105
默认服务器: UnKnown
Address: 192.168.19.105
> nmtui.com
服务器: UnKnown
Address: 192.168.19.105
名称: nmtui.com
Address: 10.0.0.188
> www.nmtui.com
服务器: UnKnown
Address: 192.168.19.105
名称: www.nmtui.com
Address: 10.0.0.188
> blog.nmtui.com
服务器: UnKnown
Address: 192.168.19.105
名称: blog.nmtui.com
Address: 10.0.0.188
在linux里测试
方法一
[root@clsn6 named]# nslookup - 192.168.19.105
> nmtui.top
Server: 192.168.19.105
Address: 192.168.19.105#53
Name: nmtui.top
Address: 10.0.0.188
方法二
[root@clsn6 named]# dig nmtui.com @192.168.19.105
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> nmtui.com @192.168.19.105
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43306
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;nmtui.com. IN A
;; ANSWER SECTION:
nmtui.com. 86400 IN A 10.0.0.188
;; AUTHORITY SECTION:
nmtui.com. 86400 IN NS nmtui.com.
;; Query time: 0 msec
;; SERVER: 192.168.19.105#53(192.168.19.105)
;; WHEN: Tue Feb 6 20:58:20 2018
;; MSG SIZE rcvd: 57
方法三
[root@clsn6 named]# ping www.nmtui.com -c1
PING www.nmtui.com (10.0.0.188) 56(84) bytes of data.
64 bytes from 10.0.0.188: icmp_seq=1 ttl=64 time=0.010 ms
--- www.nmtui.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.010/0.010/0.010/0.000 ms
- 360春秋杯3道web题的简单分析
- Vue 2.0 学习总结,精华全在这里了
- 25.2 安装Docker
- 使用JDBC向Kudu表插入中文字符-cast的秘密
- 使用JDBC向Kudu表插入中文字符-双引号的秘密
- Yarn的JobHistory目录权限问题导致MapReduce作业异常
- 输入一个数字,然后计算出从1到输入数字的和,要求,如果输入的数字小于1,则重新输入,直到输入正确的数字为止
- Linux基础(day76)
- zabbix设置QQ邮箱告警
- 关于JSON CSRF的一些思考
- linux学习第七十篇:expect脚本同步文件,expect脚本指定host和要同步的文件,构建文件分发系统,批量远程执行命令
- linux学习第六十九篇:分发系统介绍,expect脚本远程登录,expect脚本远程执行命令,expect脚本传递参数
- linux学习第六十八篇:告警系统邮件引擎,运行告警系统
- linux学习第六十七篇:告警系统主脚本,告警系统配置文件,告警系统监控项目
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法