linux5中实现DNS转换

简介:

问:什么是“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 :                     这就是我们的主配置文件啦!

1231647109.png

/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

232709643.png

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

233541131.png

产生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

233655838.png

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

-d指明输入文件










本文转自 only223wym 51CTO博客,原文链接:http://blog.51cto.com/ymchaofeng/1282522,如需转载请自行联系原作者
目录
相关文章
|
8天前
|
Linux 编译器 开发者
Linux设备树解析:桥接硬件与操作系统的关键架构
在探索Linux的庞大和复杂世界时🌌,我们经常会遇到许多关键概念和工具🛠️,它们使得Linux成为了一个强大和灵活的操作系统💪。其中,"设备树"(Device Tree)是一个不可或缺的部分🌲,尤其是在嵌入式系统🖥️和多平台硬件支持方面🔌。让我们深入了解Linux设备树是什么,它的起源,以及为什么Linux需要它🌳。
Linux设备树解析:桥接硬件与操作系统的关键架构
|
21天前
|
算法 Linux C++
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
29 0
|
21天前
|
算法 Linux C++
【Linux系统编程】深入解析Linux中read函数的错误场景
【Linux系统编程】深入解析Linux中read函数的错误场景
196 0
|
25天前
|
缓存 网络协议 Linux
【Shell 命令集合 网络通讯 】Linux 配置DNS dnsconf 命令 使用教程
【Shell 命令集合 网络通讯 】Linux 配置DNS dnsconf 命令 使用教程
38 0
|
26天前
|
Shell Linux 开发工具
【Shell 命令集合 文件管理】Linux 高级的文件管理器 mc 命令解析
【Shell 命令集合 文件管理】Linux 高级的文件管理器 mc 命令解析
38 0
|
21天前
|
算法 Unix Linux
Linux与Qt线程优先级的对应关系:一次全面解析
Linux与Qt线程优先级的对应关系:一次全面解析
21 0
|
4天前
|
算法 Linux 调度
深度解析:Linux内核的进程调度机制
【4月更文挑战第12天】 在多任务操作系统如Linux中,进程调度机制是系统的核心组成部分之一,它决定了处理器资源如何分配给多个竞争的进程。本文深入探讨了Linux内核中的进程调度策略和相关算法,包括其设计哲学、实现原理及对系统性能的影响。通过分析进程调度器的工作原理,我们能够理解操作系统如何平衡效率、公平性和响应性,进而优化系统表现和用户体验。
14 3
|
11天前
|
负载均衡 算法 Linux
深度解析:Linux内核调度器的演变与优化策略
【4月更文挑战第5天】 在本文中,我们将深入探讨Linux操作系统的核心组成部分——内核调度器。文章将首先回顾Linux内核调度器的发展历程,从早期的简单轮转调度(Round Robin)到现代的完全公平调度器(Completely Fair Scheduler, CFS)。接着,分析当前CFS面临的挑战以及社区提出的各种优化方案,最后提出未来可能的发展趋势和研究方向。通过本文,读者将对Linux调度器的原理、实现及其优化有一个全面的认识。
|
13天前
|
存储 缓存 监控
深入解析linux内存指标:快速定位系统内存问题的有效技巧与实用方法(free、top、ps、vmstat、cachestat、cachetop、sar、swap、动态内存、cgroops、oom)
深入解析linux内存指标:快速定位系统内存问题的有效技巧与实用方法(free、top、ps、vmstat、cachestat、cachetop、sar、swap、动态内存、cgroops、oom)
|
18天前
|
网络协议 Linux
Linux自建DNS
Linux自建DNS
11 0

相关产品

  • 云解析DNS