DNS(Domain Name System):域名解析系统

DNS port:53   protocol:tcp
在早期,没有DNS服务器提供解析域名时,可以通过hosts文件来解析域名,hosts需手动配置,及其麻烦,文件 非常臃肿。在Linux中hosts文件位置 :/etc/hosts

DNS工作原理(访问网站的流程)

    Server      Client客户端向服务端请求解析服务
1. client先查询本地hosts文件,如果本地hosts有目标域名、IP,直接去访问。反之,
2. 将请求交给指定的DNS服务器请求解析,DNS服务器查询本地解析库,查询到对应的IP和域名后,直接返回给客户端,客户端在去访问。

正向解析:将域名解析为IP地址 (可以通过域名访问服务器【web】)

反向解析:将IP地址解析为域名(可以通过IP地址访问服务器【web】)

nslookup:Linux中的解析工具,可以得到域名和IP地址。


FQDN=www.baidu.com?

一级域名又称为顶级域:.com  .edu  .org  .mil  .net  .top  .gov.com:表示商业机构     .edu:教育机构   .org:非营利组织
.mil:军方     .net:网络服务机构    .gov:政府机构    .top:高端,顶级,事业突破。国际通用域名
.:这个点代表根服务. 二级域名:baidu.com       *.net       *.gov .....    注:以.com结尾的域名都会去.com服务器查询,.net结尾的会去.net服务器查询,一 一对应。。。。其它的也相同.这样可以提高访问速度
国家域:.cn、.hk、.tw、.us、.jp、.ir、.uk 反向域:.in-addr.arpawww:这代表主机名。综上介绍得出 www.baidu.com 叫做 FQDN(由主机名【www】和域名组成【baidu.com】).

DNS查询方式

举例:以客户端向163.com请求解析DNS为例

递归查询:产生在网络客户端和本地DNS服务器:A——>B   B——>A ,网络客户端向本地DNS发起解析请求,在本地库查询到后,直接返回给网络客户端。迭代查询:产生在根服务器间的查询  A——>B   B——>C   C——>B   B——>D    D——>B   B——>E   E——>B   B——>A ,网络客户端向本地DNS
发起解析请求,本地DNS查询后没有找到匹配目标A——>B,将请求转发到.根服务器 B——>C ,根服务器查询本地解析库,没有匹配到目标,但帮本地DNS指路,
告诉它往哪个方向去寻找 C——>B,本地DNS按照提示的路去向.com域名服务器请求解析B——>D,.com域名服务器也没有查询到,又将路指向163.com域名服务
器D——>B,本地DNS服务器又向163.com发起解析请求B——>E,163.com域名服务器在本地解析库查询到结果,将结果返回到本地DNS服务器E——>B,
最后又将结果返回到网络客户端B——>A。

DNS的分类:

主DNS服务器:就是一台存储着原始资料的DNS服务器。从DNS服务器:使用自动更新方式从主DNS服务器同步数据的DNS服务器。也成辅助DNS服务器。缓存服务器:不负责本地解析,采用递归方式转发客户机查询请求,并返回结果给客户机的DNS服务器。同时缓存查询回来的结果,也叫递归服务器。转发器:这台DNS发现非本机负责的查询请求时,不再向根域发起请求,而是直接转发给指定的一台或者多台服务器。自身并不缓存查询结果。

搭建主从DNS步骤

要求:B同步到A的数据主DNS(A)  备(从也称为备)DNS(B)
A有什么数据,B就会同步A的数据,当A挂机后,B会成为主DNS。(B没有权限,只会同步A,所以只能在A上配置指令,因为B只会同步!)主DNS配置
1、安装DNS服务(yum源为本地挂载)yum -y install bind (这是DNS的主服务)yum -y install bind-utils (DNS工具,如 nslookup)
2、修改配置文件/etc/named.confvi /etc/named.conf
主DNS配置文件内容如下:
options {listen-on port 53 { 192.168.10.10; };   //主服务IP地址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     { 192.168.10.0/24; };       //允许访问DNS服务器的网段recursion no;   //yes代表当前服务器为缓存服务器(权威服务器),no代表当前为主服务器(非权威)dnssec-enable yes;dnssec-validation yes;bindkeys-file "/etc/named.iscdlv.key";managed-keys-directory "/var/named/dynamic";pid-file "/run/named/named.pid";session-keyfile "/run/named/session.key";
};
zone "yadong.com" IN {  //正向解析type master;    //master、slave、hidefile "yadong.front";    //指定区域数据文件allow-transfer { 192.168.10.11; };  //允许同步的从服务器地址
};
zone "10.168.192.in-addr.arpa" IN { //反向解析type master;file "yadong.verso";    //指定区域数据文件allow-transfer { 192.168.10.11; };
};

