前言
我们每天打开的网站,他是如何来解析,并且我们怎么能得到网站的内容反馈的界面呢?那什么是DNS呢(DNS(DomainNameservice,域名服务,主要用于因特网上作为域名和IP地址相互映射)那今天我们将来学习DNS服务器的构建,DNS服务可以算是Linux服务中比较难的一个了,尤其是配置文件书写,少一个字符都有可能造成错误。
DNS解析过程
- 客户机访问某个网站,请求域名解析,首先查找本地HOSTS文件,如果有对应域名、IP记录,直接返回给客户机。如果没有则将该请求发送给本地的域名服务器;
- 本地DNS服务器能够解析客户端发来的请求,服务器直接将答案返回给客户机;
- 本地DNS服务器不能解析客户端发来的请求,分为两种解析方法:
- 采用递归解析:本地DNS服务器向根域名服务器发出请求,根域名服务器对本地域名服务的请求进行解析,得到记录再给本地DNS服务器,本地DNS服务器将记录缓存,并将记录返给客户机;
- 采用迭代解析:本地DNS服务器向根域名服务器发出请求,根域名服务器返回给本地域名服务器一个能够解析请求的根的下一级域名服务器的地址,本地域名服务器再向根返回的IP地址发出请求,最终得到域名解析记录。
下面开始搭建DNS服务器 for Centos 7:
安装bind
yum install bind* -y
编辑配置文件
vim /etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 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;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/*Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
定义根和自定义区域
vim /etc/named.rfc1912.zones
#add named by wyh
zone "wyh.com" IN {
type master;
file "wyh.com.zone";
allow-update { none; };
};
zone "188.92.182.in-addr.arpa" IN {
type master;
file "wyh.com.arpa";
allow-update { none; };
};
编辑正向解析文件
vim /var/named/wyh.com.zone
$TTL 86400
@ IN SOA ns.wyh.com. root (
42 ; serial
3H ; refresh
15M ; retry
1W ; expire
1D) ; minimum
@ IN NS ns.wyh.com.
ns IN A 182.92.188.163
www IN A 182.92.188.163
@ IN MX 10 mail.wyh.com.
mail IN A 182.92.188.163
编辑反向解析文件
vim /var/named/wyh.com.arpa
$TTL 86400
@ IN SOA ns.wyh.com. root (
42 ; serial
3H ; refresh
15M ; retry
1W ; expire
1D) ; minimum
@ IN NS ns.wyh.com.
163 IN PTR mail.wyh.com.
163 IN PTR ns.wyh.com.
163 IN PTR www.wyh.com.
测试
- 找一台客户端,PC或者服务器,将客户端的DNS修改为服务器端DNS,访问解析的域名能正常访问即证明DNS服务器搭建成功。