基本DNS服务器的配置
来源:互联网 发布:python数据可视化编程 编辑:程序博客网 时间:2024/06/02 07:53
DNS:域名解析服务
一种协议工作在应用层
同时监听TCP和UDP 53 号端口
udp 响应查询请求
tcp 响应辅助域名服务器实现请求辖区数据同步
主机上的文件 /etc/hosts 也能提供解析
常识我们知道:要记住一个人的特征是记住这个人的名字对应于相应的面孔而不是记身份证号码
所以就产生了通过名称或简单字符访问主机基于名称或字符串实现
最初开始是在/etc/hosts 实现 每个主机对应于一个hosts 文件、一个ip对应于一个hosts文件
但是当网络规格扩展到很大的时候这个文件系统就变得庞大无比,文件不定期的增长 管理非常麻烦
国际名称地址分配机构 负责每个地址的名称分配 所有信息都要注册在这里
专门用一个服务器做成一个FTP 服务器 每一个主机都要使用名称 同时也为了主机名称的统一标准
通过FTP hosts 国际名称地址分配机构又划分了许多的子机构 管理自己所属区域内的地址解析
花钱注册名称(域名),所有客户端,所有用户的请求信息都要注册在国际名称分配机构这里 维护人员定期的查看如果有一个用户更新了把相关信息和IP地址的对应关系 通 过FTP服务器上的HOSTS文件共享出去 任何一个服务器的管理员 只要写一个周期性的脚本计划 定期到 FTP 上更新下载覆盖到本地 就可以实现 实时更新本地/etc/hosts 文件
后来 WWW 的发展 主机越来越多 催生了DNS协议 对hosts文件的一种扩展 HOSTS文件的解析功能分片 名称解析库 做一个客户端软件 一个名称解析库 应用程序调用本地这 个库 查询结果返回
最终风化成了层次性的分布式的结构 分片管理
DNS自上而下形成一颗倒置树状结构:
结构特征: 层次结构都是上层知道下层在哪儿 而下层不知道上层的结构
. //最上层 . 顶级域名 文件系统中称根
.com .net .... //组织域 国家域
.ibm.com
e.g. www.ibm.com. //最后一个点我们基本没用过
注册的都是二级域名 层次结构
DNS 查询类型:
递归查询 recursive Client->A->B->C
只发出一次请求 必须要知道答案
e.g. A 要知道B 的地址在哪儿,但A 不知道B在哪儿 于是问C
C知道了B的地址在哪儿并在C取得了答案在反馈给A
迭代查询 发送请求 后要A 去查询另一个
e.g. A 要知道B 的地址在哪儿,但A 不知道B在哪儿 于是问C
C知道了B的地址在哪儿,然后由A自己查找到所要找的信息
↑ ↓
Client --->
↓ ↑ <---
互联网上运用 分两段式查询:
客户端 DNS 给本地提供服务递归 也只给本地递归,服务器本身迭代查找
HOSTNAME--> IP 正向解析
IP-->HOSTNAME 反向解析
默认情况下: 只要安装DNS服务器 就要告诉服务器顶级域名位置
DNS查找解析 先把信息发送给本地服务器 本地服务器直接发给顶级域名 顶级域名再迭代查找
所以说前半段递归 ,下半段迭代查找
特点:
查找不能越级指挥
查找必须迭代查询
e.g. 3a.com 域名 授权的过程 3a 获得上级的授权后可以管理里面所有的主机包 括自己的名称
-------------------------------------------------------------------------------------
记录类型 标识
DNS是一个数据库 查找数据库 查找对应的地址返回 一个地址对应于一个主机
一个库 实现的解析方法不同
常见的记录类型:
FQDN--> IPA
IP --> FQDN Pointer 指针记录
DOMAIN-->SERVER: NS Name Server 名称服务记录
DOMAIN --> MTA MX (Mail eXchange) 标识一个域的邮件服务器
别名 --> Jerry: CNAME 正式名
用于表明起始域 SOA(start or Authority) 起始授权记录
DNS 服务器类型:
为了保证服务的可用性 可对应于多个副DNS域名服务
创建和删除只有主服务器才有权限
副服务器每隔一段时间区域传送一次
区域传送:
axfr : 完全区域传送
infr 增量区域传送
主服务器--辅助名称服务器
为了保证信息的解析传输安全同步除了一个主服务器外还增加了一个辅助服务器
主服务器 文件发生改动时 notification 通知辅助服务器开始同步了
什么是域 、区域?
两种不同关系的概念:
一个域包含一个正向区域和一个反向区域
正向需要一个单独的数据库文件,反向也需要一个单独的数据文件
域是逻辑概念 区域是物理概念
定义域就是定义一个倒置树节点 定义区域就是定义一个文件
缓存名称服务器
节约带宽 加速
转发器 把用户的请求转发出去 实现内外两台防火墙DNS之间的交互
-----------------------------------------------------------------------
查询流程 : 从客户端应用角度看
e.g. www.a.org
1. 查找 /etc/hosts
2. dns cache 非权威解析 不是自己所负责的域
3. server 权威解析 authoritive 查找本地的DNS进程并返回 本服务器解析的域
靠本地的库文件自动解析 共享库解析
stub reslver 最根本的名称解析 包括host
==========================================================================
BIND: Berkely Internet Name Domain
www.isc.org // 运维网站
命令:
yum list all bind* 查看bind所有软件包
用rpm 包安装不要装 chroot
只需要装 bind i386
yum list all cach*
配置默认的缓存
解析记录
name [ttl] IN RECORD_TYPE value //缓存的有效期限 变化频繁 ttl 修订短
越短服务器压力越大 最起码10分钟
第一条记录,类型为 SOA ,对于一个数据文件来讲 SOA 只能有一个
www.a.org 86400 IN A 1.1.1.1
1.1.1.1 86400 IN PTR www.a.org
------------------------------------------------------------------ --
DNS 是协议
bind 是软件,进程名叫named 所以配置名叫做named.conf
bind软件 默认配置文件位置
1. /etc/name.conf
全局选项段 : 全服务器有效
options {
version "hello";
};
局部生效
zone "a.org" IN {
};
2. /etc/rndc.conf
/etc/rndc.key bind 远程管理辅助工具
定义区域与全局选项
数据文件位置:
/var/named
named.ca // 定义根的位置
dig -t NS . //查看全球13个根目录 前提是要能上互联网
从a.root-servers.net. -- m.root-servers.net. 一共13个
Include 包含主配置文件
通常每一个域内都有两个文件 负责正向和反向解析
至少需要3个域 可以向互联网发起查询请求
1 根
2 localhost
3 反向解析
=====================================================================
* 从头开始建立:
*
* vim /etc/named.conf
* options {
* directory "/var/named"; //定义工作目录
* };
*
* zone "." IN {
* type hint;
* file "named,ca"; 默认路径
* };
* zone "localhost" IN {
* type master;
* file "localhost.zone";
* };
* zone "0.0.127.in-addr.arpa" IN{
* type master;
* file "named.local";
* };
*
*
* chown :named /etc/named.conf
*
* -------------------------------------------------------------------------
* 正向解析:localhost.zone
* cd /var/named/
* vim localhost.zone
*
* $TTL 86400
* @ 600 IN SOA localhost. admin.localhost. (
* 2011081601 // 序列号
* 1H // w d 默认s 刷新时间
* 10M // 重置时间
* 7D // 过期时间
* 1D ) // 否定答案的ttl值
* IN NS localhost.
* localhost. IN A 127.0.0.1
*
* -------------------------------------------------------------------------------------------------------------------------------------
* 反向解析:named.local
* cp localhost.zone named.local
* vim named.local
*
* $TTL 86400
* @600 INSOA localhost.admin.localhost. (
* 2011081601
* 1H
* 10M
* 7D
* 1D )
* IN NSlocalhost.
* 1 IN PTR localhost.
* --------------------------------------------------------------------------------------------------------------------------------------
* 根服务器:named.ca
* dig -t NS . @a.root-servers.net > /var/named.ca
*
*
=========================================================================
DEBUG:
检查区域主配置文件的语法错误: 不检查逻辑错误
named-checkconf
检查区域错误: //先说明哪个区域在说明对应的文件是什么
named-checkzone "localhost" /var/named/localhost.zone
service named start //启动服务
netstat -tunlp | grep :53 //查看端口53 的状态
现在可以作为一个缓存名称服务器
vim /etc/resolv.conf
nameserver 127.0.0.1
dig -t A www.baidu.com
OK 一个缓存名称服务器已经建立起来了
==============================================================================
如何做一个DNS服务器
net.cn
万网注册了一个域名a.org
第一步:去万网管理后台建两个记录
调整DNS 服务器地址 换成自己名字地址
两条DNS 服务地址/主机改成 ns1.a.org ns2.a.org
保证有A 记录
假如有两台服务器:
ns1.a.org 主服务器 100.1
ns2.a.org 从服务器 100.2
怎么让 172.16.100.1 去解析一个域的所有的主机相关联的记录?
ns1.a.org
ns2.a.org
www.a.org
ftp.a.org
bbs.a.org www
-------------------------------------------------------------------------------------------------------------------------------------
* vim /ect/name.conf
* 加上下面一段:
* zone "a.org" IN {
* type master;
* file "a.org.zone";
* };
*
* named-checkconf
---------------------------------------------------------------------------------------------------------------------------------------
*
* cd /var/named/
* vim a.org.zone
*
* $TTL 1200
* @ IN SOA ns1.a.org admin.a.org. (
* 2011081601
* 1H
* 10M
* 7D
* 1D )
* IN NS ns1.a.org.
* IN NS ns2.a.org.
* IN MX 10 mail.a.org.
* ns1.a.org. IN A 172.16.100.1
* ns2.a.org. IN A 172.16.100.2
* mail.a.org. IN A 172.16.100.1
* www.a.org. IN A 172.16.100.3
* bbs.a.org. IN CNAME www.a.org.
* ftp.a.org. IN A 172.16.100.100
------------------------------------------------------------------------------------------------------------------------------
要生效 改属组
chown :named a.org.zone
service named reload
-------------------------------------------------------------------------------------------------------------------------------
CMD 测试
debug:
nslookup
server 172.16.100.1
set q=A
www.a.org
set q=NS
a.org
set q=SOA
a.org
cat a.org.zone
linux debug: 两个客户端测试
host -t NS a.org
host -t A bbs.a.org
dig -t A www.a.org
flages qr aa rd ra
响应 权威答案
dig -t CNAME
dig -t axfr a.org 完全区域传送 把记录全部拿过来 使用TCP53号端口传输
------------------------------------------------------------------------------------------------------------------------
反向解析:172.16.zone
vim /etc/named.conf
添加如下:
zone "16.172.in-addr.arpa" IN{
type master;
file "172.16.zone";
};
------------------------------------------------------------------------------------------------------------------------
cd /var/named/
vim 172.16.zone
cp a.org.zone 172.16.zone
vim !$
$TTL 1200
@ IN SOA ns1.a.org admin.a.org. (
2011081601
1H
10M
7D
1D )
IN NS ns1.a.org.
1.100 INPTR mail.a.org.
3.100 IN PTR www.a.org.
100.100 INPTR ftp.a.org.
---------------------------------------------------------------------------------------------------------
检查语法错误 :
named-checkzone "16.172.in-addr.arpa" /var/named/172.16.zone
service named restart
OK! 一个完整的DNS服务器就建立好了
一种协议工作在应用层
同时监听TCP和UDP 53 号端口
udp 响应查询请求
tcp 响应辅助域名服务器实现请求辖区数据同步
主机上的文件 /etc/hosts 也能提供解析
常识我们知道:要记住一个人的特征是记住这个人的名字对应于相应的面孔而不是记身份证号码
所以就产生了通过名称或简单字符访问主机基于名称或字符串实现
最初开始是在/etc/hosts 实现 每个主机对应于一个hosts 文件、一个ip对应于一个hosts文件
但是当网络规格扩展到很大的时候这个文件系统就变得庞大无比,文件不定期的增长 管理非常麻烦
国际名称地址分配机构 负责每个地址的名称分配 所有信息都要注册在这里
专门用一个服务器做成一个FTP 服务器 每一个主机都要使用名称 同时也为了主机名称的统一标准
通过FTP hosts 国际名称地址分配机构又划分了许多的子机构 管理自己所属区域内的地址解析
花钱注册名称(域名),所有客户端,所有用户的请求信息都要注册在国际名称分配机构这里 维护人员定期的查看如果有一个用户更新了把相关信息和IP地址的对应关系 通 过FTP服务器上的HOSTS文件共享出去 任何一个服务器的管理员 只要写一个周期性的脚本计划 定期到 FTP 上更新下载覆盖到本地 就可以实现 实时更新本地/etc/hosts 文件
后来 WWW 的发展 主机越来越多 催生了DNS协议 对hosts文件的一种扩展 HOSTS文件的解析功能分片 名称解析库 做一个客户端软件 一个名称解析库 应用程序调用本地这 个库 查询结果返回
最终风化成了层次性的分布式的结构 分片管理
DNS自上而下形成一颗倒置树状结构:
结构特征: 层次结构都是上层知道下层在哪儿 而下层不知道上层的结构
. //最上层 . 顶级域名 文件系统中称根
.com .net .... //组织域 国家域
.ibm.com
e.g. www.ibm.com. //最后一个点我们基本没用过
注册的都是二级域名 层次结构
DNS 查询类型:
递归查询 recursive Client->A->B->C
只发出一次请求 必须要知道答案
e.g. A 要知道B 的地址在哪儿,但A 不知道B在哪儿 于是问C
C知道了B的地址在哪儿并在C取得了答案在反馈给A
迭代查询 发送请求 后要A 去查询另一个
e.g. A 要知道B 的地址在哪儿,但A 不知道B在哪儿 于是问C
C知道了B的地址在哪儿,然后由A自己查找到所要找的信息
↑ ↓
Client --->
↓ ↑ <---
互联网上运用 分两段式查询:
客户端 DNS 给本地提供服务递归 也只给本地递归,服务器本身迭代查找
HOSTNAME--> IP 正向解析
IP-->HOSTNAME 反向解析
默认情况下: 只要安装DNS服务器 就要告诉服务器顶级域名位置
DNS查找解析 先把信息发送给本地服务器 本地服务器直接发给顶级域名 顶级域名再迭代查找
所以说前半段递归 ,下半段迭代查找
特点:
查找不能越级指挥
查找必须迭代查询
e.g. 3a.com 域名 授权的过程 3a 获得上级的授权后可以管理里面所有的主机包 括自己的名称
-------------------------------------------------------------------------------------
记录类型 标识
DNS是一个数据库 查找数据库 查找对应的地址返回 一个地址对应于一个主机
一个库 实现的解析方法不同
常见的记录类型:
FQDN--> IPA
IP --> FQDN Pointer 指针记录
DOMAIN-->SERVER: NS Name Server 名称服务记录
DOMAIN --> MTA MX (Mail eXchange) 标识一个域的邮件服务器
别名 --> Jerry: CNAME 正式名
用于表明起始域 SOA(start or Authority) 起始授权记录
DNS 服务器类型:
为了保证服务的可用性 可对应于多个副DNS域名服务
创建和删除只有主服务器才有权限
副服务器每隔一段时间区域传送一次
区域传送:
axfr : 完全区域传送
infr 增量区域传送
主服务器--辅助名称服务器
为了保证信息的解析传输安全同步除了一个主服务器外还增加了一个辅助服务器
主服务器 文件发生改动时 notification 通知辅助服务器开始同步了
什么是域 、区域?
两种不同关系的概念:
一个域包含一个正向区域和一个反向区域
正向需要一个单独的数据库文件,反向也需要一个单独的数据文件
域是逻辑概念 区域是物理概念
定义域就是定义一个倒置树节点 定义区域就是定义一个文件
缓存名称服务器
节约带宽 加速
转发器 把用户的请求转发出去 实现内外两台防火墙DNS之间的交互
-----------------------------------------------------------------------
查询流程 : 从客户端应用角度看
e.g. www.a.org
1. 查找 /etc/hosts
2. dns cache 非权威解析 不是自己所负责的域
3. server 权威解析 authoritive 查找本地的DNS进程并返回 本服务器解析的域
靠本地的库文件自动解析 共享库解析
stub reslver 最根本的名称解析 包括host
==========================================================================
BIND: Berkely Internet Name Domain
www.isc.org // 运维网站
命令:
yum list all bind* 查看bind所有软件包
用rpm 包安装不要装 chroot
只需要装 bind i386
yum list all cach*
配置默认的缓存
解析记录
name [ttl] IN RECORD_TYPE value //缓存的有效期限 变化频繁 ttl 修订短
越短服务器压力越大 最起码10分钟
第一条记录,类型为 SOA ,对于一个数据文件来讲 SOA 只能有一个
www.a.org 86400 IN A 1.1.1.1
1.1.1.1 86400 IN PTR www.a.org
------------------------------------------------------------------ --
DNS 是协议
bind 是软件,进程名叫named 所以配置名叫做named.conf
bind软件 默认配置文件位置
1. /etc/name.conf
全局选项段 : 全服务器有效
options {
version "hello";
};
局部生效
zone "a.org" IN {
};
2. /etc/rndc.conf
/etc/rndc.key bind 远程管理辅助工具
定义区域与全局选项
数据文件位置:
/var/named
named.ca // 定义根的位置
dig -t NS . //查看全球13个根目录 前提是要能上互联网
从a.root-servers.net. -- m.root-servers.net. 一共13个
Include 包含主配置文件
通常每一个域内都有两个文件 负责正向和反向解析
至少需要3个域 可以向互联网发起查询请求
1 根
2 localhost
3 反向解析
=====================================================================
* 从头开始建立:
*
* vim /etc/named.conf
* options {
* directory "/var/named"; //定义工作目录
* };
*
* zone "." IN {
* type hint;
* file "named,ca"; 默认路径
* };
* zone "localhost" IN {
* type master;
* file "localhost.zone";
* };
* zone "0.0.127.in-addr.arpa" IN{
* type master;
* file "named.local";
* };
*
*
* chown :named /etc/named.conf
*
* -------------------------------------------------------------------------
* 正向解析:localhost.zone
* cd /var/named/
* vim localhost.zone
*
* $TTL 86400
* @ 600 IN SOA localhost. admin.localhost. (
* 2011081601 // 序列号
* 1H // w d 默认s 刷新时间
* 10M // 重置时间
* 7D // 过期时间
* 1D ) // 否定答案的ttl值
* IN NS localhost.
* localhost. IN A 127.0.0.1
*
* -------------------------------------------------------------------------------------------------------------------------------------
* 反向解析:named.local
* cp localhost.zone named.local
* vim named.local
*
* $TTL 86400
* @600 INSOA localhost.admin.localhost. (
* 2011081601
* 1H
* 10M
* 7D
* 1D )
* IN NSlocalhost.
* 1 IN PTR localhost.
* --------------------------------------------------------------------------------------------------------------------------------------
* 根服务器:named.ca
* dig -t NS . @a.root-servers.net > /var/named.ca
*
*
=========================================================================
DEBUG:
检查区域主配置文件的语法错误: 不检查逻辑错误
named-checkconf
检查区域错误: //先说明哪个区域在说明对应的文件是什么
named-checkzone "localhost" /var/named/localhost.zone
service named start //启动服务
netstat -tunlp | grep :53 //查看端口53 的状态
现在可以作为一个缓存名称服务器
vim /etc/resolv.conf
nameserver 127.0.0.1
dig -t A www.baidu.com
OK 一个缓存名称服务器已经建立起来了
==============================================================================
如何做一个DNS服务器
net.cn
万网注册了一个域名a.org
第一步:去万网管理后台建两个记录
调整DNS 服务器地址 换成自己名字地址
两条DNS 服务地址/主机改成 ns1.a.org ns2.a.org
保证有A 记录
假如有两台服务器:
ns1.a.org 主服务器 100.1
ns2.a.org 从服务器 100.2
怎么让 172.16.100.1 去解析一个域的所有的主机相关联的记录?
ns1.a.org
ns2.a.org
www.a.org
ftp.a.org
bbs.a.org www
-------------------------------------------------------------------------------------------------------------------------------------
* vim /ect/name.conf
* 加上下面一段:
* zone "a.org" IN {
* type master;
* file "a.org.zone";
* };
*
* named-checkconf
---------------------------------------------------------------------------------------------------------------------------------------
*
* cd /var/named/
* vim a.org.zone
*
* $TTL 1200
* @ IN SOA ns1.a.org admin.a.org. (
* 2011081601
* 1H
* 10M
* 7D
* 1D )
* IN NS ns1.a.org.
* IN NS ns2.a.org.
* IN MX 10 mail.a.org.
* ns1.a.org. IN A 172.16.100.1
* ns2.a.org. IN A 172.16.100.2
* mail.a.org. IN A 172.16.100.1
* www.a.org. IN A 172.16.100.3
* bbs.a.org. IN CNAME www.a.org.
* ftp.a.org. IN A 172.16.100.100
------------------------------------------------------------------------------------------------------------------------------
要生效 改属组
chown :named a.org.zone
service named reload
-------------------------------------------------------------------------------------------------------------------------------
CMD 测试
debug:
nslookup
server 172.16.100.1
set q=A
www.a.org
set q=NS
a.org
set q=SOA
a.org
cat a.org.zone
linux debug: 两个客户端测试
host -t NS a.org
host -t A bbs.a.org
dig -t A www.a.org
flages qr aa rd ra
响应 权威答案
dig -t CNAME
dig -t axfr a.org 完全区域传送 把记录全部拿过来 使用TCP53号端口传输
------------------------------------------------------------------------------------------------------------------------
反向解析:172.16.zone
vim /etc/named.conf
添加如下:
zone "16.172.in-addr.arpa" IN{
type master;
file "172.16.zone";
};
------------------------------------------------------------------------------------------------------------------------
cd /var/named/
vim 172.16.zone
cp a.org.zone 172.16.zone
vim !$
$TTL 1200
@ IN SOA ns1.a.org admin.a.org. (
2011081601
1H
10M
7D
1D )
IN NS ns1.a.org.
IN NS ns2.a.org
1.100 IN PTR ns1.a.org.
2.100 IN PTR ns2.a.org.1.100 INPTR mail.a.org.
3.100 IN PTR www.a.org.
100.100 INPTR ftp.a.org.
---------------------------------------------------------------------------------------------------------
检查语法错误 :
named-checkzone "16.172.in-addr.arpa" /var/named/172.16.zone
service named restart
OK! 一个完整的DNS服务器就建立好了
0 0
- 基本DNS服务器的配置
- 基本DNS服务器的配置
- DNS服务器的配置
- DNS服务器的配置
- DNS服务器的配置
- DNS服务器的配置
- DNS服务器的配置------Linux
- DNS域名解析服务器的配置
- linux的DNS服务器配置
- 安装配置DNS服务器、DDNS的配置
- DNS服务器类型比较:如何选择正确的DNS配置
- DNS服務的基本配置
- DNS的基本和高级配置
- Linux下DNS(域名服务器)的配置
- DNS服务器的安装 和配置
- DNS 服务器的配置与管理
- 配置Win 2003的DNS服务器
- 如何配置Win 2003的DNS服务器
- git merge 跟 git merge -no-ff
- 新型单光子相机成像效果惊人,一个像素只要一个光子
- 操作系统启动过程
- LeetCode80. Remove Duplicates from Sorted Array II
- Swagger PHP使用指南
- 基本DNS服务器的配置
- 安装PLSQL
- 转换金额为大写人民币-Java
- java文件之转型流
- opencv,已知一个图像的轮廓,取出图像轮廓里的图//C++
- Eclipse和Studio去除头部标题
- 学习笔记(三)——大名鼎鼎的Fragement
- 深度学习caffe的代码怎么读?
- JAVA中局部内部类和匿名内部类的特点和作用?