编辑 区域数据文件/var/named/ (对应主配置文件设置的路径)

创建对应的 区域数据文件:touch yadong.front yadong.verso

编辑正向解析库:vi /var/named/yadong.front

$TTL 1D
@       IN      SOA     yadong.com.     admin.yadong.com. (0   ; serial1D  ; refresh1H  ; retry1W  ; expire3H )    ; minimumIN      NS      ns1.yadong.com.
www     IN      A       192.168.10.2
mail    IN      A       192.168.10.3
ns1     IN      A       192.168.10.4
ftp     IN      cname   www

编辑反向解析库:vi /var/named/yadong.verso

$TTL 1D
@   IN      SOA     yadong.com.     admin.yadong.com. (0   ; serial1D  ; refresh1H  ; retry1W  ; expire3H )    ; minimumIN      NS      ns1.yadong.com.
2   IN      PTR     www.yadong.com.
3   IN      PTR     mail.yadong.com.
4   IN      PTR     ns1.yadong.com.3、启动服务
systemctl start  named主DNS搭建完毕

从DNS配置
1、安装DNS服务(yum源为本地挂载)yum -y install bind (这是DNS的主服务)yum -y install bind-utils (DNS工具,如 nslookup)
2、修改配置文件/etc/named.confvi /etc/named.conf 从DNS配置文件内容如下:
options {listen-on port 53 { 192.168.10.11; };directory   "/var/named/slaves";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     { 192.168.10.0/24; };recursion no;dnssec-enable yes;dnssec-validation yes;bindkeys-file "/etc/named.iscdlv.key";managed-keys-directory "/var/named/dynamic";pid-file "/run/named/named.pid";session-keyfile "/run/named/session.key";
};
zone "yadong.com" IN {type slave;file "yadong.front";masters { 192.168.10.10; };
};
zone "10.168.192.in-addr.arpa" IN  {type slave;file "yadong.verso";masters { 192.168.10.10; };
};
3、启动服务(等待同步)
systemctl   start  named从DNS搭建完毕4、验证是否同步成功:ls /var/named/slavesyadong.front  yadong.verso5、测试(测试前需要指定解析的DNS服务器echo "nameserver 192.168.10.10" >> /etc/resolv.conf)
正向解析
[root@localhost /]# nslookup www.yadong.com
Server:     192.168.10.11
Address:    192.168.10.11#53Name:   www.yadong.com
Address: 192.168.10.2
反向解析
root@localhost /]# nslookup 192.168.10.2
Server:     192.168.10.11
Address:    192.168.10.11#532.10.168.192.in-addr.arpa   name = www.yadong.com.

至此,主从DNS搭建完成!


搭建缓存master1 + master2

要求:只指定一台DNS服务器,实现解析两台DNS服务器上解析库的内容master1
1、安装DNS服务(yum源为本地挂载)yum -y install bind (这是DNS的主服务)yum -y install bind-utils (DNS工具,如 nslookup)
2、修改配置文件/etc/named.confvi /etc/named.conf master1配置如下:options {listen-on port 53 { 192.168.10.10; };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     { 192.168.10.0/24; };forwarders  { 192.168.10.11; };recursion yes;dnssec-enable yes;dnssec-validation yes;bindkeys-file "/etc/named.iscdlv.key";managed-keys-directory "/var/named/dynamic";pid-file "/run/named/named.pid";session-keyfile "/run/named/session.key";};zone "yadong.com" IN {type master;file "yadong.front";};zone "10.168.192.in-addr.arpa" IN {type master;file "yadong.verso";};

编辑 区域数据文件/var/named/ (对应主配置文件设置的路径)

创建对应的 区域数据文件:touch yadong.front yadong.verso

编辑正向解析库:vi /var/named/yadong.front

$TTL 1D
@       IN      SOA     yadong.com.     admin.yadong.com. (0   ; serial1D  ; refresh1H  ; retry1W  ; expire3H )    ; minimumIN      NS      ns1.yadong.com.
www     IN      A       192.168.10.2
mail    IN      A       192.168.10.3
ns1     IN      A       192.168.10.4
ftp     IN      cname   www

编辑反向解析库:vi /var/named/yadong.verso

