文章目录
前言
- 互联网中的地址是数字的IP地址,域名解析的作用主要就是为了便于记忆。
- 域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。
- 域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。
一、BIND域名服务基础
- DNS服务软件BIND(Berkeley Internet Name Domain,伯克利因特网域名)
- 服务:可通俗理解为主配置文件+运行脚本
1.1:DNS系统的作用及类型
1.1.1:DNS系统的作用
- DNS系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户程序提供正向或者反向的地址查询服务,及正向解析和反向解析。
- 正向解析:根据主机名称(域名,如www.baidu.com)查找对应的IP地址
- 反向解析:(一般维护的时候使用)根据IP地址查找对应的主机域名
1.1.2:DNS系统的类型
-
实际上,每一台DNS服务器都只负责管理一个有限范围(一个或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为“zone”(区域)
-
根据地址解析的方向不同,DNS区域相应地分为正向区域(包含域名到IP地址的解析记录,)和反向区域(包含IP地址到域名的解析记录)
-
根据所管理的区域数据的来源不同,DNS系统可以分为不同的类型。
在同一台DNS服务器中,相对于不同的区域来说,也拥有不同的身份。常见的几种类型:
- 缓存域名服务器
也称为DNS高速缓存服务器
通过向其他域名服务器查询获得域名-> IP地址记录
将域名查询结果缓存到本地,提高重复查询时的速度,但是没有自己控制的区域地址数据
构建缓存域名服务器时,必须设置根域或者指定其他DNS服务器作为解析来源
- 主域名服务器
维护某一个特定DNS区域的地址数据库,对其中的解析记录具有自主控制权,是指定区域中唯一存在的权威服务器,官方服务器
负责维护该区域内所有域名->IP地址的映射记录
构建主域名服务器时,需要自行建立所负责区域的地址数据文件
- 从域名服务器
与主域名服务器提供完全相同的DNS解析服务,也称为辅助域名服务器,是对主域名服务器的热备份
其维护的域名->IP地址记录来源于主域名服务器
构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库
1.2:BIND的安装文件
-
BIND不是唯一能够提供域名服务的DNS服务程序,但它却是应用最为广泛的,BIND可以运行在大多数Linux/UNIX主机中
-
BIND
伯克利Internet域名服务
官方站点:https://www/isc/org/
可以直接使用yum安装
- 相关软件包
1.3:BIND服务
- BIND服务器端程序
主要执行程序:/usr/sbiin/named
默认监听端口:53
主配置文件: /etc/named.conf
保存DNS解析记录的数据文件位于: /var/named/
-
BIND服务控制
systemctl status|startlstoplrestart named. service -
BIND的配置文件
[root@localhost ~]# rpm -qc bind 查看配置文件
/etc/logrotate.d/named
/etc/named.conf
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
1.3.1:named.conf主配置文件
- 全局配置部分
设置DNS服务器的全局参数
包括监听地址/端口,数据文件的默认位置等
使用options{…};的配置段
[root@localhost ~]# vim /etc/named.conf
options {
listen-on port 53 { any; }; ipv4 监听地址和端口 {一般更改为any}
listen-on-v6 port 53 { ::1; };
directory "/var/named"; 区域数据文件的默认存放位置
allow-query { any; }; 允许使用本DNS服务的网段:{一般更改为any}
}
- 区域配置部分
设置本服务器提供域名解析的特定DNS区域
包括域名,服务器角色,数据文件名等
使用zone“区域名”IN{…};的配置段
[root@localhost ~]# vim /etc/named.rfc1912.zones
正向解析
zone "hw.com" IN { 正向“hw.com”区域
type master; 类型为主域名服务器
file "hw.com.zone"; 区域数据文件为hw.com.zone
allow-update { none; };
};
反向解析
zone "10.168.192.in-addr.arpa" IN { 反向"192.168.10.0/24"区域
type master;
file "192.168.10.arpa";
allow-update { none; };
};
1.3.2:区域数据配置文件
- 1.全局TTL配置项及SOA记录
$TTL(Time To Live,生存时间)记录
SOA(Start Of Authority,授权信息开始)记录
分号“;”开始的部分表示注释信息
$TTL 1D '有效解析记录的生存周期'
@ IN SOA @ rname.invalid. ( SOA标记,域名,管理邮箱
2011030502 更新序列号,可以是10位以内的整数
1D 无效解析记录的生存周期
1W 失效时间,超过改时间仍无法下载则放弃
3H 刷新时间,重新下载地址数据的间隔
M 分
H 时
W 周
D 天
- 2.域名解析记录
地址解析记录用来设置DNS区域内的域名,IP地址印社关系,包括正向解析记录和反向解析记录
NS域名服务器(Name Server )记录
MX 邮件交换(Mail Exchange)记录
A 地址 (Address)记录,只用在正向解析区域中
CNAME别名(Canonical Name)记录
NS kevin.com. 当前区域DNS服务器的
IN MX 5 mail.kevin.com.
ns1 IN A 192.168.88.88
www IN A 6.6.6.6
mail IN A 5.5.5.5
ftp IN CNAME www
* IN A 3.3.3.3 泛域名解析,未匹配到的主机头到到此地址
- 3.反向区域数据文件
在反向区域数据文件中,不会用到A地址记录,而是使用PTR指针(point)记录。
例如,对于反向区域88.168.192.in-addr.arpa,添加的反向解析记录可以是以下形式
1 IN PTR www.eee.com. 表示IP地址为192.168.88.1的主机的域名时www.eee.com
5 IN PTR mail.eee.com. 表示IP地址为192.168.88.5的主机的域名时mail.eee.com
- 4.使用netstat命令查看服务状态
[root@localhost ~]# netstat -nuap | grep named 以数字形式显示当前系统中所有的UDP连接信息,同时显示对应的进程信息。
udp 0 0 192.168.122.1:53 0.0.0.0:* 65212/named
udp 0 0 192.168.197.142:53 0.0.0.0:* 65212/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 65212/named
udp6 0 0 ::1:53 :::* 65212/named
[root@localhost ~]# netstat -ntap | grep named 以数字形式显示当前系统中所有的TCP连接信息,同时显示对应的进程信息。
tcp 0 0 192.168.197.142:53 0.0.0.0:* LISTEN 65212/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 65212/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 65212/named
tcp6 0 0 ::1:53 :::* LISTEN 65212/named
tcp6 0 0 ::1:953 :::* LISTEN 65212/named
TCP: 用于连接DNS
UDP: 用于快速解析DNS
1.3.3:区域数据配置文件的特殊应用
- 基于域名解析的负载均衡
同一域名对应到多个IP地址
- 泛域名解析
找不到精确对应的A记录时,使用“*”进行匹配
www IN A 192.168.100.100 轮询负载均衡
www IN A 192.168.100.101
www IN A 192.168.100.102
* IN A 192.168.100.100 泛域名解析
1.3.4:对配置文件进行语法检查
- 修改完区域数据文件以后,可以执行named-checkconf命令对该文件进行语法检查
- 若zone文件中没有语法错误,系统将给出“OK”的提示信息
named-checkconf工具基本格式
named-checkconf -z [主配置文件]
[root@localhost ~]# named-checkconf -z /etc/named.conf
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone kevin.com/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
named-checkzone工具基本格式
named-checkzone <域名><区域数据文件>
[root@localhost ~]# named-checkzone kevin.com /var/named/kevin.com.zone
zone kevin.com/IN: kevin.com/MX 'mail.kog.com' (out of zone) is a CNAME 'mail.kog.com.netsolmail.net' (illegal)
zone kevin.com/IN: loaded serial 0
OK