一、DNS—域名系统
DNS的概述
DNS是“域名系统”的英文缩写。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
DNS使用端口
DNS服务使用TCP和UDP的53端口,TCP的53端口用于连接DNS服务器,UDP的53端口用于解析DNS。
DNS域名长度限制
每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符
DNS作用
正向解析:根据域名查找对应的IP地址
反向解析:根据IP地址查找对应的域名
二、DNS的域名结构
www.baidu.com.cn.
主机名 | 子域 | 二级域名 | 顶级域名 | 根域
- DNS系统的结构为分布式数据结构
- 每一级的域名长度限制是63个字符
- 域名总长度则不能超过253个字符
根域
- 位于树状结构最顶层,用"."表示
顶级域
- 一般代表一种类型的组织机构或国家地区;
- 如.net(网络供应商)、.com(工商企业)、.org(团体组织)、.edu(教育结构)、.gov(政府部门)、.cn(中国国家域名)
二级域
- 用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家部门统一管理
子域
- 二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名
主机
- 主机位于域名空间最下层,就是一台具体的计算机
域名与IP地址之间是多对一的关系,一个IP地址不一定只对应一个域名,且一个域名只可以对应一个IP地址
三、DNS服务器类型
主域名服务器
负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。
从域名服务器
当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。
缓存域名服务器
只提供域名解析结果的缓存功能 目的在于提高查询速度和效率,但没有域名数据库。
它从某个远程服务器取得每次域名服务器查询的结果,并将它放在高速缓存中,以后查询相同的信息时用它予以响应。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。
转发域名服务器
负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。
四、配置DNS域名解析服务器步骤
1.Bind安装
//通过YUM安装
yum -y install bind
2.查看配置文件
查看需要修改的配置文件所在路径
rpm -qc bind #查询bind软件配置文件所在路径
- 执行程序/usr/sbin/named
- 配置文件/etc/named.conf
- 解析记录/var/named/
- 模板文件[功能:拷贝参考]var/named/named.localhost
- 区域配置文件/var/named.rfc1912.zones
3.修改主配置文件
options{
@ listen-on port 53 {any 或者 IP地址;};
#监听53端口
directory
#区域数据文件默认存储位置
dump-file
#域名缓存数据库文件的位置
statistics-file
#状态统计文件的位置
memstatistics-file
#内存统计文件的位置
@ allow-query {IP网段;IP网段;};
#允许使用本DNS解析服务的网段[可用any]
修改之后,保存并退出:wq
五、正向解析
1.修改区域配置文件,添加正向区域配置
vim /etc/ named. rfc1912. zone //可在文件里有模版,可复制粘贴后修改
zone "gtt. com" IN { //正向解析gtt.com区域
type master; //类型为主区域
file "gtt. com. zone"; //指定区域数据文件为gtt. com. zone
allow-update { none; };
};
2.配置正向区域数据文件
cd /var/named/
cp -p named.localhost gtt.com.zone //保留源文件的权限和属主的属性复制
vim /var/named/gtt.com.zone
$TTL 1D //设置缓存解析结果的有效时间
@ IN SOA gtt.com. admin.gtt.com. (
0 ; serial //更新序列号
1D ; retry //刷新时间
1H ; refresh //重试延时
1W ; expire //失效时间
3H) ; minimum //无效解析记录的生存周期
NS gtt.com. //记录当前区域的DNS服务器的名称
A 192.168.148.12 //记录主机IP地址
www IN A 192.168.148.12 //记录正向解析
mail IN A 192.168.148.20
ftp IN CNAME www //CNAME使用别名,ftp是www的别名
* IN A 192.168.148.100 //泛域名解析,“*"代表任意主机名
3.启动服务,关闭防火墙
systemctl start named
systemctl stop firewalld
setenforce 0
tail -f /var/log/ messages //如果服务启动失败,可以查看日志文件来排查错误
netstat -anpu | grep named
4.配置正向区域数据文件
vi /etc/resolv.conf //修改完后立即生效
nameserver 192.168.148.12
vi /etc/ sysconfig/network- scripts/ ifcfg-ens33 //修改完后需要重启网卡
DNS1=192.168.148.12
systemctl restart network
5.进行测试,同局域网Win7虚拟机访问
将DNS地址设置为192.168.148.12
打开cmd命令提示符进行域名访问
六、反向解析
1.准备工作请见上文第四章,然后修改区域配置文件,添加反向区域配置
vim /etc/named. rfc1912. zone //文件里有模版,可复制粘贴后修改
zone "148.168.192. in-addr.arpa" IN { //反向解析的地址倒过来写,代表解析192.168.80段的地址
type master;
file "gtt.com.zone.local"; //指定区域数据文件为gtt.com.zone.local
allow-update { none; } ;
2.配置反向区域数据文件
cd /var/named/
cp -p named.localhost gtt.com.zone.local //保留源文件的权限和属主的属性复制
vim /var/named/gtt.com.zone.local
$TTL 1D //设置缓存解析结果的有效时间
@ IN SOA gtt.com. admin.gtt.com. (
0 ; serial //更新序列号
1D ; retry //刷新时间
1H ; refresh //重试延时
1W ; expire //失效时间
3H) ; minimum //无效解析记录的生存周期
NS gtt.com. //记录当前区域的DNS服务器的名称
A 192.168.148.12 //记录主机IP地址
100 IN PTR WWW.gtt.com.
110 IN PTR ftp.gtt.com.
3.启动服务,关闭防火墙
systemctl restart named
host 192.168.148.100
// 将会反向解析出域名www.gtt.com.
4.进行测试,同局域网Win7虚拟机访问
使用nslookup IP地址来反向解析出域名
七、主从服务器
从服务器的作用是同步主服务器的解析文件[热备]
1.修改配置文件
- allow-transfer 允许转让
- allow-updata 允许动态更新
vim/etc/named.rfc1912.zone
zone "gtt.com" IN {
type master;
file "gtt.com.zone";
#allow-update { none; };
allow-transfer { 192.168.148.112; };
#将allow-updata改为transfer
#allow-transfer为允许转让
#{}的值为从服务器的DNS
};
zone "148.168.192.in-addr.arpa" IN {
type master;
file "gtt.com.zone.local";
#allow-update { none; };
allow-transfer { 192.168.148.112; };
};
2.添加从服务器DNS地址
以客户机的身份设置从服务器DNS
vim /etc/resolv.conf
nameserver 192.168.148.12 //主服务器
nameserver 192.168.148.112 //从服务器
3.从服务器宿主机配置
vim /etc/named.conf
listen-on port 53{} //值为any
allow-query{} //值改为any
vim /etc/named.rfc1912.zone
zone "gtt.com" IN {
type slave; #类型为从区域
masters { 192.168.148.12; } ; #指定主服务器的IP地址
file "slaves/gtt. com. zone"; #下载的区域数据文件保存到slaves/目录下
};
zone "148.168.192. in-addr.arpa" IN {
type slave;
masters { 192.168.148.12; } ;
file "slaves/gtt.com.zone.local" ;
};
4.验证从服务器是否已经将主服务器的区域数据配置文件备份
systemctl restart named #此时会在目录中生成一个slave
使用主服务器了,重启dns域名解析服务,然后进行dns测试,我们是在主服务器上,但是是以客户机身份进行访问,可以看到下图,当主服务器没有任何问题时,首选主服务器,当我们将主服务器的dns服务关闭时,则通过从服务器来进行访问
5.实现主从实时更新
进入主服务器主配置文件
正向反向解析中添加also-notify { 从IP; };
vim /etc/named.rfc1912.zones
zone "gtt.com" IN {
type master;
file "gtt.com.zone";
also-notify { 192.168.148.12; };
allow-transfer { 192.168.148.12; };
};
进入主服务器解析配置文件
serial 值大于从服务器的即可
$TTL 1D
@ IN SOA xx.xx. admin.xx.xx. (
12345678 ; serial
//默认为0修改它
//不要大于10位数
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS xx.xx.
A 192.168.148.12
www IN A 192.168.148.12
八、DNS服务器分离解析
根据不同的客户都安提供不同的域名解析记录
内网用户提供内网IP地址
外网用户提供外网IP地址
在网关服务器提供DNS分离服务
1.修改配置文件
配置环境需要双网卡,这边网卡配置就不具体说明了
2.修改主配置文件
options{
@ listen-on port 53 {any 或者 IP地址;};
#监听53端口
directory
#区域数据文件默认存储位置
dump-file
#域名缓存数据库文件的位置
statistics-file
#状态统计文件的位置
memstatistics-file
#内存统计文件的位置
@ allow-query {IP网段;IP网段;};
#允许使用本DNS解析服务的网段[可用any]
修改之后,保存并退出:wq
3.修改区域配置文件
vim /etc/named.rfc1912.zones
view "lan" { //定义内网view,view代表容器分割
match-clients { 192.168.148.0/24; }; //匹配内网网段
zone "gtt.com" IN { //设置要解析的区域
type master;
file "gtt.com.zone.lan"; //数据配置文件
};
zone "." IN { //可将根域配置从主配置文件
type hint; //hint是根区域类型
file "named.ca";
};
};
view "wan" { //定义外网view
match-clients { any; }; //匹配除了内网网段以外的任意地址
zone "gtt.com" IN {
type master;
file " gtt.com.zone.wan";
};
};
4.创建内网外网解析文件
cp -p named.localhost gttt.com.zone.lan
$TTL 1D
@ IN SOA gtt.com. admin.gtt.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS gtt.com.
A 192.168.148.12
www IN A 192.168.148.1
cp -p named.localhost gtt.com.zone.wan
$TTL 1D
@ IN SOA gtt.com. admin.gtt.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum NS @
NS gtt.com.
A 12.0.0.1
www IN A 12.0.0.1
5.进行测试,并用虚拟机访问
进入内网客户机的Linux中
进入外网客户机Win7虚拟机