基于BIND软件实现互联网DNS解析
一、什么是DNS服务
DNS全称(Domain Name System)域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串;DNS通过软件来进行实现域名对IP的解析;这里是通过BIND开源软件实现;BIND是开放源码软件,它允许在Internet上发布域名系统(DNS)信息,并为用户解析DNS查询;该名称绑定代表是"Berkeley Internet Name Domain"BIND是迄今为止使用最广泛的DNS软件在互联网上,提供了一个强大的和稳定的平台之上的组织可以建立分布式计算系统与知识,这些系统完全符合发布的DNS标准;BIND实现DNS协议,而DNS协议是核心互联网标准的一部分。
二、用户的基本上网流程
如下图:
三、DNS工作机制
如下图:
四、实践互联网DNS解析
1、实践前的规划
(a)配置流程图:
(b)配置主机规划:
编号 | 主机名 | 角色 | IP地址 |
1 | linux-node1-root | root | 192.168.10.10 |
2 | linux-node2-com | com | 192.168.10.11 |
3 | linux-node3-icescn-com01 | icescn.com | 192.168.10.12 |
4 | linux-node4-icescn-com02 | icescn.com | 192.168.10.13 |
5 | dns-proxy | proxy | 192.168.10.16 |
6 | client | client | 192.168.10.26 |
(c)操作系统信息:
系统版本:CentOS6.7 内核版本:2.6.32 系统架构:X86_64 安装状态:Minimal
2、预基础配置
(a)关闭防火墙及SELINUX安全选项;
/etc/init.d/iptables stop|status
sed -i.bak 's@SELINUX=enforcing@SELINUX=disabled@g' /etc/sysconfig/selinux
grep '\<SELINUX\>' /etc/sysconfig/selinux
setenforce 0
getenforce
(b)配置HOSTS解析(每个主机都配置);
cat /etc/hosts
# DNS service for hosts
192.168.10.10 linux-node1-root linux-node1
192.168.10.11 linux-node2-com linux-node2
192.168.10.12 linux-node3-icescn-com01 linux-node3
192.168.10.13 linux-node4-icescn-com02 linux-node4
192.168.10.16 dns-proxy
192.168.10.85 client
(c)安装BIND服务软件(每个主机都安装);
yum install bind -y
(d)基础选项配置(每个主机都配置);
cat /etc/named.conf
options {
# 监听本地所有网卡IP;
listen-on port 53 { localhost; };
# 是否允许其他主机来查询;也可以允许特定的主机来查询;
allow-query { any; };
# 是否允许其他主机来本机抓取记录;"none"为不允许;
allow-transfer {none;};
# 关闭相关安全选项;
dnssec-enable no;
dnssec-validation no;
};
注意:参数"allow-transfer"在主从同步的服务器上需要进行授权从服务器来抓取记录,其他的则禁止;
(e)配置解析的根文件(每个主机都配置):
cat /var/named/named.ca
. 3600000 NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 192.168.10.10
注意:"根"服务器不需要配置,它需要单独进行配置区域;该文件在生产环境意味着服务器是否能上网解析;
(f)服务加入开机自启动(每个主机都配置);
cat /etc/rc.local
# Bind service start by icescn at 20170430
/etc/init.d/named start &>/dev/null
(g)配置流程:5个配置步骤
(1)icescn.com --> (2)com --> (3)根 <---> (4)proxy授权代理 <--- (5)client解析
3、配置主从解析记录同步:二级域
MASTER上:
(a)允许指定主机来同步:
cat /etc/named.conf
options {
allow-transfer {192.168.10.13;};
};
named-checkconf # 检查主配置文件是否有语法错误;
(b)配置区域解析文件:
cat /etc/named.rfc1912.zones
zone "icescn.com" IN {
type master; # 指定类型为主;
file "icescn.com.zone"; # 指定区域解析记录文件路径;
};
cat /var/named/icescn.com.zone
$TTL 1D
@ IN SOA dns1 admins.icescn.com. ( 2017043000 1D 1w 2w 3w )
@ NS dns1
@ NS dns2
dns1 A 192.168.10.12
dns2 A 192.168.10.13
www CNAME webservers
webservers A 192.168.10.27
bbs A 192.168.10.28
blog A 192.168.10.29
@ MX 10 mailservers
mail CNAME mailservers
mailservers A 192.168.10.30
named-checkzone "icescn.com.zone" /var/named/icescn.com.zone # 检查区域解析文件是否语法错误;
文件语法格式选项:
$TTL: 表示这条资源记录可以在客户端缓存多久的时间周期;
@: 表示当前域的名称;
SOA: 主从同步相关信息;
NS: 当前的DNS服务器;
A: 正向解析记录;
MX: 邮件解析记录;
CNAME: 别名解析记录;
主从同步相关选项:
2017043000: 解析库版本号;
1D: 刷新时间;
1w: 重试时间;多久进行重试,此选项一般是主从同步失败时的重试时间;
2w: 过期时间;
3w: 服务不可用时间;
(c)重新启动服务:
/etc/init.d/named restart
ss -tanl | grep "53"
SLAVE上:
(a)禁止其他主机来本机抓取区域解析记录:
cat /etc/named.conf
options {
allow-transfer {none;};
};
named-checkconf
(b)建立同步区域文件配置:
cat /etc/named.rfc1912.zones
zone "icescn.com" IN {
type slave; # 指定类型为从;
masters {192.168.10.12;}; # 指定主服务器地址;
file "slaves/icescn.com.zone.slave"; # 指定同步的区域记录文件路径;
};
(c)重新启动服务:
/etc/init.d/named restart
ss -tanl | grep "53"
ls -l /var/named/slaves/
注意:"slaves"必须要有写权限,这意味着"named"用户要对此目录有写权限;
DNS-PROXY上:
测试主从同步的区域解析文件是否正常:
for n in {12,13};do echo "# DNS SERVER: $n";for i in "www" "bbs" "blog" "mail";do dig ${i}.icescn.com @192.168.10.${n} | egrep "^(w|b|m)";done;done;
到此DNS主从同步配置成功!
4、配置COM委派:一级域
COM上:
(a)建立com的委派区域文件:
cat /etc/named.rfc1912.zones
zone "com" IN {
type master; # 指定类型为主;
file "com.zone"; # 指定区域解析记录文件路径;
};
cat /var/named/com.zone
$TTL 1D
@ IN SOA com1 admins.com1.com. ( 2017043000 1D 1w 2w 3w )
@ NS com1
icescn.com. NS icescndns1
com1 A 192.168.10.11
icescndns1 A 192.168.10.12
注意:这里委派是给"icescn.com"二级域;
(b)检查语法并且启动服务:
named-checkconf
named-checkzone "com" /var/named/com.zone
/etc/init.d/named restart
ss -tanl | grep "53"
DNS-PROXY上:
测试COM是否委派成功:
dig www.icescn.com @192.168.10.11
dig bbs.icescn.com @192.168.10.11
5、配置ROOT委派:根
ROOT上:
(a)建立根的委派区域文件:
cat /etc/named.conf
zone "." IN {
type master; # 指定根的类型为主(自己为主);
file "root.zone"; # 指定区域解析记录文件路径;
};
cat /var/named/root.zone
$TTL 1D
@ IN SOA root1 admins.root1.com. ( 2017043000 1D 1w 2w 3w )
@ NS root1
com. NS comdns1
root1 A 192.168.10.10
comdns1 A 192.168.10.11
注意:这里委派是给"com"一级域;
(b)检查语法并且启动服务:
named-checkconf
named-checkzone "." /var/named/root.zone
/etc/init.d/named restart
ss -tanl | grep "53"
DNS-PROXY上:
测试根是否委派成功:
dig blog.icescn.com @192.168.10.10
dig mail.icescn.com @192.168.10.10
注意:最好清空下上次测试的缓存记录;rndc flush:清空本地解析缓存;
. 3600000 NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 192.168.10.10
dig只用于测试dns系统,但不会查询本地hosts文件进行解析;
转载于:https://blog.51cto.com/icescn/1920884
基于BIND软件实现互联网DNS解析相关推荐
- 基于Bind实现的DNS正反向解析及主从DNS的配置
一.什么是DNS? 1.1 简单的理解,Domain Name System,是互联网一项核心的服务,他作为一个桥梁可以将域名和IP地址相互因素的一个分布式数据库,能够使人更加方便的访问互联网,而不用 ...
- Linux centos7 DNS服务器基于bind正反解析服务的搭建
Linux centos7 DNS服务器基于bind正反解析服务的搭建 DNS的相关基础知识: 一.DNS-- ...
- LinuxProbe 0x16 安装Bind服务程序、正向/反向解析、从署服务器、加密传输dns、缓存服务器、分离解析
几天没写, csdn的编辑器都换了, 找不到之前的入口了, 新的编辑器不是很好用,不知道排版出来怎么样,将就看吧... 安装Bind服务程序 BIND(Berkeley Internet Name D ...
- RHEL 5服务篇—部署DNS域名解析服务(一)BIND软件
DNS 系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正向解析和反向解析. 正向解析:根据域名查询IP地址,即将 ...
- DNS解析原理与Bind部署DNS服务
DNS是什么? DNS(Domain Name System,域名系统)是互联网上最核心的带层级的分布式系统,它负责把域名转换为IP地址.反查IP到域名的反向解析以及宣告邮件路由等信息,使得基于域名提 ...
- 通过负载均衡器+域名实现容灾切换-(8)基于DNS解析的GSLB在BS架构中应用实践(转)(2)...
================================================================================================= 摘自 ...
- Centos Linux 下基于bind的智能DNS搭建
智能DNS即是能够根据用户请求过来的IP,进行自动的智能解析,从而把用户请求发送至距离用户最近,响应速度最快的服务器上.相较于普通的DNS,只是解析IP地址,而不去判断用户的来源,这是它的优势所在:目 ...
- 通过负载均衡器+域名实现容灾切换-(8)基于DNS解析的GSLB在BS架构中应用实践(转)(1)...
================================================================================================= 摘自 ...
- DNS浅析-Bind软件的使用及搭建一个简单的DNS缓存服务器
引入DNS软件: Bind:Berkey Information Name Domain 对数据库的支持不太好,不支持多线程 PowerDNS 性能强大 速 度块 Bind软件的配置使用 yum l ...
最新文章
- mysql 集群 备份_mysql cluster集群备份还原
- WindowsPE 第七章 资源表
- Java导入导出CSV文件
- boost::breadth_first_search用法的测试程序
- 文件编码和RandomAccessFile文件流的使用--IO学习笔记(一)
- Android 指纹调试流程(高通、MTK均适用)
- JavaFX 2.0 beta示例应用程序和思考
- c# 溢出抛异常_Rust竟然没有异常处理?
- 英语影视台词---无敌破坏王2大脑互联网(3)((Ralph)我们去喝根汁汽水吧)...
- 网页查看js源码汉字显示乱码问题解决
- 漫谈并发编程(三):共享受限资源
- Linux命令-关机命令详解
- java期中 考试_java期中考试题
- 海康视频监控解决方案
- CentOS7:Ruby安装
- 校园内网服务器维修视频,怎么搭建校园高清视频直播系统
- 8种隔夜食物千万不要吃
- Docker 容器文件拷贝及目录挂载
- AUTOCAD——偏移命令、移动命令
- 杰克 - 鬼马海盗主角加勒比海盗系列的