linux5中实现DNS转换

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

问:什么是“DNS”?其中文为何?
    答:DNS,简单地说,就是Domain Name System,翻成中文就是“域名系统”。
    问:DNS有什么用途?
    答:在一个TCP/IP架构的网络(例如Internet)环境中,DNS是一个非常重要而且常用的系统。主要的功能就是将人易于记忆的Domain Name与人不容易记忆的IP Address作转换。而上面执行DNS服务的这台网络主机,就可以称之为DNS Server。基本上,通常我们都认为DNS只是将Domain Name转换成IP Address,然后再使用所查到的IP Address去连接(俗称“正向解析”)。事实上,将IP Address转换成Domain Name的功能也是相当常使用到的,当login到一台Unix工作站时,工作站就会去做反查,找出你是从哪个地方连线进来的(俗称“逆向解析”)。

以下是DNS的基本介绍

DNS 数据库的类型:hint, master/slave 架构

Master

这种类型的 DNS 数据库中,里面所有的主机名相关信息等,通通要管理员自己手动去修改与设定,设定完毕还得要重新启动 DNS 服务去读取正确的数据库内容,才算完成数据库更新。

Slave

假如我们有3DNS来服务器设置了master数据库类型,当某个用户要更改或者删除数据时,我们就需要同时对这个3dns服务器都来进行修改,这个时候我们就可以设置slave数据库类型,我们只需要设置一个主的master,而其他两个设置成为slave就可以了.修改的时候,我们只需要动一下master里面的配置文件,然后重新启动bind这个服务,其他两部就可以自动被通知更新了

Master / Slave 数据的同步化过程

Master 主动告知:例如在 Master 在修改了数据库内容,并且加大数据库序号后,重新启动 DNS 服务,那 master 会主动告知 slave 来更新数据库,此时就能够达成数据同步;

· Slave 主动提出要求:基本上, Slave 会定时的向 Master 察看数据库的序号,当发现 Master 数据库的序号比 Slave 自己的序号还要大 (代表比较),那么 Slave 就会开始更新。如果序号不变,那么就判断数据库没有更动,因此不会进行同步更新.

DNS的正、反解查询指令

/var/named/chroot/                                              根文件

/var/named/chroot/etcdns                                     服务器配置文件

/var/named/chroot/var/named                              区域文件

DNS主要配置文件: /etc/named.conf 

架设 DNS 所需要的软件

bind-9.3.6-4.P1.el5.i386.                                     DNS主程序

bind-chroot-9.3.6-4.P1.el5.i386.rpmDNS           这个包可以增加DNS的安全性

rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm                                                     DNS配置文件的样例文件

/etc/named.conf :                     这就是我们的主配置文件啦!

1

/etc/sysconfig/named :是否启动 chroot 及额外的参数,就由这个档案控制;

[root@www ~]# vim /etc/named.conf

         options { 

          listen-on port 53{ any; };             //可不设定,代表全部接受

         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 yes;                            //是否做递归查询

         forward only;                           //可暂时不设定

         forwarders {//是重点!

              }; 

         };//最终记得要结尾符号!

listen-on port 53 { any; };                 监听在这部主机系统上面的哪个网络接口

directory "/var/named";                   如果此档案底下有规范到正、反解的 zone file 档名时,该档名预设应该放置在哪个目录底下的意思。

dump-file, statistics-file, memstatistics-file named 这个服务有关的许多统计信息.

allow-query { any; }                      这个是针对客户端的设定,到底谁可以对我的 DNS 服务提出查询请求的

forward only                                 这个设定可以让你的 DNS 服务器仅进行 forward

forwardersdns                              服务器转发

 

对配置文件的声明

