域名服务器
域名服务器:
1、域名服务基础:
1)、DNS作用及类型;
2)、安装和配置;
3)、配置文件详解。
2、构建域名服务器:
1)、主域名服务器;
2)、从域名服务器(辅助域名服务器);
3)、分离解析服务器。
一、DNS的作用
域名是为了方便记忆而专门建立的一套地址转换系统,要访问一台互联网上的服务器,最终还必须通过IP地址来实现,域名解析就是将域名重新转换为IP地址的过程。这一过程通过域名解析系统DNS来完成。
1、作用:
正向解析:根据主机名称(域名)查找对应的IP地址。
反向解析:根据IP地址查找对应的主机域名。
2、类型:(网上各种说法都有,由于初学,)
1、主域名服务器:
负责维护这个区域的所有域名信息,是特定的所有信息的权威信息源。也就是说,主域名服务器内所存储的是该区域的正本数据,系统管理员可以对它进行修改。
2、从域名服务器:
当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器中的区域文件内的数据是从另外一台域名服务器复制过来的,并不是直接输入的,也就是说这个区域文件只是一份副本,这里的数据是无法修改的。
3、分离解析服务器:
将相同的域名解析为不同的IP地址,主要用在内网访问时解析成内网的IP地址;在外网访问时,解析成公网的IP地址,主要作用是减轻NAT地址转换的工作压力。
3、DNS的系统工作模式
递归查询:客户端向DNS服务器的查询为递归查询,返回结果要么知道,要么不知道。
迭代查询:(多次询问,多次得到结果,最后定位)
a、一般DNS服务器之间的查询为迭代查询;
b、目标DNS可以向源DNS返回一个近似的结果,可以是其他的目标DNS地址。
c、源DNS会向下一个目标DNS接着查询,直到得到正确的地址。
4、域名结构
FQDN:完全合格域名
#取主机名时,一定要符合FQDN(完全合格域名)。
全球共13台根域,美国10台,欧洲2台,日本一台,中国只有三台镜像版的根域。
目前IPV4结构最多只能支持13台根域。
二、安装与配置
1、安装(bind包安装光盘自带)
yum -y install bind bind-chroot bind-utils
bind:linux的DNS服务器程序.
bind-chroot:bind-chroot是bind的一个功能,使bind可以在一个
chroot的模式下运行.主要出于安全性考虑。
bind-utils:使用nslookup使用测试时必须安装的包。
2、配置文件顺序:
1、主配置文件:/etc/named.conf
声明如何运行DNS;
状态文件和日志文件存放在哪以及DNS的根服务器在哪
options #指明下面定义的为服务器的运行参数;
listen-on prot 53 { any; };
#监听53端口 {当前监听的IP地址;}对外用哪个IP地址提供服务,也就是当前DNS服务器IP地址,多个用any。
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; };
#定义该DNS可供哪个网段IP进行DNS解析,any表示所有;
recursion yes;
#定义是否启用递归查询
allow-transfer { 172.16.100.7; };
#定义从DNS的IP地址;
#定义日志文件信息
2、区域文件:/etc/named.rfc1912.zones
解析哪个域名(www.baidu.com)
zone “baidu.com” IN
#使用zone关键字定义一个域名
type hint;
#定义一个类型,这里共有三种类型。
master:表示定义的是主域名服务器;
slave:表示定义的是从域名服务器;
hint:表示定义的是互联网中的根域名服务器。
3、数据文件:/var/named/
存放具体主机和数据文件的对应关系。
$TTL 1D
1D:生存周期天数
@:这个符号意味着SOA与域是一样的。
IN:表示后面的数据使用的是INTERNET标准。
NS:表示是这个主机是一个域名服务器(指定的区域为DNS服务器的域名或IP地址)。
MX:定义一条邮件记录。
A:定义一条主机名映射为IP地址的记录(正向解析)。
CNAME:定义对应主机的别名。
PTR:定义一长IP地址映射为主机名的记录(反向解析)。
四、搭建DNS
搭建主DNS
1、安装bind包
yum -y install bind
安装成功
2、配置主配置文件:/etc/named.conf
vi /etc/named.conf
#保存退出
3、区域配置文件:/etc/named.rfc1912.zones
vi /etc/named.rfc1912.zones
模版文件
修改配置文件为:
4、修改数据文件:/var/named/
cd /var/named/
#目录下的文件
正向解析:
cp -p named.localhost leng.com.zone
vi leng.com.zone
#保存退出
反向解析:
cp -p named.empty 100.16.172.zone
vi 100.16.172.zone
#保存退出
#6(IP地址的主机位) PTR(反向解析) 解析成的域名
service named start
#文件刷新成功,说明语法没有错。
5、本机测试
#如果提示命令没有找到,则安装下面安装包
yum -y install bind-utils
再次执行nslookup
#地址解析成功
6、进入客户机测试
#如果发现无法解析,则可能是没有设置客户机的DNS
vi /etc/resolv.conf
加入内容:nameserver 172.16.100.6
#保存后重启网络
#可以正常解析了
五、搭建主从DNS服务器
1、进入主DNS服务器(四配置好的那台)
vi /etc/named.conf
service network restart
#重启成功说明语法没有错。
2、进入从DNS服务器(设置IP地址:172.16.100.7)
vi /etc/named.conf
#修改上面两行内容,保存退出。
vi /etc/named.rfc1912.zones
cd /var/named/slaves/
#进入从DNS保存文件目录
#发现里面没有内容
#重启服务后再查看,发现有文件了。
3、客户机测试
设置IP地址为同一网段IP,指定DNS1=172.16.100.7(从DNS服务器IP)
如果没有装bind-utils的话会提示命令找不到。那么安装就行了,这里不再说。
#关闭防火墙
#测试成功
六、搭建分离解析DNS服务器
作用:将相同的域名解析为不同的IP地址
外网访问时,解析成某个IP地址,内网访问时,自动解析成内网IP。
实验环境:
定义内网网段为1.1.1.0/24,外网的实验网段为2.2.2.0/24,设置网关为1.1.1.1和2.2.2.1,由于实验不在同一天,之前的直接给还原了,为了简化IP,所以把IP地址写简单了。
三台虚拟机:
1、第一个网段测试机;
2、网关、分离解析DNS;
3、第二个网段测试机。
1、安装bind包
yum -y install bind
2、修改主配置文件
vi /etc/named.conf
#前面就改两个any就可以,后面修改如下:
将以下两个小段注释掉
在结尾加入内容:
3、修改区域文件
修改内网文件:
vi named.aa
#修改成以上的样子,其他的删除,保存退出。
修改外网的文件:
vi named.bb
3、修改数据文件
cd /var/named/
cp -p named.localhost leng.a.com.zone
cp -p named.localhost leng.b.com.zone
cp -p named.empty 1.1.1.a.zone
cp -p named.empty 2.2.2.b.zone
vi leng.a.com.zone
vi 1.1.1.a.zone
vi leng.b.com.zone
vi 2.2.2.b.zone
4、设置内网地址和测试
vi /etc/sysconfig/network-scripts/ifcfg=eth0
service network restart
注意清除防火墙
iptables -F
setenforce 0
如果nslookup命令没有找到,请执行yum安装bind-utils包
5、设置外网地址和测试
vi /etc/sysconfig/network-scripts/ifcfg=eth0
service network restart
注意清除防火墙
iptables -F
setenforce 0
如果nslookup命令没有找到,请执行yum安装bind-utils包
#测试成功