dns配置-阿里云开发者社区

开发者社区> 科技小能手> 正文

dns配置

简介:
+关注继续查看

 二、DNS服务介绍和软件安装

1DNS服务介绍

  • 类型:系统VSystem V)管理的服务

  • 软件包:bindbind-utilsbind-chroot

  • 守护进程:/usr/sbin/named/usr/sbin/rndc

  • 脚本:/etc/init.d/named

  • 端口:53 (domaintcpudp), 953(rndc)

  • 配置文件:(Under /var/named/chroot/) /etc/named.conf, /var/named/*, /etc/rndc.key

  • 相关软件包:caching-nameserver(提供配置文件模板), openssl

 

2、安装

[root@station1~]#rpm -ivh /mnt/cdrom/Server/bind-9.3.3-10.el5.i386.rpm 

 

[root@station1~]#rpm -ivh /mnt/cdrom/Server/bind-libbind-devel-9.3.3-10.el5.i386.rpm 

 

[root@station1~]#rpm -ivh /mnt/cdrom/Server/bind-sdb-9.3.3-10.el5.i386.rpm 

 

[root@station1~]#rpm -ivh /mnt/cdrom/Server/bind-devel-9.3.3-10.el5.i386.rpm 

 

[root@station1~]#rpm -ivh /mnt/cdrom/Server/caching-nameserver-9.3.3-10.el5.i386.rpm 

 

[root@station1~]#rpm -ivh /mnt/cdrom/Server/bind-chroot-9.3.3-10.el5.i386.rpm 

 

3、配置主DNS服务器(192.168.32.31

3.1、环境:Master Serverstation1.kvm.com 192.168.32.31

Slave Serverstation2.kvm.com 192.168.32.32

Cache Serverstation3.kvm.com 192.168.32.33

Cleintstation6.kvm.com 192.168.32.36

域:kvm.com.

3.2、配置主配置文件named.conf

[root@station1~]#cd /var/named/chroot/etc

#安装bind-chroot后所有named相关文件均在/var/named/chroot目录下,位置调整可修改 /etc/sysconfig/named文件 ROOTDIR=/var/named/chroot

[root@station1 etc]#cp -p named.caching-nameserver.conf named.conf

#全局配置选项均在named.caching-nameserver.conf 

[root@station1 etc]#cat named.rfc1912.zones>>named.conf

#各区域配置模板均在named.rfc1912.zones 

[root@station1 etc]#vi named.conf

options { #全局配置

listen-on port 53 { 192.168.32.31; };

#named绑定到指定接口默认:如果缺少listen-on配置,named就会监听所有接口

listen-on-v6 port 53 { ::1; };

directory "/var/named"; #/var/named/chroot/下相对目录

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; }; #允许迭代查询的客户机IP

allow-recursion { any ; }; #允许递归查询的客户机IP

allow-query-cache { localhost; };

#允许查询缓冲的客户机ip,主副服务器可不要此项,缓冲服务器中要此项

allow-transfer { 192.168.32.32; }; #允许下载区域文件的辅助服务器地址

};

logging { #日志相关

channel default_debug {

file "data/named.run";

severity dynamic;

};

};

zone "." IN { #根域,根类型只能是hint

type hint;

file "named.ca";

};

zone "localdomain" IN { #用于本地解析

type master;

file "localdomain.zone";

allow-update { 192.168.32.32; };

};

zone "localhost" IN { #用于本地解析

type master;

file "localhost.zone";

allow-update { 192.168.32.32; };

};

zone "0.0.127.in-addr.arpa" IN { #用于回环解析

type master;

file "named.local";

allow-update { 192.168.32.32; };

};

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 { 192.168.32.32; };

};

zone "255.in-addr.arpa" IN { #广播地址反向解析

type master;

file "named.broadcast";

allow-update { 192.168.32.32; };

};

zone "0.in-addr.arpa" IN {

type master;

file "named.zero";

allow-update { 192.168.32.32; };

};

#以上区域均为模板文件自带,可不修改。以下是自己添加需要解析的域kvm.com

zone "kvm.com" IN {

type master;

file "kvm.com.zone";

allow-update { 192.168.32.32; };

};

zone "32.168.192.in-addr.arpa" IN {

type master;

file "192.168.32";

allow-update { 192.168.32.32; };

};

3.3、配置正向区域文件

[root@station1 etc]#cd ../var/named/

[root@station1 named]#cp localdomain.zone kvm.com.zone

#正向解析区域文件模板localdomain.zone

[root@station1 named]#vi kvm.com.zone

$TTL 86400

@ IN SOA station1.kvm.com. root.kvm.com. (

42 ; serial (d. adams)

15M ; refresh

5M ; retry

1W ; expiry

1D ) ; minimum

IN NS station1.kvm.com.

server1 IN A 192.168.32.30

station1 IN A 192.168.32.31

station2 IN A 192.168.32.32

station3 IN A 192.168.32.33

ftp IN CNAME station3.kvm.com.

www 0 IN A 192.168.32.31 #多个www的解析,可以实现简单负载均衡

www 0 IN A 192.168.32.32

www 0 IN A 192.168.32.33

bbs.kvm.com. IN A 192.168.32.30

$GENERATE 1-200 station$ IN A 192.168.32.$ #连续地址解析

相关说明:

  • 区块文件的内容:

    • 记录集合,从SOA记录开始

    • @符号是一个变量,代表区块的始发地址。始发地址是: /etc/named.confzone说明中指定

    • 注释使用汇编语言模式(;)

  • 注意事项:

    • 若没有使用“点”来终止名称,BIND会在这个名称后补充域的始发地址

    • 如果记录中缺少域字段,BIND会使用前一个记录中的值(危险!如果另一个管理员改变了记录顺序怎么办?)

    • 修改了区块文件后,不要忘记递增系列号码,重载named服务

  • $TTL是全局定义的 

  • 第二行 SOA记录,@取代在/etc/named.conf中指定的域名。 

    • SOA段中的数字,分别为:序列号、刷新、重试、过期、生存期

    • 序列号:序列号用于DNS数据库文件的版本控制。每当数据被改变,这个序列号就应该被增加。 
      刷新:从服务器向主服务器查询最新数据的间隔周期。每一次检查时从服务器的数据是否需要更改,则根据序列号来判别。 
      重试:一旦从服务器尝试连接主服务器失败,下一次查询主服务器的延迟时间。 
      过期:如果从服务器无法连通主服务器,则在经过此时间后,宣告其数据过期。 
      生存期:服务器回答 ‘无此域名’ 的间隔时间。

    • 数字的默认单位为秒。否则:W= 周、D= 日、H= 小时、M= 分钟。

    • station1.kvm.com.:DNS服务器的名称

    • root.kvm.com. 是管理员的邮箱地址

    • NSname server:设置域名服务器的域名

    • MX Mail eXchanger : 设置邮件交换器资源记录

    • CNAME别名

  • 实现连续地址解析

    • $GENERATE 是函数  

    • 1-200 是要循环的变量

    • station$是主机名  

    • 192.168.32.$是对应的IP地址

 

3.4、配置反向解析区域文件

[root@station1 named]#cp named.local 192.168.32

#反向解析区域文件模板named.local

[root@station1 named]#vi 192.168.32

$TTL 86400

@ IN SOA station1.kvm.com. root.kvm.com. (

1997022700 ; Serial

15M ; Refresh

5M ; Retry

3600000 ; Expire

86400 ) ; Minimum

IN NS station1.kvm.com.

31 IN PTR station1.kvm.com.

30 IN PTR server1.kvm.com.

32 IN PTR station2.kvm.com.

33 IN PTR station3.kvm.com.

$GENERATE 1-200 $ IN PRT station$.kvm.com #反向连续域名解析

 

3.4、测试配置文件

[root@station1 named]#service named start

[root@station1 named]# named-checkconf ../../etc/named.conf

#主配置文件测试,无任何输出,表示配置正确 

[root@station1 named]# named-checkzone kvm.com kvm.com.zone

zone kvm.com/IN: loaded serial 42

OK

#区域配置文件测试

 

4、辅助DNS服务器配置(192.168.32.32

主服务器中全局选项要求加入(见主服务器named.conf配置):

allow-transfer { 192.168.32.32; };

 

4.1 [root@station2 etc]# vi named.conf

options {

listen-on port 53 { any; };

listen-on-v6 port 53 { ::1; };

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; };

allow-query-cache { localhost; };

};

logging {

channel default_debug {

file "data/named.run";

severity dynamic;

};

};

zone "." IN {

type hint;

file "named.ca";

};

 

zone "localdomain" IN {

type slave; #指定自己的角色是slave服务器

file "localdomain.zone";

masters { 192.168.32.31; }; #指定主服务器

}; 

zone "localhost" IN {

type slave;

file "localhost.zone";

masters { 192.168.32.31; };

}; 

zone "0.0.127.in-addr.arpa" IN {

type slave;

file "named.local";

masters { 192.168.32.31; };

}; 

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 slave;

file "named.ip6.local";

masters { 192.168.32.31; };

}; 

zone "255.in-addr.arpa" IN {

type slave;

file "named.broadcast";

masters { 192.168.32.31; };

};

zone "0.in-addr.arpa" IN {

type slave;

file "named.zero";

masters { 192.168.32.31; };

}; 

zone "kvm.com" IN {

type slave;

file "slaves/kvm.com.zone"; #相对路径

masters { 192.168.32.31; };

}; 

zone "32.168.192.in-addr.arpa" IN {

type slave;

file "slaves/192.168.32";

masters { 192.168.32.31; };

}; 

[root@station2 etc]#service named start 

[root@station2 etc]#ls /var/named/chroot/var/named/slaves

8 -rw-r--r-- 1 named named 444 12-29 11:17 192.168.32

8 -rw-r--r-- 1 named named 516 12-29 11:13 kvm.com.zone

#自动从主服务器通过区域文件

 

5、缓冲服务器配置(192.168.32.33

[root@station3 etc]# cat named.conf

options {

listen-on port 53 { any; };

listen-on-v6 port 53 { ::1; };

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; };

allow-query-cache { any; }; #必须允许客户查询缓冲,否则客户机无法解析

forward only; #指定只做转发

forwarders { 192.168.32.31; }; #指定将查询转发给主服务器

};

logging {

channel default_debug {

file "data/named.run";

severity dynamic;

};

}; 

注:一般缓存域名服务器都是ISP或者大公司才会使用

 

6、访问控制列表(ACL

6.1、地址匹配列表

  • 适用分号间隔的IP地址列表或者与基于主机的访问控制安全性指令共同使用的子网列表

  • 格式

    • IP地址:192.168.0.1

    • 后续的点:192.168.0.

    • CIDR192.168.0/24

    • 使用叹号(!)来代表相反的结果

  • 按顺序检查匹配列表,找到第一个匹配后就停止

  • 示例:{ 192.168.0.1; 192.168.0.; !192.168.1.0/24; };

 

6.2访问控制列表(ACL

  • 简单地说,ACL将一个名称分配给一个地址列表

  • 一般可以用来代替匹配列表(允许嵌套!)

  • 最好的办法是在/etc/named.conf文件的开始处定义ACL

  • 声明示例

acl "trusted"     { 192.168.1.21; }; acl "classroom"   { 192.168.0.0/24; trusted; }; acl "cracker"     { 192.168.1.0/24; }; acl "mymasters"   { 192.168.0.254; }; acl "myaddresses" { 127.0.0.1; 192.168.0.1; };

 

6.3、内置ACL

  • BIND预定义了四个ACL

none 不匹配任何IP地址

any 匹配所有IP地址

localhost 匹配名称服务器的任何IP地址

localhosts 匹配直接连接的网络

 

6.4、带有基本访问控制选项的/etc/named.conf文件示例:

// acl's make security directives easier to read

acl "myaddresses" { 127.0.0.1; 192.168.0.1; };

acl "trusted" { 192.168.1.21; };

acl "classroom" { 192.168.0.0/24; trusted; };

acl "cracker" { 192.168.1.254; };

options {

# bind to specific interfaces

listen-on port 53 { myaddresses; };

listen-on-v6 port 53 { ::1; };

# make sure I can always query myself for troubleshooting

allow-query { localhost; classroom; cracker; };

allow-recursion { localhost; classroom; !cracker; };

/* don't let cracker (even trusted) do zone transfers */

