以上就是本篇Blog的层级架构
之前写过一个Red Hat7.2下DNS服务的搭建,文章中对一些记录类型的介绍比较详细,但是理论过多,没有对真实的场景进行应用
DNS重点—Linux下的配置
还在被虚拟机的网络模式搞得晕头转向?来这里瞧瞧吧~
基于Linux下常见服务的搭建
Linux汇总
DNS叫做域名系统(Domain Name System),这是互联网的一项服务,DNS就是为了方便用户记忆,访问服务器,不用记忆冗余复杂的IP地址,可以理解为DNS就是翻译官,就是中介公司,方便用户转译,方便用户比较不同房源
首先来回顾以下DNS解析的过程与DNS服务器的层级架构
举例:
对于www.baidu.com这个域名其实是www.baidu.com.
域名的层级架构为
根 .
顶级域名 com
二级域名 baidu
三级域名 www
层级架构的产生:
由于因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名方法;任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name);这里,“域”(domain)是名字空间中一个可被管理的划分。
域名只是逻辑概念,并不代表计算机所在的物理地点;如下为层级架构的分类
根域:标识为点(.)现如今全球一共投放13个根服务器,可以指挥Firefox或互联网 Explorer这样的Web浏览器和电子邮件程序控制互联网通信
全世界的这13台根服务器;1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。所有根服务器均由美国政府授权的互联网域名与号码分配机构ICANN统一管理,负责全球互联网域名根服务器、域名体系和IP地址等的管理。
换句话说——攻击整个因特网最有力、最直接,也是最致命的方法恐怕就是攻击根域名服务器了
命名:以英文字母A到M依序命名,格式为“字母.root-servers.net”
根的镜像:
还有11个是以任播技术在全球多个地点设立镜像站;比如中国大陆在北京有两台编号为L的镜像,编号为F、I、J的镜像各一台,共5台;香港有编号为D、J的镜像各2台,编号为A、F、I、L的镜像各一台,共8台;台湾则有编号为F、I、J各一台,共3台
其他:
在与现有IPv4根服务器体系架构充分兼容基础上,由下一代互联网国家工程中心牵头发起的“雪人计划”于2016年在美国、日本、印度、俄罗斯、德国、法国等全球16个国家完成25台IPv6(互联网协议第六版)根服务器架设,事实上形成了13台原有根加25台IPv6根的新格局,为建立多边、民主、透明的国际互联网治理体系打下坚实基础
顶级域:(Top Level Domain,简称TLD)分为以下三类
cn代表中国、us代表美国、uk代表英国、jp(日本)
国家域名又常记为ccTLD(cc表示国家代码contry-code)
com(公司企业、商业机构)
net(网络服务机构)
org(非营利组织)
int(国际组织)
gov(美国的政府部门)
mil(美国的军事部门)
两种表达方式中IP地址部分顺序恰好相反,因为域名结构是自底向上(从子域 到域),而IP地址结构是自顶向下(从网络到主机)的。实质上逆向域名解析是将IP地址表达成一个域名,以地址做为索引的域名空间,这样逆向解析的很大部 分可以纳入正向解析中
注意区分与RARP的区别:
在OSI模型中的网络中的数据链路层与网络层存在IP与MAC地址,而在局域网的查找主机,精准定位时,需要IP地址与MAC地址的映射关系,这个映射表就存在与ARP表中;而ARP解析就是根据IP地址查找MAC地址,RARP就是需要根据MAC地址查找IP地址
二级域(注册域):可以由个人或组织申请注册
baidu
qq
aliyun
huawei等
三级域(子域):服务器网站名的代表
www
bbs等
主机名:常用于表示具体的主机
s1.www.baidu.com. 中的s1就是主机名
两个机构的说明
IANA the internet Assigned Numbers Authority 互联网数字分配机构
ICANN the internet Corporation for Assigned names and Nunbers 互联网名称与数字地址分配机构
概述
数据配置文件:定义域名域IP的对应关系域定时器;使用各种各样的记录类型来标明,如SOA、A、CNAME、NS、AAAA、PTR、MX
关于记录类型的解释
SOA(起始授权记录)
1、记录提供有关dns区域工作方式的信息(描述域名的管理员、电子邮件地址、时间参数)
2、具体来说就是当前主机具体负责哪个区域的解析
3、指定某个DNS服务提供解析
NS
1、将自己的域名映射到DNS服务器上
2、将域名最终映射到哪一台主机(由哪一台主机去解析当前所定义的域主机)
3、标记DNS服务器
注意:SOA是标明了要解析的域、NS是标明了本机的域名
A (ipv4地址记录)
1、将主机名映射到ipv4地址
2、这是正向域名解析地址,即将域名解析成IP
CNAME (规范名称):记录域别名
PTR(指针记录)
1、将IPV4 IPV6地址映射到主机名用于反向DNS反向解析
2、反向解析是将IP地址解析为域名
AAAA (IPV6 地址记录) :资源记录(四A记录)将主机名映射到ipv6地址
MX (邮件交换记录): 标记邮件服务器
关于定时器的解释
serial number: 序列号 定义当前使用的数据序列号 sn遵循“年+月+日+编号” 主和从的更新依据
refresh: 定义检查间隔时间 (上次和这次变化的时间)
retry: 重试时间 < 检查时间>
expire: 过期时间 缓存放多久过期
negative answer ttl: 否定答案的缓存时长(没有指定生存期的数据可以保存在数据中的时间及TTL值)存放不能解析的域名,下次访问直接返回不能解析
时间单位:M(分钟)、H(小时)、D(天)、W(周),默认单位是秒
1、安装bind软件
yum -y install bind
2、修改主配置文件;关于主配置文件的内容上面已经做了详细的说明
vim /etc/named.conf
3、修改区域配置文件
vim /etc/named.rfc1912.zones
4、修改数据配置文件
1、进入/var/named下将named.localhost与named.loopback这两个模板复制出来,修改即可;
2、注意复制出来的文件的文件名是区域配置文件中的file后的内容
3、注意反向解析的书写格式
5、重启服务测
nslookup 域名
dig -x 域名
案例演示
需求:搭建一个DNS服务器,能够实现对www.yichen.com这个域名的解析,解析的域名是一个web server
说明:注意,这里无需关注webserver,只是一个能够根据IP地址访问并显示出内容;需要关注的是域名与IP的映射
实验环境
Centos 7三台 分别为DNS Server、Web Server、DNS Client
网络模式均为仅主机模式,用到的网卡就是VM1
实验设计
实验步骤
1、首先从不重要的说起,即搭建Web server;
思路:
安装httpd
修改/var/www/html/index.html
详细:
1、yum -y install httpd
2、vim /var/www/html/index.html
如下
[root@localhost ~]# cd /var/www/shtml
[root@localhost html]# ll
total 4
-rw-r--r--. 1 root root 5 Sep 25 15:42 index.html
[root@localhost html]# cat index.html
test
测试
使用DNS Clinet测试,用Windos测试、或同一网络环境下的Linux主机测试都行
Linux下
[root@localhost ~]# curl 192.168.56.11
test
Windows下
2、搭建DNS Server
思路:
安装httpd
修改主、区域、数据配置文件
详细:
1、yum -y install httpd
2、vim /etc/named.conf
3、vim /etc/named.rfc1912.zones
4、vim /var/自定义的文件名 注意要与区域配置文件中的file参数一致即可
主配置文件
区域配置文件
数据配置文件
使用cp命令将模板复制成数据配置文件
cp -a named.localhost named.yichen.com
cp -a named.loopback named.192.168.56
修改数据配置文件的内容,关于类型的解释上面做过详细的说明
反向解析,由于在区域配置文件写出过反向的IP,即数据配置文件中只需写出主机的IP即可
3、测试
正向解析
在DNS Client上将DNS的IP地址修改为DNS Server的IP地址,即192.16.56.30;即使这个DNS Server进行解析
详细测试
反向解析
目的
下面就先来搭建一个主从DNS服务器
实验环境
Centos 6.8四台 分别为DNS Master、DNS Slave、Clinet、Web Server
网络模式均为仅主机模式,用到的网卡就是VM1
实验步骤
1、修改主DNS的区域配置文件;将其allow-update修改为从DNS的IP地址
2、将从DNS的这两个位置修改;监听的本机的IP,允许访问的主机
3、修改从DNS的区域配置文件;声明主DNS的IP以及数据文件的位置
4、重启从DNS服务,进入slaves目录,就可以看到对主DNS的数据配置文件的复制(自动化完成)
测试:
可见解析正常
关闭主DNS服务,测试从DNS能否正常工作;注意,要在Client上配置从DNS的IP
可见,解析正常
下面开始介绍缓存服务器的搭建
主缓DNS:加快解析效率,提高接续的速度
实验环境
Centos 6.8四台 分别为DNS Master、DNS Cache、Clinet、Web Server
网络模式均为仅主机模式,用到的网卡就是VM1
实验设计
实验步骤
1、再DNS Cache上安装dnsmasq软件,并修改配置文件
[root@localhost ~]# vim /etc/dnsmasq.conf
domian=#需要解析的域名
server=#主DNS的IP地址
cache-size=#声明缓存的条数
2、关闭防火墙、senlinux、重启dnsmasq服务
[root@localhost ~]# service iptables stop
[root@localhost ~]# setenforce 0
[root@localhost ~]# service dnsmasq restart
3、客户端将DNS的IP地址写成DNS Cache的地址
测试
可见通过缓存服务器的解析正常
将主DNS的服务停止
[root@localhost ~]# service named stop
停止 named: [确定]
可见,还是可以解析,但是不是权威的解析结果
此时,解析域名为dns.yichen.com发现无法解析;这是因为缓DNS中没有这条解析记录,它会去向主DNS寻求答案,但是主DNS此时的服务是停止的,所以不能解析出结果;将主DNS恢复,就可以完成解析
重启主DNS的服务
[root@localhost ~]# service named restart
停止 named: [确定]
启动 named: [确定]
总结
主从DNS的解析过程
1、客户端向主DNS寻求解析记录;主DNS会根据配置的时间向从DNS进行记录的完全复制
2、当主DNSdown机或服务中断,客户端会向从DNS寻求解析(前提是客户端在网卡配置中配了从DNS的IP)
主缓DNS的解析过程
1、客户端的网卡配置中配的是DNS Cache的IP,即客户端只能去缓DNS上进行域名的解析
2、当缓DNS上存在客户端需要的解析记录,直接解析即可;若不存在,缓DNS会去向主DNS进行解析记录的请求
目的
一个域名解析出两个不同的地址;即将相同域名解析为不同的IP地址;现实网络中一些网站为了让用户有更好的体验效果解析速度更快,就把来自不同运营商的用户解析到相对应的服务器这样就大大提升了访问速度
实验环境
Centos 6.8四台 分别为 智能DNS、LAN_Clinet、LAN_Clinet、Web Server
网络模式的设计为自定义的VM7 VM10;网段的规划见下图
设计拓扑中出现了内外网卡,即需要两张网卡,这里做一个简单的设计,网段设计如下,在虚拟机中自定义两个网络模式,VM7与VM10
内网的网段为192.168.7.0/24
外网的网段为100.100.100.0/24
实验步骤
0、首先,也是最重要的一点,就是添加、配置网卡,(针对的是DNS与Web Server这两个虚机)这步其实很简单,如下所示
开启虚拟机进行配置
#第一步
#首先要生成网卡配置文件;即将原来的eth0网卡的配置文件复制出来一份给新添加的eth1网卡
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp -a ifcfg-eth0 ifcfg-eth1
#第二步
#删除其中的UUID与MAC地址,因为产生冲突后,网卡无法正常使用
#第三步
#重启网卡后,通过ip address或setup进行检查
[root@localhost ~]# service network restart
1、修改DNS的主配置文件,顺便把Web Server的内容修改
[root@localhost ~]# cd /var/www/html
[root@localhost html]# cat index.html
hi,it's AI_DNS
[root@localhost html]#
匹配顺序:自上而下
即匹配到any时的肯定不是192.168.10.0/24网段的,可以理解为网络中的ACL,即访问控制列表
2、修改区域配置文件;区域文件的存储位置在上一步中已经进行了定义
/etc/lan.zones
/etc/wan.zones
3、修改数据配置文件;注意,以上三步都无时无刻的体现了分离解析的核心,即区域、数据配置文件的分离
数据配置文件存储在/var/named下
注意,在这个文件下有模板,直接进行复制后修改即可
至此,配置完成
测试,可见,与预期相符