Linux DNS原理简介及配置
Linux DNS原理简介及配置
- DNS简介
- DNS原理
- 域名解析的过程
- 资源记录
- DNS BIND安装配置
一、简介
一般来讲域名比IP地址更加的有含义、也更容易记住,所以通常用户更习惯输入域名来访问网络中的资源,但是计算机主机在互联网中只能通过IP识别对方主机,那么就需要DNS域名解析服务了。
域名:www.baidu.com(也叫做FQDN:Full Qualified Domain Name, 完全限定域名,同时带有主机名和域名的名称)
通常 Internet 主机域名的一般结构为:主机名.三级域名.二级域名.顶级域名。
TLD(top level domain)
组织域:.com, .org, .net, .cc
国家域: .cn, .tw, .hk, .iq, .ir, .jp
反向域: IP-->FQDN 将IP地址转换成主机名,早期只能正向解析,后来引入了一个机制。指针;但是从IP转换成FQDN是另外一套数据库。
DNS服务协议采用类似目录树的层次结构记录域名与IP地址的映射对应关系,形成一个分布式的数据库系统,上级仅知道其直接下级,下级只知道根的位置。结构模型:

DNS域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析:
正向解析:根据主机名(域名)查找对应的IP地址。
反向解析:根据IP地址查找对应的主机名(域名)。
二、原理
Linux下nsswitch(network service switch)是一个通用框架,与各种类型存储交互的公共实现,实现名称解析服务。其中有库文件,libnss_files.so库文件就是实现查找文件时, 其应该调用的文件。其展现的就是一个配置文件,/etc/nssitch.conf,此配置文件中

这个files就是通过libnss_files来查找/etc/hosts
hosts可通过两种方式来查找: files dns
file: /etc/hosts配置文件
dns: DNS服务器
系统中stub resolver:名称解析器,根据配置文件来查找对应的ip地址。
ping www.itodo.com此过程就是先查找本地/etc/hosts文件,如果没有再查找dns服务器。
hosts格式:
IPADDR FQDN Ailases
192.168.100.1 www.ss.com www
三、域名解析的过程
当应用过程需要将一个主机域名映射为IP地址时,就调用域名解析函数,解析函数将待转换的域名放在DNS请求中,以UDP报文方式发给本地域名服务器。本地的域名服务器查到域名后,将对应的IP地址放在应答报文中返回。

dns查询:
递归查询:主机向本地域名服务器的查询一般都是采用递归查询,只发出一次请求。
迭代查询:本地域名服务器向根域名服务器的查询的迭代查询,发出多次请求。

以上简单理解来说,主机1访问主机2的域名a.zz.com,首先向本机域名服务器发起请求主机2的ip,本机没有,向根域名服务器查询,根返回消息说顶级域名服务器那里知道,本机又向顶级域名服务器查询,顶级域名服务器又返回消息说二级域名服务器那里有答案,本机又向二级域名查询,最后经过本机域名服务器的缓存之后,返回主机2的域名对应的ip地址。
四、资源记录
数据库中的每一个条目称作一个资源记录(Resource Record,RR)
资源记录的格式:
$TTL 600;
NAME [TTL] IN RRT VALUE
www.ss.com IN A 1.1.1.1
1.1.1.1 IN PTR www.ss.com
资源记录类型(RRT):
SOA(start of authority)
ZONE_NAME TTL IN SOA FQDN ADMINISTRATOR_MAILBOX(
serial number 版本号
refresh 刷新时间
retry 重试时间
expire 过期时间
na ttl ) 否定答案的ttl
时间单位:M(分钟)、H(小时)、D(天)、W(周),默认单位是秒
邮箱格式:admin@ss.com -写为-> admin.ss.com
@:也就是ZONE_NAME
NS(Name Server): ZONE_NAME --> FQDN
magedu.com. 600 IN NS ns1.magedu.com.
ns1.magedu.com. 600 IN A 1.1.1.2
MX(Mail eXchanger): ZONE_NAME --> FQDN
ZONE NAME TTL IN MX pri VALUE
优先级:0-99,数字越小级别越高
magedu.com. 600 IN MX 10 mail.magedu.com.
mail.magedu.com. 600 IN A 1.1.1.3
A(address): FQDN-->IPv4
AAAA:FQDN-->IPv6
PTR(pointer):IP-->FQDN
CNAME(Canonical NAME): FQDN-->FQDN
www2.magedu.com. IN CNAME www.magedu.com.
TXT:文本字符串
DNS区域:
正向区域文件
magedu.com. IN SOA
www.maged.com. IN A 192.168.0.1
简写为:
www IN A 192.168.0.1
反向区域文件
0.168.192.in-addr.arpa. IN SOA
1.0.168.192.in-addr.arpa. IN PTR www.magedu.com.
简写为:
1 IN PTR www.magedu.com.
区域传送
区域传送的类型:
完全区域传送: axfr
增量区域传送:ixfr
区域类型:
主区域:master
从区域:slave
提示区域:hint
转发区域:forward
五、DNS BIND安装配置
DNS所用的最常用软件为BIND
bind:

/etc/named.conf
BIND进程的工作属性
区域的定义
/etc/rndc.key
rndc: Remote Name Domain Controller
密钥文件
配置信息:/etc/rndc.conf
/var/named/
区域数据文件
bind-chroot:为了提高系统安全新,把系统中的一个子目录作为bind运行时的目录。
默认:named
用户:named
组:named
/var/named/chroot/
etc/named.conf
etc/rdnc.key
sbin/named
var/named/
安装配置:
yum -y install bind bind-utils bind-chroot
rpm –qa | grep "^bind"
listen-on port 53 { any; };

在/var/named目录下添加正向解析文件named.yan和反向解析文件named.222


named-checkconf
named-checkzone "区域名" 区域文件路径


systemctl start named
正向解析测试:

反向解析测试:

至此简单的配置完毕。
Linux DNS原理简介及配置的更多相关文章
- Nginx 反向代理工作原理简介与配置详解
Nginx反向代理工作原理简介与配置详解 by:授客 QQ:1033553122 测试环境 CentOS 6.5-x86_64 nginx-1.10.0 下载地址:http://nginx. ...
- DNS原理及实战配置指南
目录 DNS简介 DNS域名结构介绍 顶级域名 DNS工作原理 工作模式和端口 资源记录 安装bind(详细) 实战:配置一个正反向解析 实战:配置DNS转发 实战:配置DNS主从 实战:子域授权 实 ...
- 运维DNS原理配置
Linux DNS原理简介及配置 DNS简介 DNS原理 域名解析的过程 资源记录 DNS BIND安装配置 一.简介 一般来讲域名比IP地址更加的有含义.也更容易记住,所以通常用户更习惯输入域名来访 ...
- Linux系统下搭建DNS服务器——DNS原理总结
2017-01-07 整理 DNS原理 域名到IP地址的解析过程 IP地址到域名的反向域名解析过程 抓包分析DNS报文和具体解析过程 DNS服务器搭建和配置 这个东东也是今年博主参见校招的时候被很多公 ...
- Linux DNS 服务器安装、配置和维护
每个 IP 地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开.有了主机名,就不要死记硬背每台 IP 设备的 IP 地址,只要记住相对直观有意义的主机名就行了.这就是 DNS ...
- Linux SSH基于密钥交换的自动登陆原理简介及配置说明
一.原理简介 SSH证书认证登录的基础是一对唯一匹配密钥: 私钥(private key)和公钥(public key).公钥用于对数据进行加密,而且只能用于加密.而私钥只能对使用所匹配的公钥,所加密 ...
- Linux防火墙简介 – iptables配置策略
Linux防火墙简介 – iptables配置策略 Netfilter/iptables简介 要想真正掌握Linux防火墙体系,首先要搞清楚Netfilter和iptables的关系,Netfilte ...
- 关于dns服务工作的原理,和配置的细节理解。
dns服务器相关 1,dns原理,也就是迭代,和递归查询.将域名解析为ip的过程. 一次完整的查询请求经过的流程: Client -->hosts文件 -->DNS Service Loc ...
- Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装
原文:Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装 Linux内核分析(一) 从本篇博文开始我将对linux内核进行学习和分析,整个过程必将十分艰辛,但我会坚持到底 ...
随机推荐
- jQuery动画切换引擎插件Velocity.js
Velocity.js 官网 Velocity.js实现弹出式相框 慕课网 极棒的jquery动画切换引擎插件Velocity.js jQ库 (function($){ // 普通调用 /*$('#d ...
- blfs(systemv版本)学习笔记-配置远程访问和管理lfs系统
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 要实现远程管理和配置lfs系统需要配置以下软件包: 前几页章节脚本的配置:https://www.cnblogs.com/ren ...
- canvas实现验证码
在通常的登录界面我们都可以看到验证码,验证码的作用是检测是不是人在操作,防止机器等非人操作,防止数据库被轻而易举的攻破. 验证码一般用PHP和java等后端语言编写. 但是在前端,用canva或者SV ...
- getRealPath函数编译报错问题
ServletActionContext.getRequest().getRealPath("");函数虽然已被淘汰,但在获取服务器绝对路径时仍有使用.关于 ServletActi ...
- JavaScript非数字(中文)排序
直接上代码: var arr=[ {name:"张散步",age:"23",sports:"篮球",number:"231123& ...
- Java并发编程(六)volatile关键字解析
由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识. 一.内存模型的相关概念 Java内存模型规定所有的变量都是存在 ...
- Android--判断是否连接成功了指定wifi
最近在做wifi的相关的东西,打印WifiInfo的时候 无意间发现一个参数,改参数可以查看是否连接成功了指定wifi,但是这是隐藏的,遂将其反射之.代码如下: //通过反射的方式去判断wifi是否已 ...
- ListView实现下拉动态渲染数据
欢迎讨论欢迎一起学习:微信jkxx123321 这是一篇关于LIstView实现动态数据渲染的文章![RN] 首先我们讲讲数据是如何来规划的 一般情况下我们有两种规划方案前提比如我们数据是100条+ ...
- 关注的Elasticsearch大牛博客
1.http://wangnan.tech/ 2.https://elasticsearch.cn/people/wood 3.https://www.jianshu.com/u/244399b1d7 ...
- Chrome_浏览器开发人员工具
Google Chrome 浏览器开发人员工具,让网页开发变得更轻松 无论是 IE 6/7 的 Internet Explorer Developer Toolbar 或者是 IE 8 自带的 Dev ...