$TTL 1D
@   IN      SOA     yadong.com.     admin.yadong.com. (0   ; serial1D  ; refresh1H  ; retry1W  ; expire3H )    ; minimumIN      NS      ns1.yadong.com.
2   IN      PTR     www.yadong.com.
3   IN      PTR     mail.yadong.com.
4   IN      PTR     ns1.yadong.com.3、启动服务
systemctl start  named  master1搭建完毕

master2
1、安装DNS服务(yum源为本地挂载)yum -y install bind (这是DNS的主服务)yum -y install bind-utils (DNS工具,如 nslookup)
2、修改配置文件/etc/named.confvi /etc/named.conf master2配置如下:options {listen-on port 53 { 192.168.10.11; };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     { 192.168.10.0/24; };recursion yes;dnssec-enable yes;dnssec-validation yes;bindkeys-file "/etc/named.iscdlv.key";managed-keys-directory "/var/named/dynamic";pid-file "/run/named/named.pid";session-keyfile "/run/named/session.key";};zone "nongfu.com" IN {type master;file "nongfu.front";};zone "11.221.231.in-addr.arpa" IN  {type master;file "nongfu.verso";};

编辑 区域数据文件/var/named/ (对应主配置文件设置的路径)

创建对应的 区域数据文件:touch nongfu.front nongfu.verso

编辑正向解析库:vi /var/named/nongfu.front

$TTL 1D
@       IN      SOA     nongfu.com.  admin.nongfu.com. (0   ; serial1D  ; refresh1H  ; retry1W  ; expire3H )    ; minimumNS      ns2.nongfu.com.
www     IN      A       231.221.11.1
mail    IN      A       231.221.11.2
ns2     IN      A       231.221.11.3
ftp     IN      cname   www

编辑反向解析库:vi /var/named/nongfu.verso

$TTL 1D
@   IN  SOA     nongfu.com. admin.nongfu.com. (0   ; serial1D  ; refresh1H  ; retry1W  ; expire3H )    ; minimumNS      ns2.nongfu.com.
1   IN  PTR     www.nongfu.com.
2   IN  PTR     mail.nongfu.com.
3   IN  PTR     ns2.nongfu.com.3、启动服务
systemctl start  named  4、测试(测试前需要指定解析的DNS服务器echo "nameserver 192.168.10.10" >> /etc/resolv.conf)

解析192.168.10.10上的解析库

    [root@localhost ~]# nslookup www.yadong.com   //正向解析www.yadong.comServer:     192.168.10.10Address:    192.168.10.10#53Name:   www.yadong.comAddress: 192.168.10.2[root@localhost ~]# nslookup 192.168.10.2   //反向解析192.168.10.2Server:     192.168.10.10Address:    192.168.10.10#532.10.168.192.in-addr.arpa   name = www.yadong.com.

解析192.168.10.11上的解析库

    [root@localhost ~]# nslookup www.nongfu.com     //解析nongfu.comServer:     192.168.10.10Address:    192.168.10.10#53Non-authoritative answer:Name:   www.nongfu.comAddress: 231.221.11.1[root@localhost ~]# nslookup 231.221.11.1       //反向解析231.221.11.1Server:     192.168.10.10Address:    192.168.10.10#53Non-authoritative answer:1.11.221.231.in-addr.arpa   name = www.nongfu.com.Authoritative answers can be found from:11.221.231.in-addr.arpa nameserver = ns2.nongfu.com.ns2.nongfu.com  internet address = 231.221.11.3

智能DNS

智能DNS是域名频道在业界首创的智能解析服务。能自动判断访问者的IP地址并解析出对应的IP地址,
使网通用户会访问到网通服务器,电信用户会访问到电信服务器。优点:就近选择,查询速度快。

CDN

 Content Delivery Network,即内容分发网络(又称代理Agent)。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,
使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点
的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet
网络拥挤的状况,提高用户访问网站的响应速度。优点:传输的更快、更稳定,隐藏真实服务器地址,提高安全性。

搭建智能DNS:

