DNS域名解析服务
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DNS域名解析服务相关的知识,希望对你有一定的参考价值。
DNS域名解析服务
简介
人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个域名只可以对应一个ip地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。
原理
当你的网站制作完成后上传到你的虚拟主机时,你可以直接在浏览器中输入IP地址浏览你的网站,也可以输入域名查询你的网站,虽然得出的内容是一样的但是调用的过程不一样,输入IP地址是直接从主机上调用内容,输入域名是通过域名解析服务器指向对应的主机的IP地址,再从主机调用网站的内容。
实验介绍
- DNS正、反向解析
- DNS主从服务器的配置
- 分离解析
实验准备
两台Linux虚拟机(要求在同一网段,并且能够互连互通)
实验过程
首先介绍下DNS的正、反向解析
- 正向解析
[[email protected] ~]# rpm -ivh /mnt/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm //rpm一键安装DNS的软件包bind
warning: /mnt/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing... ########################################### [100%]
1:bind ########################################### [100%]
[[email protected] ~]# rpm -qc bind //查看bind软件包的配置文件
/etc/logrotate.d/named
/etc/named.conf
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
安装好之后就要进行配置文件的修改了,首先修改主配置文件
[[email protected] ~]# vim /etc/named.conf
listen-on port 53 { 127.0.0.1; }; //监听地址改为DNS服务器的IP地址
allow-query { localhost; }; //允许解析的用户,修改为any 所有人
然后进行修改区域配置文件
[[email protected] ~]# vim /etc/named.rfc1912.zones
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
}; //上面是模板,可以复制到下面
zone "benet.com" IN {
type master;
file "benet.com.zone"; //工作文件
allow-update { none; };
};
最后是配置区域数据库文件
[[email protected] ~]# cd /var/named/ //切换目录到dns的区域数据库目录下
[[email protected] named]# ls -l
总用量 28
drwxrwx---. 2 named named 4096 8月 14 2013 data
drwxrwx---. 2 named named 4096 8月 14 2013 dynamic
-rw-r-----. 1 root named 1892 2月 18 2008 named.ca
-rw-r-----. 1 root named 152 12月 15 2009 named.empty
-rw-r-----. 1 root named 152 6月 21 2007 named.localhost
-rw-r-----. 1 root named 168 12月 15 2009 named.loopback
drwxrwx---. 2 named named 4096 8月 14 2013 slaves
[[email protected] named]# cp -p named.localhost benet.com.zone //保留原来权限复制一个区域数据库文件并命名为benet.com.zone
[[email protected] named]# ls
benet.com.zone data dynamic named.ca named.empty named.localhost named.loopback slaves
然后进行修改
[[email protected] named]# vim benet.com.zone //编辑区域数据库文件
$TTL 1D //生命周期
@ IN SOA @ rname.invalid. ( //@表示变量 后面是资源起势变量 要修改为benet.com. admin.benet.com.
0 ; serial //序列号
1D ; refresh //刷新时间
1H ; retry //多长时间重试连接
1W ; expire //最长的重试连接时间
3H ) ; minimum //无效缓存清除的时间
NS @ //服务器名称 这里需要修改为 benet.com.
A 127.0.0.1 //主机地址 这里修改为192.168.10.16
AAAA ::1 //IPV6的地址 这里不要 直接删除 然后在下面插入
IN MX 5 benet.com.
mail IN A 192.168.100.16
www IN A 192.168.100.88
ftp IN A 192.168.100.99
* IN A 192.168.100.200 //表示查找不存在的网页时会指向192.168.100.200
此时关闭DNS服务器的防火墙和增强性安全功能就可以开启DNS服务了
[[email protected] named]# service iptables stop
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
[[email protected] named]# setenforce 0
[[email protected] named]# service named start
Generating /etc/rndc.key: [确定]
启动 named: [确定]
此时还没有结束,我们要添加一个DNS服务器指向下/etc/resolv.conf目录下,然后查看下端口是否开启,就可以进行解析了
[[email protected] named]# netstat -tnl
tcp 0 0 192.168.100.16:53 0.0.0.0:* LISTEN //tcp协议的 53端口开启了
[[email protected] named]# host www.benet.com
www.benet.com has address 192.168.100.88
[[email protected] named]# host ftp.benet.com
ftp.benet.com has address 192.168.100.99 //可以看到全部解析出来了
[[email protected] named]# host abc.benet.com
abc.benet.com has address 192.168.100.200
- 反向解析
下面介绍下反向解析,直接修改区域配置文件
[[email protected] named]# vim /etc/named.rfc1912.zones
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
}; //上面的部分是模板,可直接复制到下面进行修改
zone "100.168.192.in-addr.arpa" IN {
type master;
file "benet.com.local";
allow-update { none; };
};
然后是修改区域数据库文件
[[email protected] named]# cp -p benet.com.zone benet.com.local //保留权限的复制
[[email protected] named]# vim benet.com.local //编辑反向区域数据库文件
$TTL 1D
@ IN SOA benet.com. admin.benet.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS benet.com.
A 192.168.100.16
16 IN PTR mail.benet.com.
88 IN PTR www.benet.com.
99 IN PTR ftp.benet.com. //反向解析配置
然后重新加载配置文件
在进行反向解析测试
[[email protected] named]# host 192.168.100.16
16.100.168.192.in-addr.arpa domain name pointer mail.benet.com.
[[email protected] named]# host 192.168.100.88
88.100.168.192.in-addr.arpa domain name pointer www.benet.com.
[[email protected] named]# host 192.168.100.99
99.100.168.192.in-addr.arpa domain name pointer ftp.benet.com.
试验成功
3.DNS主从服务器的配置
首先安装配置主服务器的主配置文件、区域配置文件、区域数据库文件
[[email protected] ~]# vim /etc/named.conf
listen-on port 53 { any; }; //监听地址改为所有人
allow-query { any; }; //允许解析所有地址
[[email protected] ~]# vim /etc/named.rfc1912.zones
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
}; //模板
zone "benet.com" IN {
type master; //类型 主服务器
file "benet.com.zone";
allow-transfer { 192.168.100.16; }; //转移指向从服务器的IP地址
};
[[email protected] ~]# cd /var/named/
[[email protected] named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[[email protected] named]# cp -p named.localhost benet.com.zone //保留权限复制
[[email protected] named]# vim benet.com.zone //编辑区域数据库配置文件
$TTL 1D
@ IN SOA benet.com. admin.benet.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS benet.com.
A 192.168.100.4
IN MX 5 benet.com.
mail IN A 192.168.100.4
www IN A 192.168.100.88
ftp IN A 192.168.100.99
[[email protected] named]# echo "namedserver 192.168.100.4" > /etc/resolv.conf
主服务器配置好之后先不开启服务,我们接着配置从服务器
[[email protected] ~]# vim /etc/named.conf
listen-on port 53 { any; };
allow-query { any; };
[[email protected] ~]# vim /etc/named.rfc1912.zones
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
}; //模板
zone "benet.com" IN {
type slave; //从服务器
masters { 192.168.100.4;}; //向主服务器学习
file "slaves/benet.com.zone;" // 文件存放位置
};
[[email protected] ~]# echo "nameserver 192.168.100.16" > /etc/resolv.conf //DNS指向
此时先开启主服务器的DNS服务 ,然后在开启从服务器的DNS服务 ,会发现从服务器自主学习到了区域数据库配置文件
[[email protected] named]# cd /var/named/slaves/
[[email protected] slaves]# ls
benet.com.zone
以上就是主从服务器的配置了
- 分离解析
分离解析主要是指根据不同的客户端提供不同的域名解析记录,下面是分离解析的实验拓扑图
首先DNS域名解析服务器(Linux)要配置双网卡
添加好之后,点击完成,就可以识别到双网卡了,然后进行网卡配置
[[email protected] network-scripts]# cp ifcfg-eth0 ifcfg-eth1 //复制网卡一的配置文件
[[email protected] network-scripts]# vim ifcfg-eth1 //进行网卡eth1的配置
DEVICE=eth0 //名称改为eth1
HWADDR=00:0C:29:26:75:17
TYPE=Ethernet
UUID=721152db-6a08-4527-aebc-3ee130bd91d0 //这里不要,删除
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.100.4 //IP地址修改为外网网关地址12.0.0.1
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
[[email protected] network-scripts]# vim ifcfg-eth0 //网卡eth0的配置
DEVICE=eth0
HWADDR=00:0C:29:26:75:17
TYPE=Ethernet
UUID=721152db-6a08-4527-aebc-3ee130bd91d0
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.100.4 //修改IP地址为192.168.100.1
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
修改完成后,重启网络服务后配置两台win7的网卡信息
然后rpm一键安装DNS服务的软件包bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm,进行配置文件的修改
[[email protected] ~]# rpm -ivh /mnt/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm
warning: /mnt/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing... ########################################### [100%]
1:bind ########################################### [100%]
[[email protected] ~]# vim /etc/named.conf
listen-on port 53 { 127.0.0.1; }; //监听地址修改为any
allow-query { localhost; }; //允许解析的地址修改为any
[[email protected] ~]# vim /etc/named.rfc1912.zones
view "lan" {
match-clients { 192.168.100.0/24; };
zone "benet.com" IN {
type master;
file "benet.com.zone.lan";
};
zone "." IN {
type hint;
file "named.ca";
};
};
view "wan" {
match-clients { any; };
zone "benet.com" IN {
type master;
file "benet.com.zone.wan";
};
};
//添加如上内容并删除下面的所有配置内容
最后修改区域数据库配置文件
[[email protected] ~]# cd /var/named/
[[email protected] named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[[email protected] named]# cp -p named.localhost benet.com.zone.lan
[[email protected] named]# cp -p named.localhost benet.com.zone.wan
[[email protected] named]# vim benet.com.zone.lan
$TTL 1D
@ IN SOA @ rname.invalid. ( //rname.invalid.修改为admin.benet.com.
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1 //修改为主机IP地址,即192.168.100.1
AAAA ::1 //这里删除,添加下面的内容
www IN A 192.168.100.88
[[email protected] named]# vim benet.com.zone.wan
$TTL 1D
@ IN SOA @ rname.invalid. ( //rname.invalid.修改为admin.benet.com.
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1 //修改为主机IP地址,即12.0.0.1
AAAA ::1 //这里删除,添加下面的内容
www IN A 12.0.0.1
重启DNS服务
就可以进行解析了
以上是关于DNS域名解析服务的主要内容,如果未能解决你的问题,请参考以下文章
DNS分离解析和智能解析 1构建DNS域名服务器的分离解析 DNS分离解析域名服务器概述 DNS分离解析域名服务器实际也是主域名DNS服务器,这里所说的分离解