DNSドメイン名の解決
DNSの定義
DNSは「ドメインネームシステム」の略です。ドメイン名とIPアドレスを相互にマッピングする分散データベースとして、人々がインターネットにアクセスしやすくすることができます。
DNSサービスはTCPおよびUDPポート53を使用し、TCPポート53はDNSサーバーへの接続に使用され、UDPポート53はDNSの解決に使用されます。
各第1レベルドメイン名の長さは63文字に制限されており、ドメイン名の全長は253文字を超えることはできません。
DNSシステムの役割
順
方向解決:ドメイン名に基づいて対応するIPアドレスを検索します逆引き解決:IPアドレスに基づいて対応するドメイン名を検索します
DNSシステムは分散データ構造に属しています。
ドメイン名の構造
http://www.sina.com.cn./
http://hostname.second-level domain.top-level domain root domain /
ツリー構造の最上位はルートドメインと呼ばれ、「。」で示されます。対応するサーバーはルートサーバーと呼ばれます。ドメインネームスペース全体の解決能力はフォローサーバーに属しますが、ルートサーバーはできません。 「委任」メカニズムが採用されています。一部のトップレベルドメインはルートドメインの下に設定され、その後、異なるトップレベルドメイン解決権限が対応するトップレベルドメインサーバーに委任されます。たとえば、 comドメインの解決はcomドメインサーバーに委任されます。その後、comで終わるドメイン名の解決はサーバーから受信されます。リクエストはcomドメインサーバーに転送されます。同じ理由で、プレッシャーを軽減するためにトップレベルドメインのうち、いくつかのセカンドレベルドメインが設定され、セカンドレベルドメインもサードレベルドメインまたはホストでセットアップされます。
根域
ドメイン名スペースの上部にあり、通常は「。」で表されます。
トップレベルドメイン
一般に
、.net(ネットワークプロバイダー)、. com(企業)、. org(グループ組織)、. edu(教育機関)、. gov(政府部門)、. cn(中国語)などの組織または国のタイプを表します。国のドメイン名)
セカンダリドメイン
トップレベルドメイン内の特定の組織を示すために使用されます。国のトップレベルドメインの下のセカンドレベルドメイン名は、国のネットワーク部門によって管理されます。たとえば
、.cnの下に設定されたセカンドレベルドメイン名トップレベルドメイン名:.com.cn、.net.cn、.edu .cn
子域
セカンドレベルドメインの下に作成されたすべてのレベルのドメインはまとめてサブドメインと呼ばれ、各組織またはユーザーは独自のドメイン名の登録を自由に申請できます。
ホスト
ホストはドメインネームスペースの最下位レベルにあり、特定のコンピューターです。たとえば
、wwwとmailは特定のコンピューター名であり、www.sina.com.cn。とmail.sina.comで表すことができます。 .cn。この表現方法はFQDN(完全修飾ドメイン名)と呼ばれ、ドメイン名でのこのホストのフルネームでもあります。
DNSサーバータイプ
プライマリドメインネームサーバー
エリア内のすべてのドメイン名情報を維持する責任があり、すべての特定の情報の信頼できる情報ソースであり、データを変更できます。メインドメインネームサーバーを構築する際には、担当エリアのアドレスデータファイルを自分で作成する必要があります。
ドメインネームサーバーから
プライマリドメインネームサーバーに障害が発生したり、シャットダウンしたり、過負荷になったりすると、セカンダリドメインネームサーバーは、ドメイン名解決サービスを提供するバックアップサービスとして機能します。ドメインネームサーバーから提供される解決結果は、自分で決定するのではなく、メインドメインネームサーバーから取得されます。セカンダリドメインネームサーバーを構築するときは、サーバーがエリアのアドレスデータベースを自動的に同期できるように、マスタードメインネームサーバーの場所を指定する必要があります。
キャッシュネームサーバー
クエリの速度と効率を向上させるためにドメイン名解決結果のキャッシュ機能を提供するだけですが、ドメイン名データベースはありません。リモートサーバーから各ドメインネームサーバークエリの結果を取得し、それをキャッシュに入れて、後で同じ情報をクエリするときに応答するために使用します。提供されるすべての情報は間接的な情報であるため、キャッシュドメインネームサーバーは信頼できるサーバーではありません。キャッシュドメインネームサーバーを構築するときは、ルートドメインを設定するか、別のDNSサーバーを解決のソースとして指定する必要があります。
ドメインネームサーバーの転送
すべての非ローカルドメイン名のローカルクエリを担当します。転送ドメインネームサーバーは、クエリリクエストを受信した後、キャッシュを検索し、見つからない場合は、結果が見つかるまで指定されたドメインネームサーバーにリクエストを転送します。それ以外の場合は、次のことができない結果を返します。マップされます。
DNSドメイン名解決サーバーを構築する手順
フォワード分析
バインドパッケージをインストールします
yum install -y bind
前方解決を構成する
まず、変更が必要な構成ファイルのパスを確認します
rpm -qc bind #查询bind软件配置文件所在路径
/etc/named.conf #主配置文件
/etc/named.rfc1912.zones #区域配置文件
/var/named/named.localhost #区域数据配置文件
メイン構成ファイルを変更します
vim /etc/named.conf
options {
listen-on port 53 {
192.168.80.10; }; ●监听53端口,ip地址使用提供服务的本地IP,也可用any表示所有
# listen-on-v6 port 53 { ::1; }; #ipv6行如不使用可以注释掉或者删除
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"; #内存统计文件的位置
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query {
192.168.80.0/24; 172.16.100.0/24; }; ●允许使用本DNS解析服务的网段,也可用any代表所有
……
}
zone "." IN {
#正向解析“.”根区域
type hint; #类型为根区域
file "named.ca"; #区域数据文件为named.ca,记录了13台根域服务器的域名和IP地址等信息
};
include "/etc/named.rfc1912.zones"; #包含区域配置文件里的所有配置
ゾーン構成ファイルを変更し、フォワードゾーン構成を追加します
vim /etc/named.rfc1912.zones #可在文件里有模版,可复制粘贴后修改
zone "benet.com" IN {
●正向解析“benet.com”区域
type master; #类型为主区域
file "benet.com.zone"; ●指定区域数据文件为benet.com.zone
allow-update {
none; };
};
フォワードゾーンデータファイルを構成する
cd /var/named/
cp -p named.localhost benet.com.zone #保留源文件的权限和属主的属性复制
vim /var/named/benet.com.zone
$TTL 1D #设置缓存解析结果的有效时间
@ IN SOA benet.com. admin.benet.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS benet.com. #记录当前区域的DNS服务器的名称
A 192.168.80.10 #记录主机IP地址
www IN A 192.168.80.200 #记录正向解析www.benet.com对应的IP
ftp IN CNAME www #CNAME使用别名,ftp是www的别名
* IN A 192.168.80.200 #泛域名解析,“*”代表任意主机名
#“@”这里是一个变量,当前DNS区域名
#SOA标记用于同步主从服务器的区域数据,如更新序列号相同则不会更新
#“benet.com.”此为完全合格域名(FQDN),后面有个“.”不能漏掉
#“admin.benet.com.”表示管理员邮箱,这里的“@”是变量,所以用“.”表示
クライアントのドメイン名解決構成ファイルにDNSサーバーアドレスを追加します
vi /etc/resolv.conf #修改完后立即生效
nameserver 192.168.80.10
或
vi /etc/sysconfig/network-scripts/ifcfg-ens33 #修改完后需要重启网卡
DNS1=192.168.80.10
systemctl restart network
サービスを開始し、ファイアウォールをオフにします
systemctl start named
systemctl stop firewalld
setenforce 0
#如果服务启动失败,可以查看日志文件来排查错误
tail -f /var/log/messages
#如果服务启动卡住,可以执行下面命令解决
rndc-confgen -r /dev/urandom -a
DNS解決をテストする
host www.benet.com
nslookup www.benet.com
逆分析
ゾーン構成ファイルを変更し、逆ゾーン構成を追加します
vim /etc/named.rfc1912.zones
zone "80.168.192.in-addr.arpa" IN {
●反向解析的地址倒过来写,代表解析192.168.80段的地址
type master;
file "benet.com.zone.local"; ●指定区域数据文件为benet.com.zone.local
allow-update {
none; };
};
逆引きゾーンデータファイルを構成する
cd /var/named/
cp -p named.localhost benet.com.zone.local
vim /var/named/benet.com.zone.local
$TTL 1D
@ IN SOA benet.com. admin.benet.com. ( #这里的“@”代表192.168.80段地址
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS benet.com.
A 192.168.80.10
200 IN PTR www.benet.com.
#PTR为反向指针,反向解析192.168.80.200地址结果为www.benet.com.
テストするサービスを再起動します
systemctl restart named
host 192.168.80.200
nslookup 192.168.80.200