Dns 在linux系统中的应用
翻译机制:
在tcp/ip的网络中,流量是以ip包的形式传输,ip包的包头部分是目标ip地址和原ip地址,所以要想准确地在网络中访问到某主机,比如说访问www.sohu.com,需要把域名解析为ip地址,这就是我们说的翻译机制。
1:Hosts 文件
在小型的网络中运用hosts文件来实现翻译,hosts文件在操作系统中经常见到,例如windows hosts文件是/windows/system32/drivers/etc linux系统 /etc/hosts,在一些网络设备中也有hosts文件 交换机 防火墙 路由器 等
Hosts 文件里面到底是什么?
是主机名 ip地址之间的对应关系,只有hosts 文件有主机名ip地址之间的对应,在访问某台主机时才可以找到其ip地址,否则根本访问不到。Hosts文件时主机名ip地址映射表,是手工创建的,在小型的网络中hosts文件是有用的,但在大型的网络hosts文件工作效率会大大降低。
2:dns
Dns是domain name server/system的简称顾名思义 就是域名解析服务器。
实现dns有几种方式
Bind 是伯克利公司开发的用文件来实现的一种方式,这种方式占市场份额60%,把ip地址主机名的对应关系写到文件之中去,把文件加载到内存中,如果文件比较多加载速度比较慢,但是一旦加载进去检索速度特别快。
Powerdns 是靠数据库来实现的,sql 数据库 mysql数据库等
Mydns mydns-ng 也是靠数据库来实现的,只不过这种方式提供web的管理界面帮助管理。
这里我们主要是探讨第一种dns,其他的不做太多的介绍。
Dns:
dns域名空间
整个dns 框架是一个树状结构,这个树状结构称为nds域名空间
Dns 服务器
Dns 服务器内存储着域名空间的部分区域记录。一台dns服务器可以存储一个或多个域内的记录,也就是dns服务器可以管辖一个或多个区域,我们称dns服务器为区域的授权服务器。
主dns服务器 在区域中仅有一个
辅助dns服务器 0个或多个,是记录的副本,不能删除和修改
唯缓存服务器
唯缓存服务器是一台并不负责管理任何区域,它会帮助dns客户端向其他服务器来查询,然后将查询的记录保存到自己的缓存中,并将此记录提供给客户端。
区域
正向区域:名称解析为地址
SOA 授权起始 (主dns 管理员邮箱 刷新策略)
NS 名称服务器 (主dns 辅助dns)
A 记录 名称------》ip地址
CNAME 别名记录
MX 邮件服务器 (表明一个域中有mail server)
反向区域:地址解析为名称
SOA 授权起始 (主dns 管理员邮箱 刷新策略)
NS 名称服务器 (主dns 辅助dns)
PTR 记录 ip地址---->名称
CNAME 别名记录
MX 邮件服务器 (表明一个域中有mail server)
Dns 的工作原理
假如在洛阳市有一台pc想要访问郑州大学的一台www服务器,pc为dns客户端先向洛阳市市局放出请求,洛阳市居向根域发出请求,根域收到请求,会把河南省厅的地址发给洛阳市局,然后洛阳市局在向河南省厅发出请求,河南省厅会把郑州市的地址告诉洛阳市,洛阳市在访问郑州市局,郑州市局把郑州大学地址告诉洛阳市局,洛阳市居在访问郑州大学,郑州大学把www服务器的地址告诉洛阳市局,这个过程叫做迭代查询。
Pc把请求发给洛阳市局,洛阳市局把请求的结果告诉pc,在洛阳市局会有一份记录保存下来,如果pc再次访问,会把结果直接发给pc,在pc内部也有一份记录保存,这个过程叫做递归查询。
Dns 在linux系统中的应用
我这里主要演示三个小案例帮助来理解dns服务器在linux中的应用
案例一:做域名解析
案例二:主dns服务器与辅助dns服务器之间的刷新策略
案例三:dns服务器的授权和转发
案例一:做域名解析
安装dns相关软件包
/var/named/chroot/ dns 根目录
/var/named/chroot/etc/ 存放dns服务器配置文件
/var/named/chroot/var/named/ 存放区域文件
切换到/var/named/chroot/etc/
打开named.conf
文件做一些简单的修改
声明一个abc.com的域,dnsserver 为192.168.20.100
打开named.rfc1912.zones这个文件,声明一个abc.com的域
创建区域文件abc.com.zone
打开bac.com.zone 进行编辑
语法检测
检查是否有错误
工具:named-checkconf 检查主配置文件
Named-checkzone 检查区域文件
没有出现任何问题
重启named服务
查看named服务进程
客户端测试工具
Windows nslookup
ping
Linux nslookup
Dig
Host
测试成功
如果想在本机做解析的话,只需要指向自己就行了
在/etc/resolv.conf 添加记录
案例一演示结束。
案例二:主dns服务器与辅助dns服务器之间的刷新策略
工作原理:
在一个重要的局域网中,我们不可能只有一个dns服务器工作,一旦dns服务器不能工作,将会丢失大量的数据,非常不安全,所在我们要建立一个或多个dns服务器,作为辅助dns服务器,辅助dns服务器在域中的身份是一个副职,是给主dns服务器数据的备份,所以在辅助dns服务器的数据记录是一个副本,并不能主动进行刷新,只能靠刷新策略,一旦主dns服务器记录发生改变,通过刷新策略,辅助dns服务器的记录也将发生改变。
案例的拓扑图
简单说明
假设在a.com这个域中有一台dns主服务器ip地址 是192.168.20.100
一台dns辅助服务器ip地址为192.168.20.200 ,a.com这个域中有www 1.1.1.1 记录
ftp 2.2.2.2 记录,Dns服务器都是用linux系统实现的。
在主dns服务器192.168.20.100上 ,打开/var/named/chroot/etc/named.rfc1912.zones 这个区域文件声明一个a.com的域
然后创建a.com.zone 这个区域文件
主dns服务器已经设置好了,现在我们在192.168.20.200个台主机上创建一个辅助dns服务器
同步更新rndc reload查看日志观察在辅助dns服务器是否自动生成a.com.one区域文件
日志表明 不能从192.168.20.100 主dns服务器传送记录,是被拒绝的,说明辅助dns没有给named的服务进程的运行者一个写入的权限,因为区域文件是要放在/var/named/chroot/etc/named所以要修改/var/named/chroot/etc/named目录的权限。
在dns辅助服务器上在查看日志
在dns主服务器上查看日志
在辅助dns服务器named目录下自动生成的区域文件a.com.zone
案例三:dns服务器的授权和转发
简单说明:
在一个大的区域中有父域有子域,父域不可能去管辖子域中的记录,所以父域dns服务器要把管辖权限指派给子域中的一台dns服务器,这就是授权。
如果客户端请求子域dns要得到父域中的记录时,子域要把请求转发给父域dns服务器,让父域dns服务器查找记录,这个过程是转发。
拓扑图
父域dns管辖abc.com 同时管辖bj.abc.com这个子域,用l父域dns用inux系统实现ip地址为192.168.20.100。
父域dns服务器授权子域dns服务器管辖sh.abc.com 这个子域,也是用linux系统实现ip地址为192.168.20.200。
在192.168.20.100上的配置
打开主配置文档进行修改
在父域dns服务器上声明两个域,并创建区域文件
在192.168.20.200的配置
首先进入子域的主配置文件指明转发给的主dns服务器的地址
在子域dns服务器中声明区域sh.abc.com,创建区域文件sh.abc.com.zone
测试
客户端dns指向主域的dns服务器192.168.20.100
客户端dns指向子域的dns服务器192.168.20.200
不管是授权还是转发都没有问题,案例三演示结束。
转载于:https://blog.51cto.com/7615912/1286957