运维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
正向解析测试:

反向解析测试:

运维DNS原理配置的更多相关文章
- nginx基本运维及常用配置
nginx基本运维及常用配置 ========================================================== 基本运维 nginx 的启动 nginx -c /p ...
- Python自动化运维——DNS处理模块
Infi-chu: http://www.cnblogs.com/Infi-chu/ 模块:dnspython 功能: 支持所有的记录类型 可以用于查询.传输并动态更新ZONE信息 支持TSIG(事务 ...
- 菜鸟运维笔记:配置Apache二级域名及WWW訪问
事实上www訪问也能够理解为二级域名的一种. 域名 比方.com..org..edu..gov..info..net等等都是一级域名,或称顶级域名. 其详细格式是 *.顶级域名,比方csdn.net. ...
- linux运维之路配置网络
前言裸机上装操作系统,想和物理机通信需要设置IP 开机以后: 第一步:setup命令 ——> NetWork configguation ---->Device configurat ...
- HBase运维基础--元数据逆向修复原理
背景 鉴于上次一篇文章——“云HBase小组成功抢救某公司自建HBase集群,挽救30+T数据”的读者反馈,对HBase的逆向工程比较感兴趣,并咨询如何使用相应工具进行运维等等.总的来说,就是想更深层 ...
- 更优雅的配置:docker/运维/业务中的环境变量
目录 docker-compose 环境变量 .env 文件 env_file docker stack 不支持基于文件的环境变量 envsubst envsubst.py 1. 使用行内键值对 2. ...
- python自动化运维篇
1-1 Python运维-课程简介及基础 1-2 Python运维-自动化运维脚本编写 2-1 Python自动化运维-Ansible教程-Ansible介绍 2-2 Python自动化运维-Ansi ...
- MySQL服务器的运维与优化
MySQL运维 安装数据库 配置本地yum源,将gpmall-repo文件上传至/opt目录 创建yum.repo文件 安装mariadb服务 # yum install -y mariadb mar ...
- Linux运维实战之DNS(bind)服务器的安装与配置
转自http://sweetpotato.blog.51cto.com/533893/1598225 上次博文我们讨论了DNS的基础,本次博文我们重点来看看如何配置一台DNS服务器. [本次博文的主要 ...
随机推荐
- C++入门经典-例2.7-控制cout打印格式程序
1:代码如下: // 2.7.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #incl ...
- python3笔记五:while语句
一:学习内容 while语句 while-else语句 while语句练习 二:while语句 1. 格式 while 表达式: 语句 2.逻辑 当程序执行到while语句时,首先计算表达式的值 ...
- 191112Django fbv和cbv
cbv:类.base.view fbc:函数.base.view from django.contrib import admin from django.urls import path from ...
- javascript模块化之CommonJS、AMD、CMD、UMD、ES6
javascript模块化之CommonJS.AMD.CMD.UMD.ES6 一.总结 一句话总结: CommonJS是同步加载模块,用在服务端:AMD是异步加载模块,用于浏览器端 1.为什么服务器端 ...
- defineProperty和defineProperties介绍
v-model 实现的原理 angular 是 mvc 的实现原理,ng-model 是靠脏值检测实现的 脏值检测:for 循环一个个对比 vue 靠的是数据劫持 和 发布者,订阅者模式 数据劫持:O ...
- spark 笔记 15: ShuffleManager,shuffle map两端的stage/task的桥梁
无论是Hadoop还是spark,shuffle操作都是决定其性能的重要因素.在不能减少shuffle的情况下,使用一个好的shuffle管理器也是优化性能的重要手段. ShuffleManager的 ...
- FusionCharts的属性
FusionCharts 的 XML标签属性有一下四种数据类型 * Boolean - 布尔类型,只能为1或者0.例如:<graph showNames='1′ > * Number - ...
- c# 单元测试 ,对静态方法(static)和私有方法(private) 进行单元测试
利用反射: /// <summary> /// 调用静态方法 /// </summary>akf /// <param name="t">类全名 ...
- APP测试流程梳理
APP测试流程梳理 1 APP测试基本流程 1.1流程图 1.2测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试 ...
- 取长文本 READ_TEXT
****取长文本 FORM GET_TEXT USING TDID TDNAME. SELECT SINGLE mandt tdobject tdname tdid tdspras INTO ...