DNS服务配置
来源:互联网 发布:k线图 知乎 编辑:程序博客网 时间:2024/05/17 03:10
【DNS介绍】
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,DNS服务器将用户方便记忆的网址转化为计算机可以识别的IP地址,这一过程就称为域名解析。DNS协议运行在UDP协议之上,使用端口号53。
通常 Internet 主机域名的一般结构为:主机名.三级域名.二级域名.顶级域名。通常顶级域名又称为根域,目前全球共有13个根服务器,其中10个在美国,另外三个位于英国、瑞典、日本。
域名结构为根域、一级域名、二级域名…….最多可以有127个域名。
一级域名就是我们常见的网址的后缀,即com、cn、edu等等。
DNS查询类型:
递归查询
当一台客户端去访问某个主机时,首先会查询本机的缓存;如本机中没有,则去DNS服务器中去查找,如果DNS服务器没有,则它会去根服务器询问,根服务器又查找到其中某个二级域,依次找下去,直到找到这台主机。在这其中DNS服务器执行的就是递归查询,对客户端的请求负责到底;
迭代查询
上述描述中,根服务器以及其他服务器执行的是迭代查询。
解析类型:
FQDN –> IP (FQDN指完整的合格域名)
将域名解析为ip地址,通常称为正向解析。
IP –> FQDN
将ip地址解析为域名,通常称为反向解析。
DNS服务器类型:
主DNS服务器 (只能有一个)
从DNS服务器 (可以有多个)
缓存DNS服务器(转发器)
主DNS服务器:管理和维护所负责解析的域内解析库的服务器
从DNS服务器:从主服务器或从服务器“复制”(区域传输)解析库副本 (可以对照/var/named/named.localhost文件)
序列号:解析库版本号,主服务器解析库变化时,其序列递增
刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔
重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔
过期时长:从服务器联系不到主服务器时,多久后停止服务
否定答案的缓存时间
“通知”机制:主服务器解析库发生变化时,会主动通知从服务器
有两种方式:一种是当主服务器数据发生变化时,主动告诉从服务器,将数据push给从服务器; 一种是从服务器定期查看主服务器,一旦发现变化,将数据pull回来,一般这种方法增加负载,多采用第一种。
每台DNS服务器都需要有一个资源解析库,用来存放解析记录,该文件中有以下几种记录类型:
SOA:Start Of Authority,起始授权记录;这条记录表明了谁是这条区域的拥有者,即谁可以对这个区域的信息进行修改。一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录。
A:internet Address,作用是将域名解析为ip地址。
AAAA: 将域名解析为IPV6地址。
PTR: 反向解析,即将ip地址解析为域名。
NS: Name Server,专用于标明当前区域的DNS服务器。资源解析库中有一条NS记录,相应的就应该有一条A记录与之对应。
CNAME:Canonical Name,别名记录 (有些著名的域名使用的是别名)
MX: Mail eXchanger,邮件交换器
注意:在DNS服务器的资源解析库中必须要有SOA、A、NS记录。如图:
以上例子中的0表示序列号,当有主从服务器的时候,主服务器的解析库发生变化,会更新序列号,从服务器会根据主服务器的序列号来判断是否更新自己的解析库。1D表示从服务器主动向主服务器查看更新的刷新时间为1天;1H表示如果失败了以后每隔一个小时重新尝试一次;1W表示过期时间;3H表示否定答案的缓存时间。
如果想在虚拟机上实现DNS服务器,需要安装bind包,开启named服务。
【实验】
实验拓扑图:
实验原理:某小区里有一台客户端想要访问www.ali.com的网站,当它发起请求时,客户端会将这条请求发送给小区的DNS服务器。小区的DNS服务器会先检查自己的缓存里有没有这条记录,如果没有,它将跑到根服务器区询问;根服务器收到后表示自己也没有,但是com是根的下级域,然后将com的地址给小区的DNS;小区DNS又跑去com服务器上询问,com表示也没有,但是ali是com的下级域,将ali的地址给了它;它拿着地址又去问ali.com;ali.com表示www是自己的下级域,里面有对应的ip地址;查询到这里,任务完成,小区DNS将地址返回给客户端,客户端成功访问。
实验条件:准备6台不同的主机,分别扮演上述角色,实现客户端访问www.ali.com的目的。
1、配置web server ,这里准备一个网页,客户端可以查看该网页内容则表示实验成功;
2、分别在各个DNS服务器上安装bind,并检查SELinux策略和防火墙是否关闭,否则会影响实验结果;
将每台DNS服务器的named配置文件进行修改:
3、首先将每个DNS服务器的根地址指向我们设定的根服务器
充当根服务器的主机需要以下配置(172.17.253.88):
vim /etc/named.conf
touch /var/named/root.zone
vim /var/named/root.zone
在根服务器上将com域委派给172.17.253.60主机,
4、配置.com域(172.17.253.60):
vim /etc/named.rfc1912.zones
将.ali域委派给172.17.253.55主机,
vim /var/named/com.zone
5、配置.ali域(172.17.253.55)
vim /etc/named.rfc1912.zones
vim /var/named/ali.com.zone
6、在ali域上直接指定了www.ali.com主机的地址,这时可以先来在客户端上测试一下是否可以解析出正确的地址,使用dig命令:
7、实验完成。
【反向解析】
除了正向解析库,还有反向解析库,即将IP地址解析为域名:
vim /etc/named.rfc1912.zones
vim ali.com.ptr
【智能DNS】
bind有四个内置的acl:
none: 没有一个主机
any: 任意主机
localhost: 本机
localnet: 本机的IP同掩码运算后得到的网络地址
注意:只能先定义,后使用;因此一般定义在配置文件中,处于options的前面
bind view
view:视图,一个bind服务器可定义多个view,每个view中可定义一个或多个zone;每个view用来匹配一组客户端
多个view内可能需要对同一个区域进行解析,但使用不同的区域解析库文件
注意:
(1) 一旦启用了view,所有的zone都只能定义在view中
(2) 仅在允许递归请求的客户端所在view中定义根区域
(3) 客户端请求到达时,是自上而下检查每个view所服务的客户端列表,一旦满足一条,下面的将不再检查。
简单的来说,智能DNS实现的将访问地址根据定义的acl分为不同的类,每个类返回不同的解析地址,这样做的效率提高了访问效率而且不会浪费带宽。比如说,北京的ip域是192.168.216.0/24,上海的IP域是172.17.251.0/16,这样当DNS服务器收到192.168.216.0/24地址访问时,就返回一个1.1.1.1的地址;收到172.17.251.0/16访问时收到2.2.2.2的地址;分类管理效率更高。
【实验】智能DNS实现
1、vim /etc/named.conf
2、vim ali.com.henan
3、vim ali.com.shanghai
4、测试
阅读全文
0 0
- 如何配置dns服务
- DNS 服务基本配置
- Kubernetes DNS服务配置
- DNS服务配置
- Linux配置DNS服务
- bind DNS服务配置
- DNS服务配置
- solaris 10 DNS服务配置
- Server2003 DNS服务配置篇
- linux下DNS服务配置
- linux DNS服务配置 [笔记]
- Server2003 DNS服务配置篇
- Linux下配置DNS服务
- Dns服务的简单配置
- DNS服务简介和配置
- Linux之DNS服务配置
- linux服务配置之DNS
- linux服务配置之DNS服务
- 最小二乘法C实现
- 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)
- ConfigReader(十五)—— ReadGuideKillHeroTaskConfig
- Java项目练习之答答租车系统
- libevent源码学习----io多路复用的封装和使用
- DNS服务配置
- linux内核内存管理学习之三(slab分配器)
- NATS核心技术基本介绍
- 36个Android开发常用代码片段
- 字符编码详解
- Python自然语言处理-自然语言工具包(NLTK)
- java服务器连接mysql数据库
- android 生命周期理解
- RDC如何构建一个基于NodeJS的前后端项目