要实现DNS服务器的智能解析,需要先理解一个概念:Veiw.  假如有台web主机,www.yadong.com是域名
它真的有两个IP地址,一个连接内网IP为192.168.10.2,另一个外网IP为1.1.1.1,来自互联网的用户解析成
外网IP,内网的IP解析为内网IP,这种根据客户端的不同来源 将同一个主机解析成不同的结果,就叫做Veiw!1、安装DNS服务(yum源为本地挂载)yum -y install bind (这是DNS的主服务)yum -y install bind-utils (DNS工具,如 nslookup)
2、修改配置文件/etc/named.confvi /etc/named.conf 智能DNS配置如下:options {listen-on port 53 { 192.168.10.2; };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; };recursion no;dnssec-enable yes;dnssec-validation yes;bindkeys-file "/etc/named.iscdlv.key";managed-keys-directory "/var/named/dynamic";pid-file "/run/named/named.pid";session-keyfile "/run/named/session.key";};//内网区域view  internal  {match-clients { 192.168.10.2; };zone "yadong.com" IN  {type master;file "yadong.com/internal";};zone "10.168.192.in-addr.arpa" IN  {type master;file "yadong.com/internal.verso";};};//外网区域view external   {match-clients { any; };zone "yadong.com" IN {type master;file "yadong.com/external";};zone "1.1.1.in-addr.arpa" IN  {type master;file "yadong.com/external.verso";};};创建对应的目录和区域数据文件mkdir /var/named/yadong.comtouch /var/named/yadong.com/internal    internal.front  external  external.verso编辑对应的区域数据文件vi /var/named/yadong.com/internal

内网正向解析库

    $TTL 1D@       IN      SOA     yadong.com. admin.yadong.com. (0   ; serial1D  ; refresh1H  ; retry1W  ; expire3H )    ; minimumNS      ns1.yadong.com.www     IN      A       192.168.10.2mail    IN      A       192.168.10.2ns1     IN      A       192.168.10.2ftp     IN      cname   www

内网反向解析库vi /var/named/yadong.com/internal.verso

    $TTL 1D @       IN      SOA     yadong.com. admin.yadong.com. (0   ; serial1D  ; refresh1H  ; retry1W  ; expire3H )    ; minimumNS      ns1.yadong.com.2       IN      PTR     www.yadong.com.2       IN      PTR     mail.yadong.com.2       IN      PTR     ns1.yadong.com.

外网正向解析库vi /var/named/yadong.com/external

    $TTL 1D@       IN  SOA     yadong.com. admin.yadong.com. (0   ; serial1D  ; refresh1H  ; retry1W  ; expire3H )    ; minimumNS      ns1.yadong.com.www     IN  A       1.1.1.1mail    IN  A       1.1.1.1ns1     IN  A       1.1.1.1ftp     IN  cname   www

外网反向解析库vi /var/named/yadong.com/external.verso

    $TTL 1D@       IN  SOA     yadong.com. admin.yadong.com (0   ; serial1D  ; refresh1H  ; retry1W  ; expire3H )    ; minimumNS      ns1.yadong.com.1       IN  PTR     www.yadong.com.1       IN  PTR     mail.yadong.com.1       IN  PTR     ns1.yadong.com.

3、启动服务

systemctl start  named

4、测试(测试前需要指定解析的DNS服务器echo "nameserver 192.168.10.2" >> /etc/resolv.conf)

内网测试正向解析

[root@localhost /]# nslookup www.yadong.com
Server:     192.168.10.2
Address:    192.168.10.2#53Name:   www.yadong.com
Address: 192.168.10.2

内网反向解析

[root@localhost /]# nslookup 192.168.10.2
Server:     192.168.10.2
Address:    192.168.10.2#532.10.168.192.in-addr.arpa   name = ns1.yadong.com.
2.10.168.192.in-addr.arpa   name = www.yadong.com.
2.10.168.192.in-addr.arpa   name = mail.yadong.com.

外网正向解析

[root@localhost ~]# nslookup www.yadong.com
Server:     192.168.10.2
Address:    192.168.10.2#53Name:   www.yadong.com
Address: 1.1.1.1

外网反向解析

[root@localhost ~]# nslookup 1.1.1.1
Server:     192.168.10.2
Address:    192.168.10.2#531.1.1.1.in-addr.arpa    name = www.yadong.com.
1.1.1.1.in-addr.arpa    name = ns1.yadong.com.
1.1.1.1.in-addr.arpa    name = mail.yadong.com.

测试完毕,全部解析成功,至此,智能DNS搭建成功!

