视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
linux下的dns设置详解
2025-09-24 06:36:23 责编:小OO
文档
linux下的dns设置详解

①简介

DNS就是Domain Name System,它能够把形如www.21php.com这样的域名转换为211.152.50.35这样的IP地址;没有DNS,浏览21php.com这个网站时,就必须用211.152.50.35这么难记的数字来访问。提供DNS服务的就是DNS服务器。DNS服务器可以分为三种,高速缓存服务器(Cache-only server)、主服务器(Primary Name server)、辅助服务器(Second Name Server)。 

DNS的详细原理、工作流程、术语、概念,限于篇幅,这里就不说了。可以阅读专门的文章,如DNS-HOWTO加以了解。 

②配置主DNS服务器

首先我们做以下假设:A服务器为21php.com的主域名服务器,其IP地址为11.0.0.1,B服务器为21php.com的辅助域名服务器,其IP地址为11.0.0.2; 

下面我们配置服务器11.0.0.1为21PHP.COM的主DNS服务器 

Linux下的dns功能是通过bind软件实现的。bind软件安装后,会产生几个固有文件,分为两类,一类是配置文件在/etc目录下,一类是dns记录文件在/var/named目录下。加上其他相关文件,共同设置dns服务器。下面是所有和dns设置相关文件的列表与说明。 

位于/etc目录下的有:hosts,host.conf,resolv.conf,named.boot,named.conf。 

1、“hosts”文件,定义了主机名和ip地址的对应,其中也有将要运行dns这台电脑的ip地址和主机名。内容: 

127.0.0.1 localhost.localdomain localhost 

2、“host.conf”文件[Boban注:原来误写成hosts.conf],"order hosts bind"语句,指定了对主机名的解析顺序是先到hosts中查找,然后到dns服务器的记录里查找。“multi on”则是允许一个主机名对应多个ip地址。内容: 

order hosts, bind 

multi on 

nospoof on 

3、“resolv.conf”文件,“nameserver 10.0.0.211”指定了dns服务器的地址。注意,这个文件对普通非dns服务器的电脑(非windows的系统;Windows系统是在“网络属性”中设置这项的)来说,是必不可少的。你如果没有设置本机为dns服务器,你又要能够解析域名,就必须指定一个dns服务器的地址。你可以最多写上三个地址,作为前一个失败时的候选dns服务器。“domain zrs.com”指定默认的域。文件内容: 

domain 21php.com 

nameserver 11.0.0.1 

4、“named.boot”文件是早期版本的bind软件使用的配置文件,现在新版本中已经让位于“named.conf”。named.conf是dns server配置的核心文件。下面我们一段一段的来解说。 

# named.conf - configuration for bind 

# Generated automatically by bindconf, alchemist et al. 

controls { 

inet 127.0.0.1 allow { localhost; } keys { rndckey; }; 

}; 

include "/etc/rndc.key";options { 

directory "/var/named/"; 

}; 

zone "." { 

type hint; 

file "named.ca"; 

}; 

zone "0.0.127.in-addr.arpa" { 

type master; 

file "0.0.127.in-addr.arpa.zone"; 

}; 

zone "localhost" { 

type master; 

file "localhost.zone"; 

}; 

zone "21php.com" { 

type master; 

notify yes; 

file "21php.com"; 

}; 

上文中#为注释符号, 其他各行含义如下: 

diretory /var/named 

指定named从 /var/named 目录下读取DNS数据文件,这个目录用户可自行指定并创建,指定后所有的DNS数据文件都存放在此目录下; 

zone "." { 

type hint; 

file "named.ca"; 

}; 

指定named从 named.ca 文件中获得Internet的顶层“根”服务器地址 。 

zone "0.0.127.in-addr.arpa" { 

type master; 

file "0.0.127.in-addr.arpa.zone"; 

}; 

指定named作为127.0.0网段地址转换主服务器,named.local文件中包含了127.0.0.*形式的地址到域名的转换数据(127.0.0网段地址是局域网接口的内部 loopback地址); 

zone "localhost" { 

type master; 

file "localhost.zone"; 

}; 

指定包含localhost的DNS文件数据存放在/var/named/localhost.zone中; 

zone "21php.com" { 

type master; 

notify yes; 

file "21php.com.zone"; 

}; 

以上语句表明域21php.com的DNS数据存放在/var/named/目录下的21php.com.zone中; 

我们可以用文本编辑器打开/var/named/21php.com.zone,其内容如下: 

