DNS系统的作用
1. DNS服务器
Internet中,大部分网站、邮件服务等服务器都使用了域名形式的地址,这种地址形式要比使用IP地址形式更加直观,更加容易被用户记住。
FQDN格式(完整域名格式):在常见域名后添加“.”(根域)。
DNS系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名:与IP地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正向解析与反向解析。
(1)正向解析:根据域名查IP地址,是DNS服务最常用的基本功能
分类:
a)A记录
b)Cname(别名解析、多个域名同一IP解析)
(2)反向解析:根据IP查域名,不是很常用,应用于例如反垃圾邮件的验证等
a)PTR反向解析
每台DNS服务器都负责管理有个有限范围(一个或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为“zone”(区域)。

2. DNS服务器的分类
根据管理的区域地质数据的来源不同,DNS系统可以分为不同的类型:
(1)缓存域名服务器
只提供域名解析结果的缓存功能,本身并不能解析
(2)主域名服务器
自主维护一个域名的解析记录本
(3)从域名服务器
与主域名服务器提供完全相同的DNS解析服务,通常用于DNS服务器的热备份。
对客户机来说,无论使用主域名服务器还是从域名服务器,查询结果是一样的。
(4)智能解析服务器
根据不同访问地域的用户返回给他不同的解析响应包

3. DNS服务器的查询方式(以www.baidu.com为例)
(1)DNS服务器递归查询:
当客户机向DNS 服务器发出解析请求,DNS服务器先在DNS的本地缓存和hosts映射文件中查看。若没有,客户机会向LDNS求助,LDNS先查看LDNS的本地缓存及hosts映射文件。若还没有,查看DNS为什么类别,若是缓存域名解析服务器,通过网络查找,若为主域名服务器,查看LDNS域名解析记录本;若仍没有,通过DNS服务迭代查询查找。
(2)DNS服务器迭代查询:
LDNS先去求助点(.)域名服务器,(.)域名服务器不知道www.baidu.com在哪,于是将(.com)服务器位置告诉LDNS,(.com)服务器在将baidu.com服务器的位置告诉LDNS,baidu.com服务器将www.baidu.com的域名解析返回给LDNS,LDNS将解析记录存在本地并将其发送给客户机。

4. DNS端口
TCP 53端口
UDP 53端口
### 配置缓存域名服务器
#### BIND的安装和控制
1. RPM包的主要作用
bind:提供了域名服务器的主要程序及相关文件
bind-utils:提供了对DNS服务器的测试工具程序,如nslookup等
bind-libs:提供了bind、bind-utils需要使用的库函数
bind-chroot:为BIND服务提供一个伪装的根目录(将/var/named/chroot文件夹作为BIND的根目录)以提高安全性。也成为jail(监牢)机制。
BIND安装以后,会自动增加一个名为named的系统服务
```
[root@localhost ~]# mount /dev/sr0 /media/cdrom
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# yum -y install bind bind-chroot bind-utils

```
2. 主配置文件 /etc/named.conf

```
[root@localhost ~]# cp /etc/named.conf{,.bak}
[root@localhost ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.214.154; }; #监听IP
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; #允许连接本机的IP范围
forwarders {202.106.0.20} #告诉DNS去什么位置解析(另一个DNS的IP地址)
recursion yes; # 是否迭代查询
}
[root@localhost etc]# named-checkconf /etc/named.conf
[root@localhost etc]# /etc/init.d/named start
Generating /etc/rndc.key: [ OK ]
Starting named: [ OK ]

```
解析配置文件

```
[root@localhost ~]# vim /etc/resolv.conf
; generated by /usr/sbin/dhclient-script
search localdomain
nameserver 192.168.214.145
[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (220.181.112.244) 56(84) bytes of data.
64 bytes from 220.181.112.244 (220.181.112.244): icmp_seq=1 ttl=128 time=4.89 ms
64 bytes from 220.181.112.244 (220.181.112.244): icmp_seq=2 ttl=128 time=5.16 ms
64 bytes from 220.181.112.244 (220.181.112.244): icmp_seq=3 ttl=128 time=4.95 ms
64 bytes from 220.181.112.244 (220.181.112.244): icmp_seq=4 ttl=128 time=5.70 ms

```
配置主域名解析
1. 正向解析
```
[root@localhost etc]# vim named.conf

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
listen-on port 53 { 192.168.214.163; };
// listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; #允许所有用户访问
forwarders { 202.106.0.20; }; #手动添加,指定到哪个DNS下解析
recursion yes;
// dnssec-enable yes; #注释掉
// dnssec-validation yes; #注释掉
// dnssec-lookaside auto; #注释掉

/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";

managed-keys-directory "/var/named/dynamic";
};

logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};

zone "." IN {
type hint;
file "named.ca";
};
zone "yunjisuan.com" IN { #手动添加的,正向解析
type master; #主域名解析
file "yunjisuan.com.zone"; #解析记录本 allow-transfer { } 允许哪个从域名连接
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

[root@localhost etc]# cd /var/named/ # 记录本的位置
[root@localhost named]# ls
chroot dynamic named.empty named.loopback
data named.ca named.localhost slaves
[root@localhost named]# cp -p named.empty yunjisuan.com.zone #复制模板
[root@localhost named]# vim yunjisuan.com.zone
$TTL 3H #时间周期
@ IN SOA yunjisuan.com. root.ns1.yunjisuan.com. ( #两部分:要解析的域名(以.结尾)管理员的邮箱(用户.当前DNS的主机名.)
20181125 ; serial #当前日期(如果主域名服务器的数字比主域名的大,从域名就会找主域名下载解析记录本)
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1.yunjisuan.com #DNS解析位置
ns1 A 192.168.214.163
www A 192.168.214.2
news A 102.168.214.1
bbs CNAME news
* A 192.168.214.161
[root@localhost named]# named-checkzone yunjisuan.com yunjisuan.com.zone
zone yunjisuan.com/IN: loaded serial 20181125
OK
[root@localhost named]# /etc/init.d/named start
Starting named: named: already running [ OK ]
[root@localhost named]# vim /etc/resolv.conf
; generated by /sbin/dhclient-script
search localdomain
nameserver 192.168.214.163

```
2. 反向解析

```
[root@localhost etc]# vim named.conf

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
listen-on port 53 { 192.168.214.163; };
// listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; #允许所有用户访问
forwarders { 202.106.0.20; }; #手动添加,指定到哪个DNS下解析
recursion yes;
// dnssec-enable yes; #注释掉
// dnssec-validation yes; #注释掉
// dnssec-lookaside auto; #注释掉

/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";

managed-keys-directory "/var/named/dynamic";
};

logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};

zone "." IN {
type hint;
file "named.ca";
};
zone "yunjisuan.com" IN { #手动添加的,正向解析
type master; #主域名解析
file "yunjisuan.com.zone"; #解析记录本 allow-transfer { } 允许哪个从域名连接
};
zone "214.168.192. in-addr.arpa" IN { #IP地址反着写,反向解析
type master;
file "192.168.214.arpa";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
[root@localhost named]# named-checkconf /etc/named.conf
[root@localhost named]# cd /var/named/
[root@localhost named]# ls
chroot dynamic named.empty named.loopback yunjisuan.com.zone
data named.ca named.localhost slaves
[root@localhost named]# cp -p named.empty 192.168.214.arpa
[root@localhost named]# vim 192.168.214.arpa
$TTL 3H
@ IN SOA yunjisuan.com. root.ns1.yunjisuan.com. (
20181125 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1.yunjisuan.com.
2 PTR www.yunjisuan.com.
79 PTR ns1.yunjisuan.com.
[root@localhost named]# /etc/init.d/named restart
[root@localhost named]# nslookup www.yunjisuan.com

```

Linux系统——DNS的更多相关文章

  1. Linux 系统DNS解析原理

    DNS:域名的解析,也称A记录,CDN服务器   配置文件位置:       vi /etc/resolv.conf 解析原理 DNS就像一个倒挂的树,定点是点. www.baidu.com ==&g ...

  2. Linux系统解析域名的先后顺序【转帖】

    Linux系统解析域名的先后顺序 gd_WWW已经在本地(/etc/hosts)进行指向,但是竟然还能解析到外网,让我百思不得其解.经过不断查找发现域名解析与以下四个文件有关: /etc/hosts ...

  3. Linux 系统的网络基础_【all】

    网络基础 1.网线:568B: 白橙 橙色 白绿 蓝色 白蓝 绿色 白棕 棕色 2.交换机:电信号转发的网络设备,它可以为接入交换机的任2个网络节点设备提供电信号通信 3.路由器:连接局域网,广域网的 ...

  4. Ubuntu等Linux系统清除DNS缓存的方法

    buntu等Linux系统清除DNS缓存的方法 直接说方法: 如果系统下有nscd,那么就直接 sudo /etc/init.d/nscd restart 如果没有也没关系,网上接受的方法大都是 su ...

  5. Linux 虚拟机上安装linux系统 (ip:子网掩码,网关,dns,交换机,路由知识回顾)

    一 安装虚拟机 二 虚拟机上配置好在安装linux系统 三 知识回顾 交换机:主机在局域网内的身份是MAC地址(可以通过[交换机广播:交换机通过被动学习来建立一张“接口号”和“MAC地址”的对照表]或 ...

  6. Linux系统运维笔记(三),设置IP和DNS

    Linux系统运维笔记(三),设置IP和DNS 手工配置静态的IP地址 也就是手工配置IP地址.子网掩码.网关和DNS. vi /etc/sysconfig/network-scripts/ifcfg ...

  7. Linux 系统的DNS配置文件

    系统的DNS配置文件 方式一: 界面操作 setup -->界面配置网络,网关等 方式二: 修改配置文件 # 修改配置 ==>vi /etc/resolv.conf -->man r ...

  8. linux系统的学习

    通过<鸟哥的linux私房菜>的学习,自己得到的收获! 关机与重启 shutdown -k now "message" 用以发送所有信息,并不是真的关机.还可以登录新的 ...

  9. 忠告初学者学习Linux系统的8点建议

    导读 新手或者说即将要入坑的小伙伴们,常常在QQ群或者在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的.例如:如何给添加的用户归属用户组,复制整个文件到另一个目录下面,磁盘合理划分,甚至 ...

随机推荐

  1. Credential

    https://www.cnblogs.com/Hawk-Hong/p/4293651.html 在项目开发,我们经常会使用WebService,但在使用WebService时我们经常会考虑以下问题: ...

  2. m4a文件在iOS上的流媒体播放

    Date: 2016-03-23 Title: m4a文件在iOS上的流媒体播放 Tags: m4a, mp4, iOS, Android URL: m4a-streaming-play-on-mob ...

  3. sphinx的配置和管理.No2

    网上配置文档众多,但是对着他们的文档来做老是出问题,于是花了点时间研究了一下,写成总结,方便以后查阅.也希望学习sphinx的朋友能少走弯路.Coreseek的安装请参考:http://blog.ch ...

  4. 通过WireShark抓取iOS联网数据实例分析

    本文转载至http://blog.csdn.net/lixing333/article/details/7782539 iosiphone网络filter工具 我在另外一篇博客里,介绍了一款比Wire ...

  5. CALayer的position,anchorPoint属性 与UIView的frame 属性

    彻底理解CALayer的position,anchorPoint属性 与UIView的frame 属性 一.position,anchorPoint两者都是CALayer的属性,都是CGPoint点 ...

  6. intellij idea 2018注册码|intellij idea 2018破解文件下载(附破解教程/汉化包)

    intellij idea 2018破解文件http://www.3322.cc/soft/37661.html intellij idea 2018注册码是一款针对“intellij idea 20 ...

  7. BNU4206:单向行走

    给定一个m*n的矩阵,请写一个程序计算一条从左到右走过矩阵且权和最小的路径.一条路径可以从第1列的任意位置出发,到达第n列的任意位置.每一步只能从第i列走到第i+1列的同一行或者相邻行(第一行和最后一 ...

  8. java中的Iterator和Iterable 区别

    java.lang.Iterable java.util.Iterator 来自百度知道: Iterator是迭代器类,而Iterable是接口. 好多类都实现了Iterable接口,这样对象就可以调 ...

  9. java基础---->多线程之Daemon(五)

    在java线程中有两种线程,一种是用户线程,另一种是守护线程.守护线程是一种特殊的线程,当进程中不存在非守护线程了,则守护线程自动销毁.今天我们通过实例来学习一下java中关于守护线程的知识.我是个平 ...

  10. salt-ssh的批量脚本及使用方法

    author: headsen   chen date : 2018-08-02   20:06:06 1,salt-ssh的安装: yum -y install epel-release yum - ...