DNS域名解析服务
一、DNS域名解析服务概述
1、介绍
DNS就是域名系统,是因特网中的一项核心服务,是用于实现域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,通过主机名,得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。
DNS使用的协议及端口号:
DNS的默认端口为53
DNS端口分为TCP和UDP:
1.TCP是用来做区域传送,多用于主从同步
在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息
2.UDP是用来做DNS解析的
FQDN:完全合格域名
FQDN=主机名+域名
例如:主机名是www,域名是sina.com,那么它的FQDN就是www.sina.com
2、域名结构解析(树状图结构)
顶级域名分类:
1.国家顶级域:cn(中国),jp(日本),uk(英国),us(美国)
2.通用顶级域:com(商业机构),net(网络服务机构),gov(政府机构),org(非盈利性组织)
3.基础结构顶级域:arpa(从ip到域名的反向解析)
3、域名解析过程
举个例子:
客户机访问www.baidu.com
先查己(递归查询)
1、先查看缓存
2、缓存没有再查看hosts文件
再找DNS服务器
3、DNS服务器查看自身缓存
4、缓存没有再访问根域
根域中(迭代查询)
顶级域-二级域-三级域
5、结果反馈
注:递归查询-直接给到答案(有or无)
迭代查询-得不到直接答案,需要通过别的路程获得
报错的常见类型:403–服务器拒绝;404–未找到网页;200–正确;50*–web服务器问题。
正常情况下,我们有多台DNS服务器共同服务,全球一共13台根域服务器
目的:1、冗余
2、防止高并发量挂掉
4、域名服务器分类
1、主域名服务器:请求映射记录并维护
2、从域名服务器:跟主域名服务器同步,当主服务器挂了,可以通过从服务器继续访问
3、缓存域名服务器:维护本地的映射记录,提升重复查询时的速度.(可看作网关服务器)
本地域名服务器:192.168.1.1
阿里云DNS服务器:223.5.5.5
5、DNS权威应答和非权威应答:
1、权威应答:域名地址直接记录在服务器的区域文件内的。
2、非权威应答:需要经过迭代得到的域名地址。
二、DNS服务配置
1、准备
先下载域名服务器的软件
BIND (Berkeley Internet Name Daemon)
BIND是应用最广泛的DNS服务程序
官方站点: https://www.isc.org/
相关软件包
bind-9.9.4-37 .el7 .x86_ 64.rpm
bind-utils-9.9.4-37 .el7.x86_ 64.rpm
bind-libs-9.9.4-37 .el7.x86 64.rpm
bind-chroot-9.9.4 -37.el7.x86_ 64.rpm
主要配置文件
/etc/named.conf 主配置文件
/etc/named.rfc1912.zones 区域配置文件
/var/named/named.localhost 区域数据文件的模板
/var/named/named.ca 根域名配置服务器指向文件
配置文件解析
主配置文件:
listen-on port 53{127.0.0.1;}; //监听在哪个地址的哪个端口,多端口设置any(改)
directory "/var/named"; //区域数据的文件
dump-file //缓存的数据信息
allow-query {localhost;}; //限制作用,比如允许谁查询,目前是本机,设置成any(改)
区域配置文件:
zone "localhost" IN { //区域域名(改)
type master; //主从关系(改)
file "named.localhost" // 数据文件名称(改)
allow-update {none;}; //是否客户端动态更新NDS
区域数据文件:(cp -p /var/named/named.localhost lrz.com.zone)
vim lrz.com.zone
#@ 变量表示当前域名
IN 部分表示互联网
SOA 是表示这是开始权限记录,认证记录
0;serial #更新序列号,180位以内数字, 用于主从同步
1D;refresh #刷新时间
1H;retry #重试刷新时间间隔
1W;expire #失效时间
3H;minimum #无效解析记录的生存周期
SOA这种记录是所有区域性文件中的强制性记录。
其他各种记录解析:(IN可以省略)
lrz.com.#记录当前区域的DNS服务器的名称
IN MX 10 mail.xx.xxx#邮件交换,5表示优先级,优先级: 0-99, 数值越小优先级越高
mail IN A xxxIP
www IN A xxxIP#记录正向解析对应的IP,叫做主机A记录
ftp IN CHAME www#CNAME使用别名,ftp是www的别名
星号 IN A xxxIP#泛域名解析,“*"代表任意 主机名
DNS地址:
vim /etc/resolv.conf
+nameserver xxx.xxx.xxx.xxx
2、DNS配置正向域名解析
1、修改主配置文件(vim /etc/named.conf)
{127.0.0.1;}---{any;}
{localhost;}---{any;}
2、修改区域配置文件(vim /named.rfc1912.zones)
"localhost"---"lrz.com"
"named.localhost"---"lrz.com.zone"
3、复制模板并修改区域数据文件(cp -p /var/named/named.localhost lrz.com.zone)
rname.invalid.---admin.lrz.com
A 127.0.0.1---A 192.168.138.100
+www IN A 192.168.138.100
4、开启服务(systemctl start named)
5、查看端口(netstat -antp | grep 53)
6、win10修改DNS地址(192.168.138.100)
7、nslookup www.lrz.com
3、搭建web服务
1、下载安装HTTP服务(yum -y install httpd)
2、开启服务(systemctl start httpd)
3、查看端口(netstat -antp | grep httpd)
4、进入网站编辑内容(vim /var/www/html/index.html)
<h1>hello world</h1>
5、win10内输入192.168.138.100访问
4、DNS配置反向域名解析:(根据IP解析域名)
1、主配置文件和正向解析一致
2、修改区域配置文件(vim /named.rfc1912.zones)
复制zone行
"1.0.0.127.in-addr.arpa"---"138.168.192.in-addr.arpa"
"named.loopback"---"lrz.com.zone"
3、进入配置文件(vim /var/named/lrz.com/zone)
rname.invalid.---admin.lrz.com
A 192.168.138.100
www IN A 192.168.138.100
+100 IN PTR www.lrz.com
4、检查配置文件(named-checkconf\named-checkzone lrz.com /var/named/lrz.com.zone)
5、进入DNSIP配置文件(vim /etc/resolv.conf)
+nameserver 192.168.138.100
6、开启服务(systemctl start named)
7、查看端口(netstat -anpu | grep named)
8、win10解析(nslookup www.lrz.com)
注:rndc reload //平滑重载配置文件,DNS特有
5、DNS别名解析
1、进入区域数据文件配置(vim /var/named/lrz.com.zone)
+ftp CHAME www
2、重载配置文件(rndc reload)
3、win10测试(nslookup ftp.lrz.com)
6、DNS泛域名解析
1、进入区域数据文件配置(vim /var/named/lrz.com.zone)
+* A 1.2.3.4
2、重载配置文件(rndc reload)
3、win10测试(nslookup xxx.lrz.com\yyy.lrz.com)
7、DNS邮件解析
1、进入区域数据文件配置(vim /var/named/lrz.com.zone)
+ MX 10 mail.lrz.com
+mail A 11.22.33.44
2、重载配置文件(rndc reload)
3、win10测试(nslookup mail.lrz.com)
8、DNS配置缓存服务器:(只需要改动named.conf)
1、进入主配置文件(vim /etc/named.conf)
option {
directory "/var/named";
forwarders { 192.168.138.100;};
allow-query {any;};
};
删除剩下的内容
2、重载配置文件(rndc reload)
3、win10内,改一下DNS服务器IP变为缓存服务器IP
4、验证(nslookup www.lrz.com)
9、DNS主从服务器同步
1、搭建环境:
主服务器:192.168.152.130
从服务器:192.168.152.129
客户机IP地址:192.168.152.10
2、配置主服务器:
进入区域配置文件(vim /etc/named.rfc1912.zones)
zone "lrz.com" IN {
type master;
file "lrz.com.zone";
allow-update {none;};
allow-transfer {192.168.152.129;}; //指定从服务器的IP地址
};
3、重启配置(rndc reload)
4、配置从服务器:
进入主配置文件(vim /etc/named.conf,改2个any)
进入区域配置文件(vim /etc/named.rfc1912.zones)
zone "lrz.com" IN {
type slave; //备服务器
file "slaves/lrz.com.zone/slave";
allow-update {none;};
masters {192.168.152.130;}; //指定从服务器的IP地址
};
5、开启服务(systemctl start named)
6、win10验证(换成从服务器DNS地址)
7、nslookup www.lrz.com
8、查看slaves(ls /var/named/slaves)
9、模拟故障:
主服务器DNS停止(systemctl stop named)
win10设置主从服务器DNS地址
测试,不成功(win10弊端:不找从服务器)
用Linux虚拟机测试(网卡配置文件添加2个DNS地址)
重启网卡
nslookup www.lrz.com 验证
成功
10、实现主从同步:
进入主服务器:
配置区域配置文件(vim /etc/named.rfc1912.zones)
+notify yes; //开启通知
+also-notify{ 192.168.152.129;}; //指定通知从服务器
进入区域数据文件配置(vim /var/named/lrz.com.zone)
1;serial---10000;serial
重启配置
重载服务
查看文件内是否有新的记录
win10 nslookup
10、DNS分离解析
1、实验环境:
网关服务器(DNS服务器):192.168.192.100(vmnet1)/12.0.0.1(vmnet2)
内网web服务器:192.168.192.211 网关:192.168.192.100 搭建httpd服务并启动
内网win7客户机:192.168.192.150 网关:192.168.192.100 DNS:192.168.192.100
外网win10客户机:12.0.0.2 网关:12.0.0.1 DNS:12.0.0.1
2、实验目的:在网关服务器实现DNS分离解析技术,使局域网主机解析www.kgc.com为192.168.192.211,外网主机解析www.kgc.com为12.0.0.1
3、实验步骤:
一、配置网络
1、新增一块网卡,并更改为主机模式,重启系统
2、下载安装bind(yum -y install bind)
3、配置网卡配置文件(vim /etc/sysconfig/network-scripts/ifcfg-ens33)
IPADDR=192.168.192.100
NETMASK=255.255.255.0
4、配置第二块网卡(vim /etc/sysconfig/network-scripts/ifcfg-ens37)
IPADDR=12.0.0.1
NETMASK=255.0.0.0
5、重启网络服务(systemctl restart network)
注:自己就是网关服务器,所以不用配置网关
二、配置DNS
1、进入主配置文件(vim /etc/named.conf)
2个any
-zone "." IN {
}; //因为要做view视图,避免从根域查找,所以要删
2、进入区域配置文件(vim /etc/named.rfc1912.zones)
view "nei" { //定义内网view,view代表容器分割,名字随意,便于标识就好
match-clients { 192.168.192.0/24; }; //匹配内网访问的网段
zone "lrz.com" IN { //设置要解析的区域
type master;
file "lrz.com.zone.nei"; //数据配置文件名
};
zone "." IN { //将根域配置从主配置文件剪切过来
type hint; //hint是根区域类型
file "named.ca";
};
};
view "wai" { //定义外网view
match-clients { any; }; //匹配除了内网网段以外的任意地址,或者外网网段12.0.0.0
zone "lrz.com" IN {
type master;
file "lrz.com.zone.wai";
};
};
注:一旦启用view,所有的zone必须都在view下
所以要把系统默认的自检用的zone也放在view下然后在named.conf中删除
3、复制并配置区域数据文件(cd /var/named)
cp -p /var/named/named.localhost /var/named/lrz.com.zone.nei
cp -p /var/named/named.localhost /var/named/lrz.com.zone.wai
内网:
vim /var/named/lrz.com.zone.nei
改admin.lrz.com
A 192.168.192.211
+www A 192.168.192.211
外网:
vim /var/named/lrz.com.zone.nei
改admin.lrz.com
A 12.0.0.1
+www A 12.0.0.1
4、启动DNS服务(systemctl start named)
三、配置web
1、下载安装httpd(yum -y install httpd)
2、改为VMnet1
3、配置网卡配置文件(vim /etc/sysconfig/network-scripts/ifcfg-ens33)
IPADDR=192.168.192.211
NETMASK=255.255.255.0
GATEWAY=192.168.192.100
4、重启网络服务(systemctl restart network)
5、编辑网页
vim /var/www/html/index.html
<h1>hello world</h1>
curl 127.0.0.1---hello world
四、配置内网客户机(VMnet1)
1、修改网络配置
IP地址:192.168.192.150
子网掩码:255.255.255.0
默认网关:192.168.192.100
首选DNS服务器:192.168.192.100
2、测试能否ping通DNS地址和web服务器地址
五、外网客户机(VMnet2)
1、修改网络配置
IP地址:12.0.0.2
子网掩码:255.0.0.0
默认网关:12.0.0.1
首选DNS服务器:12.0.0.1
六、测试主从分离
内网客户机解析地址:
nslookup www.lrz.com
内网客户机访问网页:
www.lrz.com
外网客户机解析地址:
nslookup www.lrz.com
外网客户机访问网页:
www.lrz.com–无法访问,解析地址上没有web服务器
解决:映射—NAT转换
利用防火墙来映射—指定防火墙规则
1、iptables -L -t nat //查看nat表规则
2、iptables -t nat -A PREROUTING -d 12.0.0.1 -i ens37 -j DNAT --to-destination 192.168.192.211
3、配置内核参数开启路由转发(vim /etc/sysctl.conf),也可以echo 1 > /proc/sys/net/ipv4/ip_forward为临时配置
net.ipv4.ip_forward=1
4、sysctl -p //从文件加载系统参数
5、再次访问