###一、DNS介绍
DNS(domain name system ) 域名管理系统
由特定的格式组成,用来表示互联网中==某一台计算机或者计算机组的名称==,能够是人更方便的访问互联网,而不用记住能够被机器直接读取的IP地址。
域名的==正向解析==
将主机域名转换为对应的IP 地址,以便网络程序能够通过主机域名访问到对应的服务器主机
域名——>IP A记录
域名的==反向解析==
将主机的IP地址转换为对应的域名,以便网络(服务)程序能够通过IP地址查询到主机的域名
IP——>域名 PTR记录
根域 .
一级域名<顶级域|国家域>
com edu gov org cc io| cn uk us ru ja ko
二级域名
qq.com. baidu.com. google.com.
域名机构
收费<新网|万网> 老牌免费域名:TK顶级域名、TK域名DNS、TK域名商
如果询问一次得到结果 递归查询 C-S 如果询问多次得到结果 迭代查询 S-S
一次递归 多次迭代
dig +trace www.baidu.com 追踪dns解析过程
dig @server www.baidu.com 正向解析查询
dig -x 192.168.0.1 @server 反向解析查询
dig +trace www.baidu.com 追踪一个域名解析过程
###二、DNS服务器搭建
DNS 的域名解析都是 udp/53 . 主从之间的数据传输默认使用tcp/53
DNS软件:
Bind是一款开放源码的DNS服务器软件,Bind由美国加州大学Berkeley(伯克利)分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界上使用最为广泛的DNS服务器软件,支持各种unix平台和windows平台。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发与维护。
需求1:
搭建DNS服务器,能够将www.misshou.io解析成192.168.1.254——>正向解析
环境:
DNS-server:10.1.1.1
client:10.1.1.2
思路:
关闭防火墙和selinux
配置yum源
软件三步曲
了解配置文件(语法|参数配置)——>man 5 xxx.conf
根据需求通过修改配置文件完成服务的搭建
启动服务,开机自启动
测试验证
步骤:
DNS-server上完成:
xxxxxxxxxx
略
略
xxxxxxxxxx
yum -y install bind
yum -y install bind-chroot
xxxxxxxxxx
[root@dns-server ~]# rpm -q bind
bind-9.8.2-0.17.rc1.el6_4.6.x86_64
[root@dns-server ~]# rpm -q bind-chroot
bind-chroot-9.8.2-0.17.rc1.el6_4.6.x86_64
x[root@dns-server ~]# rpm -ql bind
/etc/logrotate.d/named //日志轮转文件
/etc/named //配置文件的主目录
/etc/named.conf 主配置文件
/etc/named.rfc1912.zones zone文件,定义域
/etc/rc.d/init.d/named 启动脚本
/usr/sbin/named 二进制命令
/usr/sbin/named-checkconf 检查配置文件的命令 named.conf named.rfc1912.zones
/usr/sbin/named-checkzone 检查区域文件的命令
/var/log/named.log 日志文件
/var/named 数据文件的主目录
/var/named/data
/var/named/named.ca 根域服务器
/var/named/named.empty
/var/named/named.localhost 正向解析区域文件的模板
/var/named/named.loopback 反向解析区域文件的模板
/var/named/slaves 从dns服务器下载文件的默认路径
/var/run/named 进程文件
主配置文件:
xxxxxxxxxx
vim /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; any; }; 监听方式 ,any表示全网监听
directory "/var/named";
dump-file "/var/named/data/cache_dump.db"; DNS缓存
statistics-file "/var/named/data/named_stats.txt"; 统计
memstatistics-file "/var/named/data/named_mem_stats.txt"; 内存统计
allow-query { localhost; any; }; 允许哪些人可以查询;any代表任何人
recursion yes; 是否递归
dnssec-enable no; dns安全扩展机制(签名认证)
dnssec-validation no;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
说明:
DNSSEC 域名系统安全,他是DNS的安全扩展协议
DLV DNSSEC 后备密钥
这些安全机制的设定,是为了保护DNS服务器与用户之间的数据安全,避免恶意数据对用户的欺骗
zone "." IN { 根域服务器
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
子配置文件:
xxxxxxxxxx
vim /etc/named.rfc1912.zones
...
//定义正向域的模板
zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};
//定义反向的模板
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
# cat /var/named/named.localhost
$TTL 缓存的生存周期
@ = zonename = itcast.com 当前域
IN 互联网
SOA 开始授权
NS dns服务端 nameserver
A ipv4 正向
AAAA IPV6
CNAME 别名
MX 邮件交互记录 5 数字代表优先级 数字越小优先级越高
$TTL 1D
@ IN SOA @ root.itcast.cn. (
0 ; serial 更新序列号
1D ; refresh 更新间隔(从服务器下载数据)
1H ; retry 失败重试
1W ; expire 区域文件的过期时间
3H ) ; minimum 缓存的最小生存周期
根据需求通过修改配置文件来完成服务的搭建
www.misshou.io——>192.168.1.254
xxxxxxxxxx
步骤:
1. 修改主配置文件
[root@dns-server ~]# cp /etc/named.conf /etc/named.conf.bak
[root@dns-server ~]# cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak
[root@dns-server ~]# vim /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; 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 { localhost;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";
};
2. 修改子配置文件,定义域
[root@dns-server ~]# vim /etc/named.rfc1912.zones
增加以下内容:
zone "misshou.io" IN {
type master;
file "misshou.io.zone";
allow-update { none; };
};
3. 在/var/named/创建相应的区域文件
[root@dns-server named]# cp -p named.localhost misshou.io.zone
[root@dns-server named]# cat misshou.io.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS abc.misshou.io.
abc A 10.1.1.1
//以上两行代表当前dns服务器,必须存在
www A 192.168.1.254
4. 启动服务
[root@dns-server named]# /etc/init.d/named start
Generating /etc/rndc.key: [ OK ]
Starting named: [ OK ]
[root@dns-server named]# netstat -nlup|grep 53
udp 0 0 192.168.159.131:53 0.0.0.0:* 4683/named
udp 0 0 10.1.1.1:53 0.0.0.0:* 4683/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 4683/named
udp 0 0 0.0.0.0:45387 0.0.0.0:* 1660/rpc.statd
udp 0 0 ::1:53 :::* 4683/named
[root@dns-server named]#
[root@dns-server named]# named-checkconf /etc/named.conf
[root@dns-server named]# named-checkconf /etc/named.rfc1912.zones
[root@dns-server named]# named-checkzone misshou.io.zone misshou.io.zone
zone misshou.io.zone/IN: loaded serial 0
OK
5.测试验证
[root@client ~]# echo nameserver 10.1.1.1 > /etc/resolv.conf
[root@client ~]# cat /etc/resolv.conf
nameserver 10.1.1.1
[root@client ~]# nslookup www.misshou.io
Server: 10.1.1.1
Address: 10.1.1.1#53
Name: www.misshou.io
Address: 192.168.1.254
[root@client ~]# dig @10.1.1.1 www.misshou.io
需求2:
搭建DNS服务器实现,正向反向解析 192.168.1.254 ——> www.misshou.io
步骤:
xxxxxxxxxx
增加如下几行内容:
zone "1.168.192.in-addr.arpa" IN {
type master;
file "192.168.1.zone";
allow-update { none; };
};
2. 创建相应的区域文件
[root@dns-server ~]# cd /var/named
[root@dns-server named]# vim 192.168.1.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS dns.misshou.io.
254 PTR www.misshou.io.
说明:
1). @ NS dns.misshou.io在正向区域文件里有定义,所以这里不需要指定A记录,如果正向文件里没有定义需要A记录
2). PTR后面对应的域名一定要有点“.”
3. 测试验证
[root@client ~]# nslookup 192.168.1.254
Server: 10.1.1.1
Address: 10.1.1.1#53
254.1.168.192.in-addr.arpa name = www.misshou.io.
思考:
一台DNS服务器是否可以管理多个域?
xxxxxxxxxx
一台DNS服务器,管理多个域,分别:test.net momowu.cc
bbs.test.net 172.16.0.254
ftp.momowu.cc 10.1.1.2
www.test.net 172.16.0.250
###三、主从DNS搭建
ntp-server:10.1.1.4
方法1:
ntp (network time protocol) 端口:123
xxxxxxxxxx
方法2:
xxxxxxxxxx
环境:
master-dns:10.1.1.2
slave-dns:10.1.1.3
ntp-server:10.1.1.4
思路:
步骤:
xxxxxxxxxx