$TTL 800 @ IN SOA @ root.localhost ( 

2 ; serial 

28800 ; refresh 

7200 ; retry 

604800 ; expire 

800 ; ttl 

@ IN NS localhost 

www IN A 11.0.0.233 

www2 IN A 11.0.0.23 

forum IN A 11.0.0.10 

@ IN MX 5 mail.21php.com. 

该文件的前部分是相应的参数设置,此部分不需要改动,后面的部分就是具体的DNS数据; 

例如: 

www IN A 11.0.0.233 

将www.21php.com 解析到地址11.0.0.233; 

www2 IN A 11.0.0.23 

将www2.21php.com 解析到地址11.0.0.23; 

club IN A 11.0.0.10 

将club.21php.com 解析到地址11.0.0.10; 

③配置辅助DNS服务器

配置服务器11.0.0.2为21php.com辅助dns服务器 

辅助DNS服务器,可从主服务器中转移一整套域信息。区文件是从主服务器中转移出来的,并作为本地磁盘文件存储在辅助服务器中。在辅助服务器中有域信息的完整拷贝,所以也可以可以回答对该域的查询。这部分的配置内容如下: 

zone "21php.com" IN { 

type slave; 

file "21php.com.zone"; 

masters { 11.0.0.1; }; 

}; 

可以看到,和主DNS服务器不同地方就是:“type”改为了“slave”,然后指明了主DNS服务器的地址“masters { 11.0.0.1; };”。DNS服务启动时,就会自动连接11.0.0.1,读取21php.com域的信息,然后保存到本机的21php.com.zone文件里。 

④测试DNS服务器 

改动过DNS的相应文件,用“ndc restart”命令重新启动服务,在redhat 7.1以上版本中使用命令: 

/etc/rc.d/init.d/named restart 

或者

/etc/rc.d/init.d/named reload

使改动生效。 

要测试DNS,可以找一台客户机,把它的DNS地址设成新建立的DNS服务器地址,然后试试上网,收信,下载等。也可以使用nslookup命令:运行nslookup,输入要查询的主机名,看是否返回正确的ip地址,在redhat 7.1以上版本中推荐使用dig命令。

注:以上分别在REDHAT 6.1 REDHAT 9 测试过

Linux下的DNS配置

  如果您经常畅游互联网,那么一定了解网站的域名,在浏览器中打上http://www.si-bay.com等有一定含义的域名就可以访问矽霸网或其他网站,而不必去记忆枯燥的IP地址,实在是好记又好用。 

  局域网中如何实现Intranet,构建企业内部网的Web服务器或者其他服务器,使用和配置DNS就显得尤其重要。下面就Linux下配置DNS作一些粗浅探讨。 

  Linux下如果为服务器安装模式,可先行选定安装DNS,安装完成后运行服务配置命令ntsysv,设定启动Linux时启动DNS服务。 

  DNS的服务进程为named,启动后可以为DNS客户机提供域名解析服务,把域名转换成IP地址以及将IP地址转换成域名。 

  1、named启动时需要读取/etc/named.boot,所以/etc/named.boot 是named的基本配置文件。在/etc/named.boot中将指定正向域名转换数据文件和建立反向DNS数据文件以及顶层域名服务器文件和后备DNS。此文件示例如下: 

  ·diretory /var/named 

  指定named从/var/named目录下读取DNS数据文件。 

  ·primary qyweb.com dns.hosts 

  指定dns作为qyweb.com域的主域名服务器,dns.hosts文件中包含所有*. qyweb.com形式的域名转换数据。 

  ·primary 0.0.127.IN-ADDR.ARPA dns.local 

  指定dns作为127.0.0网段地址转换主服务器,dns.local文件中包含了 127.0.0.*形式的地址到域名的转换数据。 

  ·primary 26.230.10.IN-ADDR.ARPA dns.rev 

  指定dns作为10.230.26网段地址转换主服务器,dns.rev文件中包含了所有10.230.26.*形式的地址到域名的转换数据。 

  ·cache db.cache 

  指定dns从db.cache文件中获得 Internet的顶层“根”服务器地址。 

  在与named.boot同一目录下还有一个named.conf,主要作用是定义DNS服务器的域名检索方式。可参照 named.boot进行相应变动。 

  2、正向域名转换数据文件dns.hosts中包括所有在qyweb.com域内的主机节点。 

  @ IN SOA dns.qyweb.com manager.dns.qyweb.com. 

  (199511301 

  28800 

  7200 

  3600000 

  800) 

  NS dns.qyweb.com. 

  MX 10 dns.qyweb.com. 

  Localhost A 127.0.0.1 

  dns A 10.230.26.5 

  www A 10.230.26.6;如果与dns同一台机器,则ip同上 

  mail MX 7 dns.qyweb.com.;主机名后必须带一个“.” 

  ftp CNAME dns.qyweb.com.;主机名后必须带一个“.” 

  SOA记录定义了域名数据的基本信息。 

  NS记录和MX记录定义了域名服务器本身的域名和username@ qyweb.com形式邮件地址所对应的邮件服务器名字。 

  A记录是DNS域名到IP地址的记录,是必须有的。以dns.qyweb.com为例,在A记录中域qyweb.com被省略,只写成ns,named在处理时会根据named.boot中的定义自动加上 qyweb.com,而其对应IP地址为 10.230.26.5。 

  MX记录是邮件地址转换记录,本例中定义了将username@ mail.qyweb.com的邮件地址转换成username@dns.qyweb.com,即实际上真正的邮件服务器是dns.qyweb.com,其中dns.qyweb.com的优先数为7,通常邮件首先被发往优先数小的主机 dns.qyweb.com。 

  CNAME记录定义了一些主机的别名。 

  3、反向DNS数据文件dns.local 和dns.rev提供根据IP地址查询相应 DNS主机名,每个网段分别有一个数据文件。对于内部网段127.0.0通常只有一个地址,即127.0.0.1 loopback 地址,dns.local内容如下: 

  @IN SOA dns.qyweb.com manager.dns.qyweb.com. 

  (1997022700 ; Serial 

  28800 ; Refresh 

  14400 ; Retry 

  3600000 ; Expire 

  800) ; Minimum 

  INNS dns.qyweb.com. 

  1 IN PTR localhost. 

  而外部网段的数据文件dns.rev中包含所有主机IP地址到DNS主机名的转换数据。dns.rev内容如下: 

  @SOA dns.qyweb.com. manager.dns.qyweb.com.( 

  199609206;Serial 

  28800;Refresh 

  7200;Retry 

  604800;Expire 

  800);Minimum TTL 

  NS dns.qyweb.com. 

  5 PTR dns.qyweb.com.;主机名要附加一个“.” 

  6 PTR www.qyweb.com.; 

  2 PTR proxy.qyweb.com.; 

  其中主要部分是PTR记录,PTR 记录中的IP地址都只有主机号,named会根据named.boot的定义自动加上前面的网络号。 

  4、 db.cache 

  在Linux系统上通常在/var/named或者/etc下已经提供了一个 named.ca,该文件文件中包含了 Internet的顶层域名服务器,最好从 Internic下载最新的版本。 

  5、改动注意事项 

  (1)增加或删除域中主机时需要同时修改正向域名转换数据文件dns.hosts中的A记录和反向DNS数据文件dns.rev中的PTR记录。 

  (2)IP网段增加一个时(10.230. 27.0),在/etc/named.boot增加: 

  primary 27.230.10.IN-ADDR.ARPA dns.rev1 

  而反向DNS数据文件则增加一个定义10.230.27.0网段的文件dns.rev1,其格式与ndns.rev类似。 

  (3)DNS服务器只能从服务于企业内部网/etc/named.boot中的cache行去除。 

  (4)建立后备DNS服务器dns1.qyweb.com,IP地址为 10.230.26.10。 

  在主服务器上修改dns.hosts,加入dns1.qyweb.com的有关记录,并增加一个NS记录,使主服务器上的 named.hosts成为下列内容: 

  @ IN NS dns1.qyweb.com. 

  dns1 A 10.230.26.10 

  dns2 CNAME dns1.qyweb.com. 

  然后对主服务器上的各个反向 DNS 数据文件做类似的修改,增加有关后备服务器的NS记录,然后重新起动named。 

  后备DNS服务器的配置:创建的配置文件只有named.boot和 db.cache,格式与主服务器相似。named.boot 内容为: 

  directory /var/named 

  secondary qyweb.com 10.230.26.5 dns.hosts 

  secondary 0.0.127.IN-ADDR.ARPA 10.230.26.5 dns.local 

  secondary 26.230.10.IN-ADDR.ARPA 10.230.26.5 dns.rev 

  cache . db.cache 

  而后备DNS服务器的db.cache 通常由系统管理员从主服务器上拷贝过来即可。 

  配置文件完成后可以进行启动和测试named,利用Linux命令ndc,用 ndc启动named。使用nslookup进行正向 DNS 解析与反向 DNS解析检查: 

  #nslookup dns.qyweb.com 

  #nslookup 10.230.26.5 

  MX邮件地址记录检查: 

  #nslookup 

  >set q=mx 

  mail.qyweb.com 

  CNAME别名记录检查: 

  # nalookup 

  >sett q=cname 

  ftp.qyweb.com,nslookup 

  以上各项测试均应能反映出相应正确的IP地址或域名。 

  如果一切测试正常的话,那么DNS的配置就基本完成了,但如果您要在Linux服务器上添加新服务时,最好再进行一次如上过程的检查以确保DNS服务通畅。下载本文

显示全文
专题