一、DNS的原理;
二、DNS的配置文件;
三、部署DNS域名解析系统;
一、DNS的原理:
1.概述:DNS--域名解析系统;
2.结构:三级、二级、顶级、.为根,全球一共十三个根DNS服务器;
3.FQDN:完全合格域名,主机名(www)+域名后缀(baidu.com),用来描述全球唯一的一台主机;
4.DNS解析记录:
a.主机解析域名过程:找缓存--找hosts文件--netbios(仅限于windows主机)--DNS服务器--上一级DNS服务器
b.查询方法:客户端--通过递归--本地服务器--通过迭代--上游服务器
递归:必须回复,客户端连接自己的DNS
迭代:尽力而为模式,服务器与服务器之间的解析
c.DNS缓存:加快解析速度,减少互联网上DNS查询数据,一般在本地客户机和本地服务器产生DNS缓存;
d.解析分类:
正向解析:将域名解析成IP地址
反向解析:将IP地址解析成域名
e.根据DNS的区域来源不同将DNS服务器分为:缓存服务器、主域名服务器、从域名服务器;
主域名服务器:维护某一个特定区域的地址数据库,自行建立所负责区域的地址数据文件;
从域名服务器:同步主域名服务器的配置文件,通常为DNS服务器的热备份;
缓存服务器:只提供缓存功能,需指定其他DNS服务器为解析来源,加快查询速度;
注:DNS服务所监听的端口号:tcp 53 udp 53,在客户端与dns服务端建立连接时,使用tcp53端口,当进行地址解析传输时,使用udp 53号端口;
二、DNS的配置文件;
1.bind软件:bind主程序、bind-utils客户端工具
2.配置文件:
/etc/named.conf ##主配置文件的目录
/var/named/ ##区域配置文件存放目录
3.区域配置文件:记录DNS条目
$TTL ##生存周期,缓存的DNS记录有效期
SOA ##起始授权机构(主从同步的参数)
NS ##域名服务器记录
MX ##邮件交换记录
PTR ##反向指针记录
CNAME ##别名
* ##泛域名
三、部署DNS域名解析系统:
1.部署主DNS服务器:
a.配置ip、网关、DNS、hosts文件、主机名、关闭防火墙、关闭selinux;
b.配置yum源并安装bind软件包;
c.修改配置文件,定制功能;
d.启动服务;
配置bind主域名服务器:
1.设置网络参数:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
HWADDR="00:0C:29:68:b1:0f"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO=static
IPADDR=192.168.100.150
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
DNS1=202.106.0.20
DNS2=192.168.100.150
:wq
vi /etc/selinux/config
SELINUX=disabled
:wq
chkconfig iptables off
reboot
2.安装bind软件:
rm -rf /etc/yum.repos.d/*
vi /etc/yum.repos.d/1.repo
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
:wq
yum -y install bind
yum -y install bind-utils
3.修改配置文件:
修改主配置文件;
vi /etc/named.conf ##修改如下,可以复制粘贴
options
{
directory "/var/named";
listen-on port 53 { 192.168.100.150; };
query-source port 53;
allow-query { 192.168.100.0/24; };
recursion yes;
};
zone "linuxfan.cn." IN {
type master;
file "linuxfan.cn.zone";
notify yes;
also-notify { 192.168.100.151; };
};
zone "100.168.192.in-addr.arpa" IN {
type master;
file "192.168.100.arpa";
notify yes;
also-notify { 192.168.100.151; };
};
:wq
[root@ns etc]# named-checkconf /etc/named.conf ##测试主配置文件是否有错误
修改正向解析区域配置文件;
cd /var/named/
vim linuxfan.cn.zone
$TTL 86400 ;有效解析记录的默认缓存时间
@ IN SOA linuxfan.cn. root.linuxfan.cn. (
20151211 ; 更新序列号,不能超过10位,主服务器更新后,版本号需要手动递增
1D ; 刷新时间,从服务器多久向主服务器同步
1H ; 重试延时,同步失败后,在此发起同步的时间间隔
1W ; 失效时间,超过该事件若还无法同步,则放弃同步
3H ) ; 地址数据库中不包含的解析记录的默认缓存时间
IN NS ns.linuxfan.cn.
ns IN A 192.168.100.150
IN A 192.168.100.150
IN MX 10 mail.linuxfan.cn.
mail IN A 192.168.100.150
www IN A 192.168.100.150
ftp IN CNAME www
:wq
修改反向解析区域配置文件;
vim 192.168.100.arpa
$TTL 86400
@ IN SOA linuxfan.cn. root.linuxfan.cn. (
20151211 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS ns.linuxfan.cn.
150 IN PTR ns.linuxfan.cn.
150 IN PTR mail.linuxfan.cn.
150 IN PTR www.linuxfan.cn.
150 IN PTR ftp.linuxfan.cn.
:wq
[root@ns named]# named-checkzone linuxfan.cn.zone 192.168.100.arpa ##测试区域数据库配置文件
4.设置配置文件的归属并启动服务;
chown named:named linuxfan.cn.zone 192.168.100.arpa /etc/named.conf ##设置权限,确保named用户有读取的权限
/etc/init.d/named restart
注:若启动named服务时出现:
[root@lwh chroot]# /etc/init.d/named start
Generating /etc/rndc.key:
解决方法:
[root@lwh chroot]# rndc-confgen -r /dev/urandom -a
[root@lwh chroot]# /etc/init.d/named start
chkconfig named on
netstat -utpln |grep 53
5.测试:
windows/linux:
nslookup
server 192.168.100.150
mail.linuxfan.cn
www.linuxfan.cn
exit
扩展:
部署分离解析:
vi /etc/named.conf
options
{
directory "/var/named";
listen-on port 53 { any; };
query-source port 53;
allow-query { any; };
recursion yes;
};
view "internal" {
match-clients {
localhost;
192.168.100.0/24;
};
zone "jd.com." IN {
type master;
file "jd.com.zone";
notify yes;
also-notify { 192.168.100.151; };
};
};
view "external" {
match-clients { any; };
allow-query { any; };
recursion no;
zone "jd.com." IN {
type master;
file "jd.com.wan";
};
};
分离解析:通过在dns服务器上创建视图view的方法,在视图中匹配客户端的地址,进而将客户端的解析请求匹配到不同的区域解析文件,在不同的区域解析文件中
将不同客户端的解析结果进行区分;
配置bind从域名服务器:
1.设置网络参数:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
HWADDR="00:0C:29:68:b1:0f"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO=static
IPADDR=192.168.100.151
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
DNS1=202.106.0.20
DNS2=192.168.100.150
:wq
vi /etc/selinux/config
SELINUX=disabled
:wq
chkconfig iptables off
reboot
2.安装bind软件:
rm -rf /etc/yum.repos.d/*
vi /etc/yum.repos.d/1.repo
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
:wq
yum -y install bind
yum -y install bind-utils
3.修改配置文件:
vi /etc/named.conf ##修改如下,可以复制粘贴,options区域内,除directory配置项(指定区域配置文件的默认存放位置)不可省略外,别的都可以省略;
options {
directory "/var/named";
};
zone "linuxfan.cn" IN {
type slave;
file "slaves/linuxfan.cn.zone";
masters { 192.168.100.150; };
};
zone "100.168.192.in-addr.arpa" IN {
type slave;
file "slaves/192.168.100.arpa";
masters { 192.168.100.150; };
};
:wq
/etc/init.d/named restart
chkconfig named on
netstat -utpln |grep 53
注:若启动named服务时出现:
[root@lwh chroot]# /etc/init.d/named start
Generating /etc/rndc.key:
解决方法:
[root@lwh chroot]# rndc-confgen -r /dev/urandom -a
[root@lwh chroot]# /etc/init.d/named start
4.测试:
windows/linux:
nslookup
server 192.168.100.150
192.168.100.150
www.linuxfan.cn
exit
查看查询日志:
less /var/named/data/named.run
5.注意:当主从搭建完成后,主域名服务器的区域解析文件变化后,必须更改主域名服务器上区域解析文件的更新序列号(递增);
然后重启主域名服务器,再验证从域名服务器的区域解析文件是否同步更新;
配置bind缓存服务器:
添加两块网卡,模式分别为vm1和桥接
1.设置网络参数:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
HWADDR="00:0C:29:68:b1:0f"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO=static
IPADDR=192.168.100.150
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
DNS1=202.106.0.20
DNS2=192.168.100.150
:wq
vi /etc/selinux/config
SELINUX=disabled
:wq
chkconfig iptables off
reboot
dhclient -d eth1 ##获取一个动态ip地址,看到bound字段按ctrl c退出
2.安装bind软件:
vi /etc/yum.repos.d/1.repo
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
:wq
yum -y install bind
yum -y install bind-utils
3.修改配置文件:
vi /etc/named.conf ##修改如下,可以复制粘贴,options区域内,除directory配置项(指定区域配置文件的默认存放位置)不可省略外,别的都可以省略;
options
{
directory "/var/named"; // "Working" directory
dump-file "data/cache_dump.db";
statistics-file "data/named_stats.txt";
memstatistics-file "data/named_mem_stats.txt";
listen-on port 53 { 192.168.100.150; };
query-source port 53;
allow-query { 192.168.100.0/24; };
recursion yes;
};
logging
{
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
:wq
主配置文件中指定的根区域配置文件在/var/named/named.ca中
chown named:named /var/named/named.ca
/etc/init.d/named restart
chkconfig named on
netstat -utpln |grep 53
注:若启动named服务时出现:
[root@lwh chroot]# /etc/init.d/named start
Generating /etc/rndc.key:
解决方法:
[root@lwh chroot]# rndc-confgen -r /dev/urandom -a
[root@lwh chroot]# /etc/init.d/named start
4.测试:
windows/linux:
nslookup
server 192.168.100.150
www.baidu.com
www.sina.com
exit
查看查询日志:
less /var/named/data/named.run
配置bind从域名服务器:
1.设置网络参数:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
HWADDR="00:0C:29:68:b1:0f"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO=static
IPADDR=192.168.100.151
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
DNS1=202.106.0.20
DNS2=192.168.100.150
:wq
vi /etc/selinux/config
SELINUX=disabled
:wq
chkconfig iptables off
reboot
2.安装bind软件:
rm -rf /etc/yum.repos.d/*
vi /etc/yum.repos.d/1.repo
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
:wq
yum -y install bind
yum -y install bind-utils
3.修改配置文件:
vi /etc/named.conf ##修改如下,可以复制粘贴,options区域内,除directory配置项(指定区域配置文件的默认存放位置)不可省略外,别的都可以省略;
options {
directory "/var/named";
};
zone "linuxfan.cn" IN {
type slave;
file "slaves/linuxfan.cn.zone";
masters { 192.168.100.150; };
};
zone "100.168.192.in-addr.arpa" IN {
type slave;
file "slaves/192.168.100.arpa";
masters { 192.168.100.150; };
};
:wq
/etc/init.d/named restart
chkconfig named on
netstat -utpln |grep 53
注:若启动named服务时出现:
[root@lwh chroot]# /etc/init.d/named start
Generating /etc/rndc.key:
解决方法:
[root@lwh chroot]# rndc-confgen -r /dev/urandom -a
[root@lwh chroot]# /etc/init.d/named start
4.测试:
windows/linux:
nslookup
server 192.168.100.150
192.168.100.150
www.linuxfan.cn
exit
查看查询日志:
less /var/named/data/named.run
5.注意:当主从搭建完成后,主域名服务器的区域解析文件变化后,必须更改主域名服务器上区域解析文件的更新序列号(递增);
然后重启主域名服务器,再验证从域名服务器的区域解析文件是否同步更新;
联系客服