[それを言うために、それを明確にしてください!DNSドメインネームサービス]原則

(A)全体のワークフローのDNS理解し
、人々が簡単にドメイン名の登録を通じてサイトへのサービスにアクセスできるように、DNSは、WebスペースのIPでのドメイン名です。IPアドレスは、メモリを容易にするために、IPアドレスの代わりにドメイン名の使用は、サイトのアドレスを識別し、ネットワークサイト上の数値アドレスです。DNSは、変換プロセスのIPアドレスへのドメイン名です。ドメイン名のDNSサーバが完了した解決に努めています。
DNSとも呼ばれるドメイン名は、サーバーの設定]をポイントし、逆IPドメイン名の登録を設定します。ポイントは、IPにドメイン名を覚えて、単に簡単に、DNSサーバがサーバによって行われ、それを置くために、ドメイン名をIPアドレスに解決されており、その後、ホストのIPアドレスに結合ドメインのサブディレクトリ。インターネットアドレスは数字のIPアドレスで、DNSの主な役割は、メモリを容易にすることです。
私たちは今、PCクライアントは、Baiduのサーバーwww.baidu.comにアクセスする必要があるとします。私たちは、ホストサーバのbaidu.comドメインのwww.baidu.com代わっを知っている、とbaidu.comドメインのWebサービスを提供するために、プレゼンスサーバを除き、また、提供、ファイル転送ftp.baidu.comを提供するために存在してもよいですようにメールmail.baidu.comサービスと、彼らはホストbaidu.comドメインです。しかし、このPCクライアントはwww.baidu.comどのくらいのIPアドレスを知らないが、このPCクライアントがリモートサーバーwww.baidu.comと通信する必要がある場合、それはローカルのDNSサーバを介して取得する必要がある必要があります。例えば、深センでこのPCには、それはダイヤルアップしますインターネット深センテレコムDNSサーバへの接続は、クエリを送信:深センテレコムDNSサーバ教えてくれていません。この時点で、「何をはるかにどのようにホストのIPアドレスwww.baidu.comを知っていますか?」このPCクライアント、特定のIPアドレスがどのくらいで、グローバル世界でサービスのルートドメインのクエリを提供するために、世界のために、彼らはルートDNSサーバーのドメインと呼ばれているDNSサーバの13セットは、あります。このとき、深センテレコムDNSサーバークエリアルゴリズムを通して最も近い1つのルートドメインのDNSサーバーに、クエリを送信する:「あなたはwww.baidu.comどのくらいのホストのIPアドレスを知っていますか?」この時点で、ルートドメインのDNSサーバー再:「情報照会があまりにも正確で、答えることはできませんが、ドメイン名を照会ドメインが、私のルートドメインに登録されているCOM、あなたが行方コム具体的な結果を照会することができます」今回深センテレコムDNSサーバーをDNSのトップレベルドメインにCOM返信されます。この時点comドメインのDNSサーバーで、「あなたはどのくらいのホストのIPアドレスwww.baidu.com知っていますか?」:サーバはクエリ送信「情報照会があまりにも正確で、答えることができないが、しかし、あなたのクエリは、Baiduのドメインであります私はあなたがホストのIPアドレスは、数www.baidu.com知っている場合、私は尋ねる「:.深センテレコムは、DNSサーバーのBaiduのドメインにクエリを発行します。この時点で、」あなたはBaiduのドメイン固有の結果の所在を照会することができ、サーバに登録された「から? DNS.baiduによってホストwww.baidu.comのIPアドレス。COMサーバーのメンテナンス、そのドメインのDNSサーバーBaiduは返信されます:「私は知っている、IPアドレス検索はXXXです」。この時点で、我々は最終的に、このPCがサーバとのIPアドレスwww.baidu.comを照会するために使用することができますので、それは、このPCクライアントの結果を教えてくれます、深センテレコムDNSサーバーのIPアドレスwww.baidu.comを知っているだろう通信します。DNS深センテレコムにクエリーを送信するPCは、深センテレコムは、DNSサーバーが結果を返す取得しなければならない、深センテレコムDNSは深センテレコムDNSクエリを持っている、取得するために戻ってクライアントPCへの最終結果の層を介し問い合わせます結果は、「再帰クエリ」と呼ばれるクライアントクエリに戻った;しかし、ルートドメインのDNSサーバーへの深センテレコムDNSクエリで、DNSのルートドメインサーバーは、結果が答えるか、単にそれらを指示していないかわからない、結果は照会者に返されます知っていますトップレベルのcomドメインのDNSサーバーは、DNSクエリ深センテレコムに応じて、同じアプローチに従う背後にクエリパスは、深センDNSホストは、クエリの結果、このように「反復クエリ」と呼ばれています。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
いないすべてのローカルDNSサーバの要求は、再帰クエリを実行するために、そして時には演算子は、唯一のエリアネットワークのユーザーは、再帰クエリは、サービス効率を向上させるための方法を提供し、独自の操作を管理することがあります。例えば、北京、自動的に北京でネットワーク事業者を得る、ユーザーのIPアドレスのIPアドレスへの深センから出張でノートPCを持つユーザーが、ユーザーのノートブックのDNSサーバのアドレスはまだ、深センではこの時間、ユーザーを事業者のIPアドレスを使用しますあなたは、通常使用することができますQQ、マイクロ文字、爪や他の通信ソフトウェアを検索しますが、ページには、深センでごく少数のページを開くことができません表示されるように他のページを開くには、実際にはこの時点で、最良の方法はまた、DNSです、実際には、もありますすることができ、サーバのアドレスも自動的にサービスを取得するように設定されているいくつかのインターネットのDNSサーバーは、そのようなDNSサーバーや他の8.8.8.8,4.4.4.4,114.114.114.114として再帰クエリ要求を、提供グローバルクエリのホストホストは、時には我々はそれらをうまく利用することができます。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則