30分钟了解DNS及搭建方法相关推荐

  1. 30分钟入门Java8之默认方法和静态接口方法

    2019独角兽企业重金招聘Python工程师标准>>> 30分钟入门Java8之默认方法和静态接口方法 作者:@JohnTsai 本文为作者原创,转载请注明出处:http://www ...

  2. 30分钟(零成本)快速搭建markdown个人github博客

    零成本-30分钟快速搭建markdown个人github博客 摘要:本文以mkdocs 开源文档工具 + markdown预发编写文档,最终生成简易个人github博客.最终效果如:https://s ...

  3. 程序猿七夕礼物-如何30分钟给女友快速搭建专属语聊房

    1 语聊房应用场景说明 七夕礼物准备好了吗?程序猿七夕礼物标配,给女友搭建专属语聊房,既浪漫又硬核! 语聊房在社交场景中使用比较广泛,社交APP中的语聊房场景的实现,主要由业务系统和移动/Web 客户 ...

  4. php如何开发网络电话,利用开源软件30分钟搭建自己的voip网络电话系统V1.1

    Author:高进波 Time:2010-05-08 利用开源软件30分钟搭建自己的voip网络电话系统V1.1 大家可以根据以下文档在30分钟内就能搭建一个功能强大的voip网络电话系统,在此基础上 ...

  5. 利用开源软件30分钟搭建自己的voip网络电话系统V1.1

    利用开源软件30分钟搭建自己的voip网络电话系统V1.1 Posted on 2010 年 5 月 8 日by 高进波 Author:高进波   Time:2010-05-08     利用开源软件 ...

  6. 30分钟后如何终止PHP会话?

    我需要将会话保留30分钟,然后销毁它. #1楼 您应该自己实现会话超时. 其他人提到的两个选项( session.gc_maxlifetime和session.cookie_lifetime )都不可 ...

  7. 用云存储30分钟快速搭建APP

    背景 不管你承认与否,移动互联的时代已经到来,这是一个移动互联的时代,手机已经是当今世界上引领潮流的趋势,大型的全球化企业和中小企业都把APP程序开发纳入到他们的企业发展策略当中. 但随着手机APP上 ...

  8. 30分钟快速搭建移动应用直传OSS服务

    30分钟快速搭建移动应用直传服务 背景 这是一个移动互联的时代.手机APP上传的数据会越来越多.把数据存储的问题交给OSS, 让开发者能更加专注于自己的应用逻辑. 那么怎么样基于OSS构建一个APP存 ...

  9. 30分钟快速搭建一套私有云平台

    本文介绍一种基于starvcenter快速搭建私有云平台的方法,实现30分钟内完成一套私有云平台的部署. 整个安装过程真的太简单了,仅需4个步骤.话不多说,上干货~ 1.下载starvcenter的i ...

  10. Hexo+gitee:30分钟搭建一个自己的个人博客网站 欢迎友链呀<(▰˘◡˘▰)

    Hexo + Gitee 部署自己的个人博客   目前市场上比较火的一些博客框架: Hexo.jekyll.Solo.Halo .gohugo.VuePress.wordpress 等等 ,这些都是开 ...

最新文章

  1. smarty mysql demo_PHP Smarty模版简单使用方法
  2. Ubuntu 16.04禁用来宾账号(Guest User)
  3. 4.2小时完成数万年计算,比超级计算机快亿亿亿倍!量子计算机“祖冲之号”“九章”再升级...
  4. js中window.location.search的用法和作用
  5. 前端框架Bootstrap 教程
  6. BZOJ 3489: A simple rmq problem(K-D Tree)
  7. qt连接错误ip的sqlserver超时时间_参数设置导致请求超时案例
  8. 单线程写多线程读安全的结构体
  9. android wear 处理器,联发科推Android Wear平台可穿戴处理器
  10. 数据库Sharding的基本思想和切分策略(转)
  11. 在html中加入滚动条,html滚动条 textarea属性设置
  12. winpe加载raid_windows pe3.0加载RAID驱动!
  13. 容易的计算机科技核心期刊,计算机类容易中的期刊
  14. 机器学习-SVD(隐语义模型)协同过滤
  15. hutool导出导出excel中文自适应列宽+反射+自定义注解获取表头
  16. 定格动画运用的计算机技术是,定格动画中材料的运用.pdf
  17. ranhcer添加Longhorn存储
  18. IDEA更换背景图片
  19. flutter 图形验证码
  20. Go语言核心之美 2.3-复数

热门文章

  1. 对计算机专业的认识和未来规划,对计算机专业的认识及学业规划
  2. 若依项目人员选择器实现
  3. 阿里大鱼短信接口PHP版,精简版阿里大鱼短信SMS发送接口PHP实例
  4. OpenXML标签含义
  5. BOSS直聘下载自己的简历要钱!而且是PDF格式 - 解决方法
  6. 怎么在电脑桌面添加待办便签小助手
  7. java牛顿法求方程根_牛顿迭代法 求方程根
  8. Eclipse使用技巧--设置编辑器背景护眼色和设置字体
  9. html中怎么让照片变模糊,CSS改变图片由模糊到清晰
  10. 互联网大佬“舌战”996:马云、刘强东、周鸿祎、张朝阳、李国庆,你站谁?