bind默认的根服务器ip
A. 简单介绍DNS的工作原理,写出搭建DNS服务器的简要步骤
DNS 即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制。其中通过域名解析出ip地址的叫做正向解析,通过ip地址解析出域名的叫做反向解析。
下面对DNS的工作流程及原理进行简要说明
DNS的查询流程:需要解析服务的Client先查看本机的/etc/hosts;若无结果,则client查看本地的DNS缓存服务器;若无结果,则查找所属域的首选DNS服务器;若此时本地首选DNS服务器仍无法解析,则会想根域名服务器进行查询或选择转发解析请求。
DNS的查询规则:递归式查询,即client向支持递归查询的DNS Server发出解析请求,则自DNS服务器不论是自身直接解析还是无法解析想根发出请求,总会由其向client返回一个结果;迭代式查询,即接收client解析请求的DNS Server,若其能够解析则直接返回结果,若其不能解析将把解析请求交给其他DNS服务器,而不是自己亲自将解析过程完成。
所谓的“根”服务器:根服务器主要用来管理互联网的主目录,全世界只有13台。1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。所有根服务器均由美国政府授权的互联网域名与号码分配机构ICANN统一管理,负责全球互联网域名根服务器、域名体系和IP地址等的管理。
DNS记录的类型:
A:Address 域名向ip地址转换的记录;
PTR:Printer ip地址向域名转换的记录;
NS:代表域内的dns服务器;
MX:代表域内的邮件服务器;
CNAME:域名的别名;
SOA:start of authority用于标示域内主DNS服务器。
提供DNS服务的软件:BIND即Berkeley Internet Name Domain有加州大学伯克利分校研发是当今提供dns服务应用最广的软件。
下面让我们进入正题,以下内容包括:DNS的缓存服务器、主/从服务器、子域授权、转发以及视图的配置步骤。
DNS缓存服务器
Ps:为了更好的体会和理解dns的配置文件和域解析文件,作者在此只安装bind包,以手动编辑的方式生成这几个必须的文件。
1.安装bind包
yum install bind
2.创建住配置文件/etc/named.conf
options {
directory "/var/named"; #告知工作目录
};
zone “.” IN {
type hint; #声明根域
file "named.ca"; #根信息存放文件
};
zone "localhost" IN { #本地正解定义
type master; #类型为master
file "localhost.zone"; #正解文件名
};
zone "0.0.127.in-addr.arpa" IN { #本地反解定义
type master;
file "named.local"; #反解文件名
};
chown :named /etc/named.conf
#修改属组给named
3.创建3个解析文件
named.ca
dig -t NS . > /var/named/named.ca
#向跟服务器发起查询并重定向到目标文件
localhost.zone
vim localhost. zone
$TTL 86400
#默认的ttl值
@ IN SOA localhost. admin.localhost. (
#主DNS服务器localhost.
2011081601
#时间+序列号01
1H
#刷新时间:每隔多久来master查询更新
10M
#重试时间间隔
7D
&n
B. RedHat-linux配置DNS详细步骤是什么
RedHat-Linux服务器搭建DNS服务器;
DNS domain name system 域名系统
特点:(1)具备递归查询和迭代查询
(2)分布式数据库
(3)将域名解析为IP
(4)具有主DNS服务器、辅DNS服务器和缓存DNS服务器三种类型
(5)全球13台根域服务器
以下是搭建步骤:
1、准备软件包
bind.i386 --主服务软件包
bind-chroot.i386 -- 笼环境软件包
bind-devel.i386 --开发包
bind-libs.i386 --库文件
bind-utils.i386 --工具包
[root@rootbug ~]# rpm -qa |grep ^bind- --rhel6.3下的包
bind-utils-9.8.2-0.10.rc1.el6.x86_64
bind-chroot-9.8.2-0.10.rc1.el6.x86_64
bind-libs-9.8.2-0.10.rc1.el6.x86_64
bind-9.8.2-0.10.rc1.el6.x86_64
bind-dyndb-ldap-1.1.0-0.9.b1.el6.x86_64
-------------看到软件包有点纠结,为啥呢??因为这些软件包的名字跟DNS这三个词每半点关系---------
2、安装软件包
[root@rootbug ~]#yum install bind* -y
3、查看配置文件
RHEL6下不管是安装了bind-chroot还是不安装,配置文件都是以/var/named.conf文件为主。
(1)修改/etc/named.conf
[root@rootbug ~]#vim /etc/named.conf
-------省略其他万行代码----------------
options {
listen-on port 53 { any; }; --将原配置文件中的127.0.0.1改为any,表示监听所有
listen-on-v6 port 53 { ::1; };
directory "/var/named"; --域的数据文件存放目录
mp-file "/var/named/data/cache_mp.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; --将配置文件的localhost改为any,表示所有人能查询这台服务器
recursion yes;
-------省略其他万行代码----------------
修改之后保存退出
(2)配置/etc/named.rfc1912.zones,增加域的配置
[root@rootbug ~]#vim /etc/named.rfc1912.zones
按照配置文件格式添加一个域,这里我添加一个rootbug.com的域,域的数据文件放在directory "/var/named"当前目录下的data下,名称为:master.rootbug.com.zone。配置域时请注意“;”分号。
zone "rootbug.com" IN {
type master;
file "data/master.rootbug.com.zone";
};
配置好之后保存退出。
(3)创建master.rootbug.com.zone的数据文件
[root@rootbug ~]#vim /var/named/data/master.cluster.com.zone
$TTL 3600
@ IN SOA rootbug. zhangsan. (
2013090801 --版本号,下面的是各种时间,作用是主从DNS服务器的同步时间
30
60
90
3600 )
IN NS 172.16.2.151. --这里就是DNS服务器的IP(实际应该是公网IP,但这里是内网环境,所以写的内网IP),但是ip地址最后还有一个“.”记得加点,也可以写DNS服务器的外网域名;并且这里可以写多个NS,代表了你公司的多台DNS服务器
mail IN A 1.1.1.1 --A记录就是真正的数据,这里代表mail.rootbug.com的公网地址为1.1.1.1
dns IN A 172.16.2.151
bbs IN A 2.2.2.2
保存退出
(4)启动DNS服务器
[root@rootbug ~]#/etc/init.d/named start ----第一次配置开启过程需要等待一段时间
(5)客户端认证DNS服务器是否正确
windows客户端认证
在IP配置DNS栏中将首选DNS填写为172.16.2.151即可
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\ruutbug>nslookup mail.rootbug.com
*** Can't find server name for address 172.16.2.151: Server failed
*** Default servers are not available
Server: UnKnown
Address: 172.16.2.151
Name: mail.rootbug.com
Address: 1.1.1.1
C:\Documents and Settings\ruutbug>nslookup dns.rootbug.com
*** Can't find server name for address 172.16.2.151: Server failed
*** Default servers are not available
Server: UnKnown
Address: 172.16.2.151
Name: dns.rootbug.com
Address: 172.16.2.151
C:\Documents and Settings\ruutbug>nslookup bbs.rootbug.com
*** Can't find server name for address 172.16.2.151: Server failed
*** Default servers are not available
Server: UnKnown
Address: 172.16.2.151
Name: bbs.rootbug.com
Address: 2.2.2.2
C. DNS地址是什么
域名系统是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
每个区域必须有对应的域名服务器,每个区域中包含的信息存储在域名服务器上。一个区域中可有两个或多个域名服务器,这样即使其中一个域名服务器出了故障,另一个域名服务器仍然可以正常提供信息。一个域名服务器也可以同时管辖多个区域。域名服务器在接到用户发出的请求后查询自身的资源记录集合,返回用户想要得到的最终答案,或者当自身的资源记录集合中查不到所需要的答案时,返回指向另外一个域名服务器的指针,用户将继续向那个域名服务器发出请求。
D. 根域名服务器的分布地点
下表是这些机器的管理单位、设置地点及最新的IP地址: 字母 IPv4地址 IPv6地址 自治系统编号(AS-number) 旧名称 运作单位 设置地点
#数量(全球性/地区性) 软件 A 198.41.0.4 2001:503:ba3e::2:30 AS19836 ns.internic.net VeriSign 以任播技术分散设置于多处
6/0 BIND B 192.228.79.201
(2004年1月起生效,旧IP地址为128.9.0.107) 2001:478:65::53 (not in root zone yet) none ns1.isi.e 南加州大学信息科学研究所
(Information Sciences Institute, University of Southern California) 美国加州马里纳戴尔雷伊
(Marina del Rey)
0/1 BIND C 192.33.4.12 2001:500:2::CAS2149 c.psi.net Cogent Communications 以任播技术分散设置于多处
6/0 BIND D 199.7.91.13(2013年起生效,旧IP地址为128.8.10.90) 2001:500:2::DAS27 terp.umd.e 马里兰大学学院市分校
(University of Maryland, College Park) 美国马里兰州大学公园市
(College Park)
1/0 BIND E 192.203.230.10 AS297 ns.nasa.gov NASA 美国加州山景城
(Mountain View)
1/0 BIND F 192.5.5.241 2001:500:2f::f AS3557 ns.isc.org 互联网系统协会
(Internet Systems Consortium) 以任播技术分散设置于多处
2/47 BIND G 192.112.36.4 AS5927 ns.nic.ddn.mil 美国国防部国防信息系统局
(Defense Information Systems Agency) 以任播技术分散设置于多处
6/0 BIND H 128.63.2.53 2001:500:1::803f:235 AS13 aos.arl.army.mil 美国国防部陆军研究所
(U.S. Army Research Lab) 美国马里兰州阿伯丁(Aberdeen)
1/0 NSD I 192.36.148.17 2001:7fe::53 AS29216 nic.nor.net 瑞典奥托诺米嘉公司(Autonomica) 以任播技术分散设置于多处
36 BIND J 192.58.128.30
(2002年11月起生效,旧IP地址为198.41.0.10) 2001:503:c27::2:30 AS26415 VeriSign 以任播技术分散设置于多处
63/7 BIND K 193.0.14.129 2001:7fd::1 AS25152 荷兰RIPE NCC 以任播技术分散设置于多处
5/13 NSD L 199.7.83.42
(2007年11月起生效,旧IP地址为198.32.64.12) 2001:500:3::42 AS20144 ICANN 以任播技术分散设置于多处
37/1 NSD M 202.12.27.33 2001:dc3::35 AS7500 日本WIDE Project 以任播技术分散设置于多处
5/1 BIND 中国大陆地区内只有6组根服务器镜像(F,I(3台),J,L),在少数极端情况下(比如全球互联网出现大面积瘫痪、或者中国互联网国际出口堵塞),至少能保证国内的站点由国内的域名服务器来解析。虽然国外的用户连接到我国的网络会出现问题,但是我国可以自己解决中国境内的域名解析问题,保证国内网络正常使用。
E. linux下如何配置DNS服务器,
在linux下配置DNS服务器,下面是配置过程中设置过的一些文件,
/etc/hosts 文件的具体内容如下:
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost fc4
192.168.1.3 a.test.com a
192.168.1.1 b.test.cn b
/etc/host.conf 文件:
order hosts,bind
表示先用hosts文件做解析,在用DNS解析
/etc/resolv.conf 文件:
; generated by NetworkManager, do not edit!
search test.com
nameserver 127.0.0.1
search test.cn
nameserver 192.168.1.1
nameserver 61.144.56.100
/etc/named.conf 文件:
//
// named.conf for Red Hat caching-nameserver
//
options {
directory "/var/named";
mp-file "/var/named/data/cache_mp.db";
statistics-file "/var/named/data/named_stats.txt";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
type hint;
file "named.ca";
};
zone "test.com"IN {
type master;
file "test.com";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa"IN {
type master;
file "192.168.1.rev";
allow-update { none; };
};
zone "test.cn"IN {
type master;
file "test.cn";
allow-update { none; };
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.ip6.local";
allow-update { none; };
};
zone "255.in-addr.arpa" IN {
type master;
file "named.broadcast";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
};
include "/etc/rndc.key";
在/var/name/test.com 文件下:
$TTL 86400
@ IN SOA a.test.com. root.a.test.com (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS a.test.com.
IN MX 10 mail.test.com.
a IN A 192.168.1.3
mail IN A 192.168.1.3
//其中root.a.test.com的含义是管理员的邮箱
/var/name/test.cn 文件下:
$TTL 86400
@ IN SOA b.test.cn. root.a.test.com (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS b.test.cn.
IN MX 10 mail.test.cn.
b IN A 192.168.1.1
mail IN A 192.168.1.1
/var/name/192.168.1.rev 文件下:
$TTL 86400
@ IN SOA 1.168.192.in-addr.arpa. root.test.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS a.test.com.
IN NS b.test.cn.
IN MX 10 mail.test.com.
IN MX 10 mail.test.cn.
3 IN PTR a.test.com.
3 IN PTR mail.test.com.
1 IN PTR b.test.cn.
1 IN PTR mail.test.cn.
然后用/etc/init.d/named restart重启DNS服务,在重启过程中,我曾经出现过好几次的错误,按照出错的提示,会提示是named.conf文件第几行出错的。或者提示在那些包含文件例如test.cn这些文件里面的问题,然后一个一个排除。
最后还有一些nslookup的命令比较有用:
set all用于显示使用nslookup工具这台机器上的DNS服务器的一些信息
set type=any会显示完整信息包括域中邮件服务器和主从DNS服务器的名字和IP地址
server 192.168.0.1更换查询的DNS服务器地址