目录
DNS域名解析
解析就是把域名变成IP地址
正向解析:把域名解析成IP地址
反向解析:把IP地址解析成域名
DNS解析系统类似于导航,精确定位所需要访问的网站
域名结构
www.baidu.com.cn. 百度的完整域名
. 根域
.cn 一级域、顶级域,表示国家
.com 二级域,表示组织或者机构,com表示商业组织edu教育机构 org非盈利组织 net运营商 (中国地区)
baidu 子域:域名
www 主机名
DNS系统类型
缓存域名服务器:运营商,访问绝大多数网站都是从运营商的缓存服务器调用缓存记录,直接访问
主域名服务器:唯一性,记录了所有域名和IP地址的映射关系
从域名服务器:主服务器的热备份,主挂了,从服务器顶上
DNS查询过程
常用的域名都在运营商的缓存服务器,如果缓存服务器上没有域名和ip地址的映射关系时,怎么去定位域名的IP地址?(面试题)
有两种查询方式:迭代和递归
过程
用户----->本地文件(hosts)----->DNS域名服务器(运营商缓存服务器)----->根域名服务器(知道结果,但不回答,让去二级域服务器)----->二级域服务器(知道也不回答,去子域名服务器找)----->子域名服务器(知道结果,也就是域名和IP地址的映射关系)----->缓存服务器(运营商)----->hosts----->用户
用户到子域名过程为迭代查询,子域名到用户过程为递归查询
配置
bind 开源软件,用于内网的DNS解析,不同于外网,内网的DNS不需要注册,是方便内部进行使用和访问的工具
主要文件位置
/etc/named.conf 主配置文件
/etc/named.rfc1912.zones 区域配置文件(保存域名和IP地址对应关系的位置,只定义了域名与IP地址解析规则保存的文件位置以及服务类型,没有具体的IP地址与域名对应关系)
/var/named/named.localhostl 区域的数据配置文件(保存了IP地址和域名对应关系)
代码简介
$TTL 引用全局变量,缓存解析结果的有效时间。1D,表示一天
@ 是一个变量,表示当前DNS的区域名
IN 表示使用internet协议
SOA 解析类型,起始解析记录
NS 记录当前区域的DNS服务器名称(必不可少)
A 记录主机IP地址(必不可少)(IPv4地址)
PTR 表示反向解析
清除DNS缓存命令
centos没有清除DNS客户端的缓存,安装NSCD,清空DNS服务器的缓存,提高访问速度
nscd -g 查看缓存信息
nscd -i host 清除缓存
实验
正反解析配置
主机1、2关闭防火墙和安全机制,安装bind
systemctl stop firewalld
setenforce 0
yum -y install bind
主机1、2修改DNS服务器IP地址
vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.233.10
主机1修改主配置文件
vim /etc/named.conf
options {
listen-on port 53 { 192.168.233.10; };
listen-on-v6 port 53 { ::1; };
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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { 192.168.233.20; };
主机1修改区域配置文件,添加正反向区域配置
vim /etc/named.rfc1912.zones
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "233.168.192.in-addr.arpa" IN {
type master;
file "test.com.zone.local";
allow-update { none; };
};
主机1配置正向区域数据文件
cd /var/named/
cp -p named.localhost test.com.zone
vim /var/named/test.com.zone
$TTL 1D
@ IN SOA test.com. admin.test.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS test.com.
A 192.168.233.10
IN MX 10 mail.test.com.
WWW IN A 192.168.233.40
mail IN A 192.168.233.41
主机1 配置反向区域数据文件
cp -p test.com.zone test.com.zone.local
vim test.com.zone.local
$TTL 1D
@ IN SOA test.com. admin.test.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS test.com.
A 192.168.233.10
IN MX 10 mail.test.com.
40 IN PTR www.test.com.
41 IN PTR mail.test.com.
主机1重启服务
systemctl restart named
主机2结果
主从服务器
主机1、2修改DNS服务器IP地址
vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.233.10
nameserver 192.168.233.20
主机1修改区域配置文件
vim /etc/named.rfc1912.zones
zone "test.com" IN {
type master;
file "test.com.zone";
allow-trasfer { 192.168.233.20; };
};
zone "233.168.192.in-addr.arpa" IN {
type master;
file "test.com.zone.local";
allow-trasfer { 192.168.233.20; };
主机2主配置文件
vim /etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
主机2区域配置文件
vim /etc/named.rfc1912.zones
zone "test.com" IN {
type slave;
file "slaves/test.com.zone";
masters { 192.168.233.10; };
};
zone "233.168.192.in-addr.arpa" IN { type slave;
file "slaves/test.com.zone.local";
masters { 192.168.233.10; };
};
主机2重启服务
systemctl restart named
检查区域数据备份
主机1验证的结果