allow-transfer { localhost; !cracker; classroom; };

# use a recursive, upstream nameserver

forwarders { 192.168.0.254; };

forward only;

};

 

7、客户机配置(192.168.32.36

[root@station6 etc]#vi /etc/reslov.conf

search kvm.com

nameserver 192.168.32.31

 

8、查询工具(dighostnslookup

  • dig

    • 从不读取/etc/nsswitch.conf文件

    • 默认情况是在/etc/resolv.conf文件中只查找nameserver

    • 输出是RFC标准的区块文件格式。该格式被DNS服务器使用,从而使dig对查看DNS解析情况特别有用

    • dig kvm.com :正向查询

    • dig -x 192.168.32.32 :反向查询

    • dig -t mx|SOA|A kvm.com :指定查找类型

    • dig -t axfr example.com. @192.168.32.31 :该命令可显示所有记录

a:全部 ,x:反向, r:递归, f指定服务器为@192.168.32.31@filename根据指定文件查询

 

  • dig +trace kvm.com

    • 读取/etc/resolv.conf文件来判定名称服务器

    • 查询根名称服务器

    • 从根服务器开始追踪一个域名的解析过程

    • 若培训中心的防火墙禁止输出的DNS,则参考注释中的输出示例     

本文转自netsword 51CTO博客,原文链接:http://blog.51cto.com/netsword/497352

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用NAT网关轻松为单台云服务器设置多个公网IP
在应用中,有时会遇到用户询问如何使单台云服务器具备多个公网IP的问题。 具体如何操作呢,有了NAT网关这个也不是难题。
25934 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
7617 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
2578 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
9950 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
9324 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
8149 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
20998 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
2988 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
6200 0
23706
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载