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. 走进ELK原理

    日志的分析在联调和后期维护是非常重要. 今天让我们进入ELK...让我们一起感受这个强大的日志收集,日志分析存储,日志查询界面化显示的震撼效果吧. Elasticsearch是个开源分布式搜索引擎,它 ...

  2. Bootloader之uBoot简介(转)

    来自http://blog.ednchina.com/hhuwxf/1915416/message.aspx,感谢作者 一.Bootloader的引入从前面的硬件实验可以知道,系统上电之后,需要一段程 ...

  3. OpenGL 4.0 GLSL 基础教程概览——VAO和VBO常用操作接口

    (一) OpenGL  4.3 最新渲染管线图 从OpenGL 2.0 到 OpenGL 3.0变化非常大,但从OpenGL 3.0 到OpenGL 4.0 变化不是太大. 着色器程序直接运行在GPU ...

  4. 基于Cocos2d-x学习OpenGL ES 2.0系列——OpenGL ES渲染之LayerColor(8)

    在前面文章中讲述了Cocos2d-x引擎OpenGL渲染准备Shader方面,本文主要讲解使用LayerColor来讲述OpenGL的渲染过程. 1.LayerColor对象创建 添加LayerCol ...

  5. mysql show processlist 命令检查mysql lock

    processlist命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这个命令. 1. 进入mysql/bin目录下输入mysqladmin processlist; ...

  6. 解决提示“配色方案已更改为Windows7 Basic”

    WIN7是很多用户都用过的系统,是由微软推出的.下面就说一个小技巧. 如何解决Win7系统提示:“配色方案已更改为Windows 7 Basic”解决方案.   更改Win7配色方案 首先,右击桌面空 ...

  7. Fluent Nhibernate Mapping for Sql Views

    Views are mapped the same way tables are mapped except that you should put Readonly() in the mapping ...

  8. ScrollView 设置滚动是否可用

    extends:http://stackoverflow.com/questions/5763304/disable-scrollview-programmatically , http://stac ...

  9. 一键搞定JavaEE应用,JRE+Tomcat+Mysql-JaveEE绿色运行环境JTM0.9版 (转载)

    这是一个集成了jre,tomcat,mysql的绿色运行环境, 直接解压之后就可以运行.不需要用户自己安装jre,tomcat,mysql,一键到位,看起来像是桌面式的web应用.换句话说,就像是we ...

  10. [NGINX] - 配置文件优化 - NGINX.CONF

    Nginx 本文主要针对公司的Nginx负载均衡配置进行解释,配置文件在最下方.因为公司没有使用PHP,所以NGINX里面并没有太多facgi模块相关优化    NGINX.CONF user   语 ...