(二)配置unbound作为DNS服务器
(2.1)我们使用unbound软件来进行DNS服务的配置,首先在vms001主机上安装unbound软件。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(2.2)在我们的系统中通常会使用如下的DNS服务系统架构,有两台DNS服务器,分别是主DNS:master和辅DNS:slave,其中主DNS服务器上的数据都会定期同步到辅DNS上,在进行主辅信息同步的时候使用的是tcp的53端口;而客户端一般会设置两个DNS地址用于查询请求,当客户端PC向主DNS或者辅DNS查询的时候使用的是UDP的53端口。所以我们一般也是要在防火墙中设置开放DNS服务。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(2.3)进入到/etc/unbound/目录中,编辑unbound.conf配置文件。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(2.4)整个unbound.conf的框架主要包括server,local-zone,remote-control,stub-zone,forward-zone五个部分。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(2.5)在unbound.conf配置文件中的server框架下有一个参数为interface,需要进行设置,将其服务对外开放。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(2.6)但是我们设置interface为0.0.0.0后发现unbound服务重启失败了,这是由于我们的系统中有虚拟化环境存在,装过了虚拟化环境后默认会有一个dnsmasq存在,这也是一个DNS服务,也是运行监听在virbr0网卡的53端口。而我们设置interface时指定运行在所有网卡上,这和虚拟化环境中的dnsmasq产生了冲突,才会导致我们配置完后服务重启失败。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(2.7)我们可以将interface设置为本机IP地址192.168.26.101,这样DNS服务就可以正常的重启了。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(2.8)接着在server框架中我们设置access-control即unbound服务器的访问控制列表也是允许所有主机可以访问。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(2.9)然后在server框架中我们设置username的值为空即可,一般username是做认证使用的。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(2.10)在server框架中我们常用到的配置就包含interface、access-control和username这三个。接下来include: /etc/unbound/local.d/*.conf表明在unbound.conf配置文件默认是会包含/etc/unbound/local.d/目录下的所有后缀为conf的文件的,一般我们的local-zone的信息就是通过这样的方式提供的。配置完成后记得需要将unbound服务重启一下。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(2.11)配置完成后我们可以检查一下配置是否有错误:# unbound-checkconf
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(2.12)我们使用vms002主机进行测试,我们将vms002主机的DNS服务器IP地址设置为192.168.26.101
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(2.13)接着我们在vms002主机上进行测试。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(2.14)我们继续对local-zone中的存在于/etc/unbound/local.d/目录下的aa.conf的配置文件中第二行进行配置。SOA(Start of Authority)表示验证的开始。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(2.15)最后我们将vms001主机的DNS服务器的IP地址也指向192.168.26.101,并重启网络服务。至此我们便完成了配置unbound作为DNS服务器。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則


(三)配置仅转发DNS服务器
有时候我们在家里上网的时候,会使用家庭版的路由器,这个时候家庭路由器通过WAN口将PC客户端的请求和互联网进行连接,家庭PC地址会设置在一个网段内,例如192.168.26.0网段,PC的IP地址为192.168.26.10,网关的地址为192.168.26.1。我们发现家里的路由器中并没有配置DNS的相关local-zone的条目,但是我们PC客户端配置了DNS指向这个家庭路由器后仍然可以为我们解析IP地址。这种类型其实就是一种仅转发DNS服务器,当它接收到客户端的域名解析的请求时,它是不会做解析的,它会连接到当地的互联网运营商的DNS服务器,将接收到请求转发到互联网运营商的DNS服务器处理。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(3.1)我们将vms002主机配置为仅转发DNS服务器,安装unbound软件。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(3.2)在vms002主机上的/etc/unbound/目录下,配置unbound.conf文件,设置vms002主机监听IP地址为192.168.26.102的53端口。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(3.3)设置access-control允许所有主机进行查询的请求。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(3.4)然后在我们设置username的值为空即可,一般username是做认证使用的。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(3.5)进入到/etc/unbound/目录中,找到unbound.conf文件,使用forward-zone的模板信息,接着我们进入到/etc/unbound/local.d/目录中,创建一个aa.conf的配置文件。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(3.6)在vms002主机的aa.conf配置文件中设置转发的域名为“example.com”,表示当外部客户端只有在请求解析example.com域名时才做转发服务,其他情况例如查询“baidu.com”,则不作任何的操作。转发的地址设置为vms001主机地址:192.168.26.101
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(3.7)在vms002主机上需要设置防火墙规则,允许DNS服务的通信,并将设置在防火墙中写入持久态。并将unbound服务启动起来。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(3.8)接着我们启动一台测试DNS效果的DNSClient客户端,设置IP地址为192.168.26.23
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(3.9)然后我们在vms001主机和vms002主机执行抓包命令,在DNSClient主机执行请求解析的命令。可以看到vms001和vms002主机都有如下的抓包结果(图3-13)
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(3.10)以vms002提取的抓包结果为例,首先DNSClient会向vms002主机询问example.com的IP地址是多少,vms002主机会将询问转发到vms001主机进行查询,vms001主机回复了vms002主机的查询结果为192.168.26.101,此时因为有DNSKEY的问题,所以vms002主机并不信任vms001主机的回复结果。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(3.11)此时我们需要取消vms002主机向vms001主机回复结果后的密钥验证步骤,可以进入vms001主机和vms002主机的/etc/unbound/目录,编辑unbound.conf配置文件。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
(3.12)此时vms002主机作为一台仅转发的DNS服务器,便实现了正常的解析DNSClient客户端的查询请求了。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
我々はこの唯一の前方すべてのDNSサーバがホスト名解決要求を解決することができますしたい場合は(3.13)、その後、次のことができます「」。パラメータ名を設定し、既に設定されたDNSサービスにDNSアドレスを転送することができますホスト上で、あなたが唯一の現実的なDNSサーバを前方に構築することができるように。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則
ヒント:時々 、我々はまた、DNSアドレス解決プロセスを照会するコマンドを#DIGを使用+ www.baidu.comをトレースすることができます。
[それを言うために、それを明確にしてください! DNSドメインネームサービス]原則

おすすめ

転載: blog.51cto.com/13613726/2435842