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. Java程序员面试技巧

    Java 程序员面试技巧 对于每一个求职者,有一份优秀的简历是很必要的,企业通过简历的筛选,会给予求职者面试的机会.然而,很多求职者就是在面试过程中与钟情的工作失之交臂.如何在面试中取得成功呢?“细节 ...

  2. Java精选笔记_自定义标签

    自定义标签 自定义标签入门 什么是自定义标签 自定义标签可以有效地将HTML代码与Java代码分离,从而使不懂Java编程的HTML设计人员也可以编写出功能强大的JSP页面 JSP规范中定义了多个用于 ...

  3. python2.0_day21_bbs系统评论自动加载+文章创建

    day20中我们已经实现了bbs系统的前端展示,后台admin管理,以及前端动态显示顶部\登录和评论的分级展示功能.其中评论的分级展示功能最为复杂.上一节中我们只是在文章明细页面中加了一个button ...

  4. shell基础(六)--字符串和数组

    对文本处理,单独用shell来处理还是比较薄弱.所以shell就引用了awk and sed这两个命令.我们今天不说这个 一 字符串  字符串是shell编程中最常用最有用的数据类型,因为你定义一个变 ...

  5. AndroidWear开发之开发环境[前奏]

    上篇教程教的是如何下载最新的SDK http://www.cnblogs.com/bvin/p/3811751.html 一.Eclipse下的尝试 之前以为在Eclipse下把SDK,ADT更新一下 ...

  6. LeetCode - Department Highest Salary

    题目大概的意思是选出每个Department里工资最高的人的信息并组成相应的表信息 有几个值得注意的地方:1)使用group by语句时,前面的select语句后面的内容只能有两种情况一种是group ...

  7. 数据一致性和io类型

    版权声明:本文由高剑林原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/106 来源:腾云阁 https://www.qclo ...

  8. AStar A* A星 算法TypeScript版本

    一 演示效果 二  参考教程 <ActionScript3.0 高级动画教程> + 源码 http://download.csdn.net/download/zhengchengpeng/ ...

  9. redis link 链表结构

    lpush key value 作用: 把值插入到链接头部 rpop key 作用: 返回并删除链表尾元素 lrange key start stop 作用: 返回链表中[start ,stop]中的 ...

  10. 大规模网站sesson会话保持思路及实践配置

    1.需求: 请教个问题:我用lvs的rr模式,(考虑过 ipvsadm -p,但是这样就失去了负载均衡的意义感觉),后端有10台web,用一台memcached专门用于存储session文件,但是现在 ...