Vimnamed.rfc1912.zones

             zone "localhost" IN {

                    type master;locahost            声明为主配置域

                   file "localhost.zone";            区域文件名存放的位置

                   allow-update { none; };       是否支持动态更新

            zone "." IN {

                   type hint;                           记录了“.”的区域文件提示

                  file "named.ca"                   提示上一级DNSserver的地址

zone "0.0.127.in-addr.arpa" IN {          反向区域文件的声明

                 type master;

                 file "named.local";

                 allow-update { none; 

 

授权

需要在文件记录里面指明需要授权服务器的地址对IP

例:需要对某公司进行DNS授权,我们先在区域文件记录进行修改

sh.abc.aom.        IN      NS      ns.sh.abc.com

ns.sh.abc.com     IN     A         192.168.1.1

转发

首先需要在主配置文件 named.conf28行下增加

forwards { 需要转发到那台主机的地址;};两个分号不能丢

 

正解文件记录的数据 (Resource Record, RR)

2

A, AAAA :查询 IP 的记录

NS :查询管理领域名 (zone) 的服务器主机名

SOA :查询管理领域名的服务器管理信息

MX是对邮件服务器进行设置的

语法检测:

named-checkconf检测主配置文档+需要检测文件的地址

named-checkzone检测区域文件+需要检测文件的地址

tail -n 20 -f /var/log/messages通过日志文件

 

       记录数据详解格式

       1.Master DNS 服务器主机名:这个领域主要是哪部 DNS 作为 master 的意思

2.管理员的 email:那么管理员的 email 为何?发生问题可以联络这个管理员

3.序号 (Serial):这个序号代表的是这个数据库档案的新旧,序号越大代表越新.

4.更新频率 (Refresh):那么啥时 slave 会去向 master 要求数据更新的判断

5.失败重新尝试时间 (Retry):如果因为某些因素,导致 slave 无法对master 达成联机,那么在多久的时间内,slave 会尝试重新联机到 master

6.失效时间 (Expire):如果一直失败尝试时间,持续联机到达这个设定值时限,那么

7.slave将不再继续尝试联机,并且尝试删除这份下载的 zone file 信息

8.快取时间 (Minumum TTL):如果这个数据库 zone file 中,每笔 RR 记录都没有写到TTL 快取时间的话,那么就以这个 SOA 的设定值为主。

 

CNAME :设定某主机名的别名 (alias)

例:

 www.google.com.    IN    CNAME          www.l.google.com.

只刷新刚添加的记录执行          rndc reload

 

DNS反向解析

查询 IP 所对应的主机名

/etc/named.conf 的设置

allow-transfer ( none; };是否允许来自 slave DNS 对我的整个领域数据进行传送

type自己手动修改数据库档案的 master,与可自动更新数据库的 slave

file就是zone file 的檔名

反解 zone主要就是 in-addr.arpa

vim /var/named/named.ca的设置

这里指明一下字符

一定要从行首开始写如果前面有空格则表示从下一个domain开始

          @表示本区域,本档案里面的

         .它代表一个完整的主机名字

         $TTL理解你要从DNS哪里快取文件多长时间

    DNS 的启动、观察日志文件

 

CDN 内容分发网络原理

由一台全局负载均衡器F5和分布在全国8个节点的CacheServer组成,提供页面访问加速与加速功能

1用户向提供要访问的域名

2)、浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,为了得到实际 IP地址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;在此过程中使用全局负载均衡DNS解析,如根据地理位置信息解析对应的 IP地址,使得用户能就近访问 w问问

3)、此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的IP地址以后,向缓存服务器发出访问请求

4)、缓存服务器根据浏览器提供的要访问的域名,通过Cache内部专用DNS解析(一般通过host文件解析)得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求;

5)、缓存服务器从实际IP地址得得到内容以后,先在本地进行保存,用做缓存,然后把获取的数据返回给客户端,完成数据服务过程;

6)、客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。

没有使用cdn

可对比下未使用CDN缓存网站的访问地程用户访问未使用CDN缓存网站的过程为: 1)、用户向浏览器提供要访问的域名

2)、浏览器调用域名解析函数库对域名进行解析,以得到此域名对应的IP地址

3)、浏览器使用所得到的IP地址,向域名的服务主机发出数据访问请求

4)、浏览器根据域名主机返回的数据显示网页的内容

 

实现DNIT转换

需要用到视图

需要编辑 /etc/named.conf文件

定义:Acl lan {内部地址}访问控制列表

3

产生abc.com.zone1区域文件

  Iptables –t nat –A PRERPUTING –d 外部地址–p tcp –dport 80 –j DNAT –to 外部地址

  Iptables –t nat –L –vv –line-number查看列表

 

DNS性能测试

queryperf

bind-9.7.4.tar.gz 进行源码安装

生成

4

选项–s对那台服务器进行测试

-d指明输入文件










本文转自 only223wym 51CTO博客,原文链接:http://blog.51cto.com/ymchaofeng/1282522,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
域名解析 网络协议 安全
在Linux中,想在命令行下访问某个网站,并且该网站域名还没有解析,如何做?
在Linux中,想在命令行下访问某个网站,并且该网站域名还没有解析,如何做?
|
3月前
|
网络协议 Linux Docker
在Linux中,如何指定dns服务器,来解析某个域名?
在Linux中,如何指定dns服务器,来解析某个域名?
|
20天前
|
弹性计算 网络协议 Ubuntu
如何在阿里云国际版Linux云服务器中自定义配置DNS
如何在阿里云国际版Linux云服务器中自定义配置DNS
|
3月前
|
域名解析 存储 缓存
在Linux中,DNS进行域名解析的过程是什么?
在Linux中,DNS进行域名解析的过程是什么?
|
3月前
|
域名解析 网络协议 Linux
在Linux中,如何配置DNS服务器?
在Linux中,如何配置DNS服务器?
|
3月前
|
Java Shell Linux
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
关于如何使用Shell脚本来解析Linux系统中的应用服务日志,提供了脚本实现的详细步骤和技巧,以及一些Shell编程的技能扩展。
48 0
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
|
3月前
|
网络协议 Linux
在Linux中,如何改IP、主机名、DNS?
在Linux中,如何改IP、主机名、DNS?
|
3月前
|
域名解析 网络协议 Linux
在Linux中,我们都知道,dns采用了tcp协议,又采用了udp协议,什么时候采用tcp协议?什么 时候采用udp协议?为什么要这么设计?
在Linux中,我们都知道,dns采用了tcp协议,又采用了udp协议,什么时候采用tcp协议?什么 时候采用udp协议?为什么要这么设计?
|
3月前
|
缓存 网络协议 Linux
在Linux中,当用户在浏览器当中输入⼀个网站,计算机对dns解释经过那些流程?
在Linux中,当用户在浏览器当中输入⼀个网站,计算机对dns解释经过那些流程?
|
3月前
|
域名解析 缓存 负载均衡
在Linux中,自定义解析域名的时候,可以编辑哪个⽂件?是否可以⼀个ip对应多个域名?是否⼀个域名对应多个ip?
在Linux中,自定义解析域名的时候,可以编辑哪个⽂件?是否可以⼀个ip对应多个域名?是否⼀个域名对应多个ip?

相关产品

  • 云解析DNS