bind详解,主从DNS

假如我们希望我们的网站,比如www.lee.com被别人通过域名访问到,那么我们需要向代理商注册---国内有万网,新网,国外有狗爹等,代理商会帮助你向根域注册,如果你的网站访问量很小,代理商会从他们自己公司的服务器里挑一台通过虚拟主机帮你解析(赚你的钱)。如果你希望通过自己公司里的DNS服务器去解析,那么需要在代理商提供给我们的主机页面后台修改DNS指向到我们自己的DNS服务器,就是NS记录和A记录。根域告知我们.com的位置(根域服务器通过子域授权认证了.com服务器),我们需要让.com的服务器通过子域授权到代理商的DNS服务器

linux上DNS的实现是依靠bind这个软件,但是这个软件的进程名叫named

我们需要的包是bind,bind-libs和bindutils

bind-utils为我们提供了一些测试工具,比如dig,nslookup,host命令

bind还提供了安全包,bind-chroot,安装了bind-chroot的话bind会把dns服务圈禁在/var/named/chroot目录下,即使黑客攻破了dns,也不会影响到真正的系统,因为dns的根目录被从我们系统的根目录上剥离开来了

安装bind后生成的配置文件:

服务脚本:/etc/rc.d/init.d/named

主配置文件:/etc/named.conf,/etc/named.rfc1912.zones,/etc/rndc.key

rndc:默认与bind安装在同一主机,且只能通过127.0.0.1来连接named进程,提供辅助性管理功能,使用tcp953号端口

解析库文件:/var/named/目录下的.zone文件(通常命名方式),保存本地的区域文件----一台dns服务器能为多个区域解析,所以zone文件会有多个,这个目录下应该有根区域文件,也就是上图中的named.ca了,本地的正反解文件就是named.localhost和named.loopback

接下来我们配置主从DNS服务器,从服务器会向主服务器请求同步数据,达到了分摊负载功能

配置文件大括号两边应该有空格

192.168.3.132-----主DNS服务器的named.conf文件配置

option下:

listen-on指定了监听在哪个地址的哪个端口上

directory指定了dns服务器工作目录,也就是zone文件放置的位置

allow-query指定那些网段的主机可以通过本DNS服务器查询解析

recursion指定是否允许为非本dns域内管理的主机到本dns服务器查询时是否为他们递归到根节点查询

logging下:

指定日志文件存放位置

severity指定安全日志级别

zone下:

type指定dns服务器类型,这里是主dns服务器

file:指定zone文件存放位置

allow-transfer:指定主从同步时传送zone文件给那些主机(在主dns服务器上配置此条)

masters:指定主从复制时主dns服务器在哪(在从dns服务器上配置此条)

正解zone文件:/var/named/magedu/magedu.zone

如果使用泛域名解析:(泛域名解析等理论部分请查看上一篇博客)---简单说就是用户输入错误域名我们帮助用户重定向到某一网页,主机

上面的zone文件没有添加从DNS的NS记录,和A记录,所以当主dns重启时,默认不会通知从DNS来更新自己的数据,所以合规的做法是:

反解zone文件:/var/named/magedu/100.16.172.arpa

192.168.3.132----从DNS服务器named.conf配置

重启后查看53号端口被DNS监听了:

查看从DNS服务器/var/named/slaves目录下发现同步成功:

查看日志发现提示了主从复制成功:

我们来测试一下:

正解:dig -t指定正解时资源记录类型,@后面指定用哪个dns服务器解析。dig不会查询hosts文件,直接查询dns服务器

反解:用-x选项

dig命令其他用法请看man手册,这里举一个例子:+trace跟踪路由

模拟区域全量传送:正向:

反向:

使用host命令查询

使用nslookup查询:

有两个命令可以用来检查name.conf文件和zone文件的语法有没有错误

使用rndc命令可以查看dns服务器状态信息:使用rndc reload可以实现不重启named服务读取配置文件,修改了zone文件后可以使用这个命令生效,不用重启。

注意:/var/named目录权限为640,下面的文件为了安全也应该把权限改为640,自己创建的zone文件默认属主是root,应该把属主和属组拥有者改成named用户,放置named服务因为没权限无法读取zone文件。

