首页 > 代码库 > linux-dns
linux-dns
Linux-DNS
引述:日志在马哥视频公开课基础上编写,感谢马哥
一、概念
DNS:Domain Name Service
名称解析:将一种格式的信息转化为另外一种格式,以某关键字为标准查找某一数据库的过程
DNS 域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,
从功能上可以实现正向解析和反向解析。
FQDN:Full Qualified Domain Name 完全域名解析
FQDN --> IP 正向解析
IP --> FQDN 反向解析
查询:
递归查询:用于客户机向DNS服务器查询,只发出一次请求,最终能得到最终答案
迭代查询:用于DNS服务器向其他DNS服务器查询,发出多次请求。
DNS服务器的类型(从工作形式上分为)
主DNS服务器:在特定区域内具有唯一性、负责维护该区域内的域名与IP地址对应情况。
从(辅助)DNS服务器:从主服务器中获得域名与IP对应关系并维护,以防主服务器宕机等情况。
缓存名称服务器:通过向其他域名解析服务器查询获得域名与IP地址对应关系,以提高重复查询时的效率。
DNS服务协议分布式的数据库系统:
根域
.org .net .com .edu .gov .others
google meeyu facebook
www web1 web2
注:上级仅知道其直接下级,下级只知道根(.)位置。
二、安装bind程序
Bind(Berkeley InternetName Daemon)伯克利互联网域名服务。
#yuminstall -y bind bind-chroot
/usr/sbin/named //主程序
/etc/named.conf //主配置文件
/etc/named.rfc1912.zones //区域配置文件.
DNS的数据库文件(区域数据文件,区域自身有名字):文本文件,只能包含资源记录或宏定义,每行一个,数据库中的,每一个条目称为一个资源记录(Resource Record RR)
资源记录的格式:
name [ttl(缓存时间)] IN 资源记录类型(RRtype) Value
例子:
www 600(单位s) IN A 1.2.3.4
www.meeyu.com. 600 IN A 1.2.3.4
name:只能是区域名称,通常可以简写为@
value:有n个数值,最主要的是主DNS服务器的FQDN,点不可省略
注意:SOA必须是区域数据库文件第一条记录
例子:
@600 IN NS ns
SOA(Start of authority)起始资源记录
ZONENAME TTL IN SOA FQDN admin_mailbox (
serialnumber //版本号,注释内容,十进制数据,不能超过10位,通常使用日期
refresh //刷新时间,多久检查一次主服务器;
retry //刷新失败后,重试时间,应小于refresh
expire //过期时间
nattl ) //否定答案缓存时间
资源记录类型:
NS:可以有多条
l A:只能定义在正向区域数据文件中,name:FQDN(可以使用相对名称) value:IP
www 600(单位s) IN A 192.168.100.120
l PTR:IP --> FQDN,只能定义在反向区域数据文件中
120 600 IN PTR www.meeyu.com.
l MX:可以有多个,name:区域名称,用于标识smtp服务器; value:包含优先级和FQDN,优先级:0-99,数字越小,级别越高,
@ 600 IN MX 10 mail
CNAME:别名,name :FQDN ;value :FQDN
ftpIN CHANE www
三、实例
1.备份文件:
# cp/etc/named.conf{,.bak}
# cp /etc/named.rfc1912.zones{,.bak}
2.编写配置文件:
修改主配置文件
# vim /etc/named.conf
options {
listen-on port 53 { 192.168.100.106; }; //监控本机端口
directory "/var/named"; //文件目录
allow-query { any ; }; //访问 控制
recursion yes; //是否递归
};
修改区域配置文件:
# vim /etc/named.rfc1912.zones //添加域
zone"meeyu.com" IN {
type master;
file "named.meeyu";
};
#zone"100.168.192.in-addr.arpa" IN {
type master;
file "named.106";
};
3.编写区域对应文件
正向区域文件:
#vim /var/named/named.meeyu
$TTL900
meeyu.com. IN SOA ns.meeyu.com.admin.meeyu.com. (
2016010101
12H
15M
2D
6H )
IN NS ns
ns IN A 192.168.100.106
web1 IN A 192.168.100.107
web2 IN A 192.168.100.108
www IN CNAME web1
反向区域文件
# vim /var/named/named.106
$TTL900
@ IN SOA ns.meeyu.com.admin.meeyu.com. (
2016010101
12H
15M
2D
6H )
IN NS ns.meeyu.com.
107 IN PTR web1.meeyu.com.
108 IN PTR web2.meeyu.com.
4.语法检查
name-checkconf 检查主配置文件
named -u named
name-checkzone"区域文件" 配置文件
客户端指向的DNS服务器,一定是允许给本地主机做递归的
域:Domain,逻辑概念
区域:zone,物理概念
5.测试命令:
dig 命令
dig [-t type][-x addr] name @DNS服务器
+[no]trace [不]适用迭代,路由追踪
+[no]tcp 是否使用tcp
+[no]recurse:是否使用递归
host
host[-t type]{name} [server]
nslookup
nslookup>
serverDNS_SERVER_IP
set q=TYPE
{name}
反向解析测试:dig -x IP @Server
6.区域传输
axfr:完全区域传送
ixfr:增量区域传送
注:在主服务器上只允许从服务器传送数据
allow-transfer {192.168.100.110; };
主服务增加允许传送配置:
在正向区域和反向区域同时增加:
区域传送:
用dig模拟完全区域传送
dig -t axfr 区域名称 @server
主从同步:
/etc/resolv.conf
主从:
主:bind版本可以低于从的
主从可以不再同一网段
向区域中添加从服务器的关键两步
在上级获得授权
在区域数据文件中为从服务器添加一条NS记录和对应的A或PTR记录
masters{ip;};
linux-dns