linux的DNS域名解析服务
1、域名服务基础
域名(Domain Name)是由一串用点分隔的字符组成的名称,用于标识互联网上的计算机或服务器组。所有的域名必须以点结尾。
通过域名系统(DNS)实现域名与IP地址的映射。当用户输入域名时,DNS会将其解析为对应的IP地址,从而完成网络连接。
DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
域名服务器的分类:
根域名服务器(全球共有13组根域名服务器,标识为A到M)
顶级域名服务器(如.com、.org、.net、.edu、.org、.gov等通用顶级域名,或者国家代码顶级域名(ccTLD)如.cn(中国)、.jp(日本))
权威域名服务器(对于每个域名而言,至少有一个权威域名服务器来维护该域名的信息。例如:阿里云DNS、腾讯云DNS)
本地DNS服务器(通常网络管理员提供,自建类型。)
转发服务器(转发服务器不是必需的,但它可以作为优化查询效率的一种方式。)
缓存域名服务器(只提供域名解析结果的缓存功能,目的在于提高查询速度和效率)
主域名服务器(维护某一个特定 DNS 区域的地址数据库,对其 中的解析记录具有自主控制)
从域名服务器(与主域名服务器提供完全相同的 DNS 解析服务, 通常用于 DNS服务器的热备份)
正向解析和反向解析
DNS 系统在网络中的作用就是维护一个地址数据库,其中记录了各种主机域名与 IP 地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正向解析与反向解析。
DNS的查询方法
- 递归查询(客户机发请求,DNS查询解析,将结果返回客户机)
- 迭代查询(本地服务器向其他服务器查询,如果查询不到,则继续找下一台服务器)
主机和DNS的映射
- hosts文件包含了ip地址与主机名之间的映射,还包括主机的别名。
- 默认情况下,系统首先从hosts文件查找解析记录
- hosts 文件的优先级高于DNS服务器,这是由/etc/nsswitch.conf 文件规定的
- hosts 文件只对当前的主机有效
- hosts 文件可减少DNS查询过程,从而加快访问速度
- linux下/etc/hosts
- windos下Windows\System32\drivers\etc\hosts
2、Linux 构建缓存域名服务器
本地缓存域名服务器的作用:
- 提高网络访问速度:内网设置DNS服务器可以缓存已经解析过的域名与IP地址的映射关系
- 提高网络安全性:通过设置DNS服务器,可以屏蔽一些恶意网站
- 实现内部网络管理:内网DNS服务器允许企业或组织对内部网络的域名进行管理
- 减少外部DNS查询依赖:当内网用户访问外部网站时,如果每次都需要查询公共的DNS服务器
- 实现内部资源访问:内网DNS服务器可以实现内部域名解析,使内网用户可以直接通过域名访问内部资源,提高内网管理的便捷性。
- 缓存域名服务器通常架设在公司的局域网内,主要目的 是提高域名解析的速度,减少对互联网访问的出口流量。
构建过程(正向,反向):
- 两台在一个局域网内的主机,一台做服务器安装bind9,apt install bind9,一台为客户机
- 在服务器内配置3个文件(/etc/bind/named.conf.options,/etc/bind/named.conf.default-zones,/etc/bind/db.local)
- 检查启动文件:named-checkzone xykj.com /etc/bind/xykj.local
- 两台主机分别修改/etc/resolv.conf文件,让DNS起效(地址为DNS服务器的)
- 重启bind9
- 测试接域名解析有没有问题,nslookup www.xykj.com
- 反向解析,在上面步骤的基础之上
- 复制正向的db.local文件,并修改文件(PTR)
- /etc/bind/named.conf.default-zones 添加反向区域配置
- 重启,测试
3、Linux 构建主从域名服务器
主域名服务器通常架设在 Internet 环境中,提供某一个域或某几个域内的主机名与 IP地址的查询服务。为了分担域名查询的压力、提供区域数据的备份,有时还会另外架设一台从域名服务器,与主域名服务器同时提供服务。
构建过程(最少3台机器):
- 一台作为DNS主服务器,一台作为DNS从服务器,都安装bind9,剩余一台作为客户机
- 主服务器和从服务器,分别修改修改vim /etc/resolv.conf,添加主从服务器的ip地址,并修改vim named.conf.default-zones,添加正向加反向。主服务器配从,从配主。以及正向和反向的db.local文件,主配从,从配主。
- 客户机修改/etc/resolv.conf文件
- 重启两台服务器的bind9,然后nslookup验证
- 将主服务器关闭,看看客户机还可以访问域名