域名系统(Domain Name System,缩写:DNS) 是互联网的一项服务。域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。可以理解为DNS就是翻译官。
正向解析:域名-----------------IP地址
反向解析:IP地址--------------域名
1. 客户机首先查看查找本地hosts文件,如果有则返回,否则进行下一步
2. 客户机查看本地缓存,是否存在本条目的缓存,如果有则直接返回,否则进行下一步。
3. 将请求转发给指向的DNS服务器
4. 查看域名是否本地解析,是则本地解析返回,否则进行下一步。
5. 本地DNS服务器首先在缓存中查找,有则返回,无则进行下一步。
6. 向全珠13个根域服务器发起DNS请求,根域返回org域的地址列表。
7. 使用某一个org域的IP地址,发起DNS请求,org域返回kernel域服务器地址列表。
8. 使用某一个kernel域IP地址,发起DNS请求,kernel域返回www.kernel.org主机的IP地址,本地DNS服务收到后,返回给客户机,并在本地DNS服务器保存一份。
软件名称:bind
服务名称:named
软件端口:
UPD 53 数据通信(域名解析)
TCP 53 数据同步(主从同步)
配置文件:
主配置文件:/etc/named.conf(服务器运行参数)
options{
listen-on port 53 { 127.0.0.1; } --设置服务器监听网卡(可以写具体某一个IP,也可以写成any)
listen-on-v6 port 53 { ::1; } --同上(只不过这个是IPV6的)
directory "/var/named"; --数据文件位置
dump-file "/var/named/data/cache_dump.db"; --数据文件
statistics-file "/var/named/data/named_stats.txt"; --数据文件
memstatistics-file "/var/named/data/named mem stats.txt"; --数据文件
allow-query { localhost; }; --设置可以访问服务器的客户端IP(可用any)
recursion yes;
}
区域配置文件:/etc/named.rfc1912.zones (服务器解析的区域配置,正反向区域定义信息)
zone "localhost.localdomain" IN { --正向区域配置文件标签,修改为要解析的域
type master; --DNS服务器类型(master/slave)
file "named.localhost"; --正向数据配置文件名称(默认保存在/var/name/下)
allow-update { none; };
}
zone "1.0.0.127.in-addr.arpa" IN { --反向区域配置文件标签,仅修改IP位置,并且将IP反写、例如:0.168.192.in-addr.arpa
type master; --DNS服务器类型(master/slave)
file "named.loopback"; --反向数据配置文件名称(默认保存在/var/name/下)
allow-update { none; };
}
数据配置文件:/var/named/xx.xx (主机名和IP地址的对应解析关系,及主从同步信息)
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
记录类型说明:
A: | 地址记录,用来指定域名的IPV4地址的记录 |
---|---|
CNAME: | 将域名指向别一个域名,再由另一个域名提供IP地址,就需要添加 CNAME 记录 |
TXT: | 可填写任何东西,长度限制255,绝大多数的 TXT 记录是用来做SPF的(反垃圾邮件) |
NS: | 域名服务器记录,如果需要把子域名交给其他 DNS 服务商解析,就需要添加 NS 记录。 |
AAAA: | 地址记录,用来指定域名的 IPV6 地址的记录 |
MX: | 邮件交换记录,如果需要设置邮箱,让邮箱能收邮件,就需要添加 MX 记录。 |
4.1 准备工作
实验环境:三台服务器、一台做客户机、一台做dns服务器、一台做web server
(注意:全部先关闭的防火墙和SELinux)
4.2、用第一台服务器做为DNS服务器(IP 192.168.100.10)
# 软件安装
yum -y install bind
4.3 配置主配置文件(/etc/named.conf)
vim /etc/named.conf
修改以下两项
listen-on port 53 { any; };
allow-query { any; };
4.3.1如下图所示~保存退出
4.4、修改区域配置文件:/etc/named.rfc1912.zones
vim /etc/named.rfc1912.zones
4.4.1 、示例图如下~这里用的是 192.168.100 的网段。测试域名用的 xxx.com
4.5、修改正反向配置文件~在/var/named/目录下
因为我这里把正反配置文件名修改了正向配置文件名成了:xxx.localhost 和反向配置文件名:xxx.loopback
所以先要复制原有配置的模板:
cp -a named.localhost xxx.localhost --复制正向配置文件
cp -a named.loopback xxx.loopback --复制反向配置文件
4.5.1、编辑正向配置文件~保存并退出
vim /var/named/xxx.localhost
vim /var/named/xxx.loopback
4.5.3、启动DNS服务
service named start
5、用第二台服务器配置一台简单的web服务器(这台机器IP 192.168.100.20 )
(注意:全部先关闭的防火墙和SELinux)
# 安装apache
yum -y install httpd
# 启动
service httpd start
vim /var/www/html/index.html
随便输入一点内容~保存退出
再用第三台服务器当作客户端去访问(这用作客户端机器IP 192.168.100.30)
# 用elinks 去访问192.168.100.20
elinks 192.168.100.20
6、配置客户端 dns IP地址为 192.168.100.10
# 利用setup这个工具进行配置DNS IP
setup
service network restart
elinks www.xxx.com