提醒:主从服务器时间应该同步,并且bind版本最好保持一致!

时间: 2024-10-19 04:31:17

bind详解,主从DNS的相关文章

【详解】DNS服务工作原理、正反向解析和主从同步

目录: 一.理论部分 二.实验部分 ******************************理论部分*************************************** 正文: 一.什么是DNS服务. DNS服务是互联网的基础性服务之一.全称为Domain Name System(域名系统).DNS是因特网上作为域名和IP地址相互映射的一个分布式数据库,提供将域名转换成对应IP地址的信息条目,能够使用户更方便的通过域名(如baidu.com)去访问互联网,而不用去记住能够被机器直接

DNS and Bind详解

DNS 域名系统(英文:Domain Name System,缩写:DNS)是因特网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网.DNS使用TCP和UDP端口53. 是一个域名服务,应用层协议. 原理篇 DNS组成 根域(.) 顶级域(.com, .net, .org, .gov, .edu, .mil,.ac) 二级域(baidu.com,google.com ... ...) 以前需要输入www.baidu.com. 才能解析,现在智能dns解析可

Linux DNS之bind详解

BIND: Berkeley Internet Name Domain 目前由ISC进行维护.DHCP也是其维护. 安装: 注意:默认情况下,安装好BIND后,默认配置为缓存DNS,然后才配置为住DNS及从DNS服务器. 1.使用rpm包安装: 所需rpm包: bind97- libs 库文件包 utils 工具包 devel 包含头文件和库文件的开发包 chroot 将根临时切换到其他目录 caching-nameserver 通过提供配置文件,让BIND服务器成为缓存DNS服务器.新版本中已

DNS详解及DNS主从配置

DNS 全称domain name system域名系统的缩写,它是一种将IP地址转换成对应的主机名或者将主机名转换成对应的IP的一种服务机制.其中通过域名解析出IP叫做正向解析,通过IP解析出域名叫做反向解析.DNS使用TCP和UDP协议,端口号都是53,但它主要使用UDP,服务器之间备份使用TCP.全世界只有13台"根"服务器,一个主根服务器放在美国,其他12台为辅根服务器,DNS服务器根据角色可分为:主DNS,从DNS,缓存DNS服务器,DNS转发服务器. 首先来看看域名的结构组

DNS及bind详解

三台测试服务器:mail.www.dns mail,192.168.1.29 www , 192.168.1.28 dns , 192.168.1.27 pop --> mail ftp --> www 1.安装bind yum install bind 2.把原配置文件打成bak [[email protected] ~]# mv /etc/named.conf /etc/named.conf.bak 3.重新建主配置文件named.conf [[email protected] ~]# v

boost::bind 详解

使用 boost::bind是标准库函数std::bind1st和std::bind2nd的一种泛化形式.其可以支持函数对象.函数.函数指针.成员函数指针,并且绑定任意参数到某个指定值上或者将输入参数传入任意位置. 1. 通过functions和function pointers使用bind 给定如下函数: 1 int f(int a, int b) 2 { 3 return a + b; 4 } 5 6 int g(int a, int b, int c) 7 { 8 return a + b

CDN 技术详解(DNS,GSLB,Cache)

CDN 是什么 CDN(Content Delivery Network,内容分发网络),即全网内容加速服务.为了尽可能的避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定,由此,诞生了 CDN 加速服务. CDN 的作用 利用遍布全球(全国,或企业自行规划的各大城市及区域)的加速节点,帮助企业将业务内容发布至最接近用户的边缘节点,使用户的请求能够就近得到快速响应,无需进行多次网络转发,避免请求受地域.带宽.服务器能力等因素影响导致的高延迟.低可用性等问题. 网站的

原生JS:Function对象(apply、call、bind)详解

Function对象(apply.call.bind) 本文参考MDN做的详细整理,方便大家参考[MDN](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript) Function 构造器会创建一个新的 Function 对象. 在 JavaScript 中每个函数都是一个Function对象. 构造器 new Function ([arg1[, arg2[, ...argN]],] functionBody) arg1, arg2, .

bind 详解

请看我的有道云笔记: http://note.youdao.com/noteshare?id=eaf4194473cf4294776fbc263ffe6b89&sub=5CB214C594E041FAAFFDB7EEF0421889