理论:DNS域名解析服务-——理论讲解
前言:
大埔ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
- BIND域名服务基础
- DNS系统的作用及类型
- BIND的安装和配置文件
- 使用BIND构建域名服务器
- 构建缓存域名服务器
- 构建主、从域名服务器
重点步骤:找主配置文件,找启动脚本
一: DNS系统的作用
1.1 正向解析:根据主机名称(域名)查找对应的IP地址
1.2 反向解析:根据IP地址查找对应的主机域名
ip解析域名,多用于测试
1.3 DNS系统的分布式数据结构
www.sina.com.cn. 最后一个点是根,整体就是完全合格域名
www是主机名称,sina二级域名,com.cn是顶级域名 .是根
二 : DNS系统类型
2.1 缓存域名服务器
- 也称为高速缓存服务器
- 通过向其他域名服务器查询获得域名->IP地址记录
- 将域名查询结果缓存到本地,提高重复查询时的速度
在服务安装完毕时,就是缓存服务器
2.2 主域名服务器(master)
- master主服务器
- 特定DNS区域的官方服务器,具有唯一性
- 负责维护该区域内所有域名->IP地址的映射记录
2.3 从域名服务器(slave)
- slave 服务器
- 也称为辅助域名服务器
- 其维护的域名->IP地址记录,来源于主域名服务器
三 : BIND 域名服务
3.1 BIND服务简述
- BIND(Berkeley Internet Name Daemon)
- 伯克利Internet域名服务
- 相关软件包
- bind-9.9.4-37.el7.x86_64.rpm
- bind-untils-9.9.4-37.el7.x86_64.rpm
- bind-libs-9.9.4-37.el7.x86_64.rpm
- bind-chroot-9.9.4-37.el7.x86_64.rpm
3.2 BIND 域名服务端程序
- 主要执行程序: /usr/sbin/named
- 默认监听端口:53 TCP负责连接控制,UDP负责快速解析
- 主配置文件: /etc/bind/named.conf
- 保存DNS解析记录的数据文件位于 /var/named/
3.3 BIND域名服务程序主配置文件/etc/bind/named.conf
全局配置部分
- 设置DNS服务器的全局参数
- 包括监听地址/端口、数据文件的默认位置等
- 使用options { ..... };的配置段
[root@localhost ~]# vim /etc/named.conf
options { '选项'
listen-on port 53 { any; }; '监听地址所有'
listen-on-v6 port 53 { ::1; };
directory "/var/named"; '目录在/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.10.0/24; }; '允许此网段前来解析'
区域配置部分 /etc/named.rfc1912.zones
- 设置本服务器提供域名解析的特定DNS区域
- 包括域名、服务器角色、数据文件名等
- 使用zone “区域名” IN { ...... }; 的配置段
#正向解析
zone "localhost" IN { '主机名,例kgc.com'
type master; 'master类型,主服务器'
file "named.localhost"; '区域数据文件名,A记录,可以解析主机头,'
allow-update { none; }; '允许更新'
allow-transfer { 173.16.16.2 } '从服务器的IP地址'
};
#反向解析
zone "16.16.173.in-addr.arpa" IN { 'ip地址反写'
type master; '主服务器'
file "named.loopback"; '区域配置文件名'
allow-update { none; }; '允许更新'
};
16.16.173.in-addr.arpa 是ip地址的反写 正写是'173.16.16.?',?作为一个选项
3.4 区域数据配置文件(A记录) 在区域配置选项中file “*”
3.4.1 全局TTL配置项及SOA记录 /var/named/目录下
- $TTL (Time To Live, 生存时间)记录
- SOA (Start Of Authority,授权信息开始)记录
- 分号“;”开始的部分表示注释信息
$TTL 1D '有效解析记录的生命周期'
@ IN SOA @ rname.invalid. ( 'SOA标记、@域名、管理者邮箱'
0 ; serial
'更新序列号,可以是10位以内的整数,当前0'
1D ; refresh
'刷新时间,重新下载地址数据的间隔,1天'
1H ; retry
'重试延时,下载失败后的重试间隔,1小时'
1W ; expire
'失效时间,超过改时间仍无法下载则放弃,1周'
3H ) ; minimum
'无效解析记录的生存周期 3小时'
NS @ '@指自己'
A 127.0.0.1 '回环地址,此行的首位没写,默认是自己的主机名,即输入自己的主机名就是在ping自己'
AAAA ::1
~
若是找不到主服务器,就会每1小时找一次,持续1w即一周
3.4.2 域名解析记录
- NS域名服务器(Name Server)记录
- MX邮件交换(Mail Exchange)记录
- A地址(address)记录,只用在正向解析区域中
- CNAME 别名 (Canonical Name)记录
$TTL 1D '有效解析记录的生命周期'
@ IN SOA @ rname.invalid. ( 'SOA标记、@域名、管理者邮箱'
0 ; serial
'更新序列号,可以是10位以内的整数,当前0'
1D ; refresh
'刷新时间,重新下载地址数据的间隔,1天'
1H ; retry
'重试延时,下载失败后的重试间隔,1小时'
1W ; expire
'失效时间,超过改时间仍无法下载则放弃,1周'
3H ) ; minimum
'无效解析记录的生存周期 3小时'
NS @
A 127.0.0.1
AAAA ::1
@ IN NS ns1.bdqn.com. '自己的域名叫做ns1.bdqn.com.'
IN MX 10 mail.bdqn.com. '自己的邮件交换系统优先级别10的叫做mail.bdqn.com.'
ns1 IN A 58.119.74.203 '主机名即主机头为ns1时,对应的ip地址58.119.74.203'
www IN A 173.16.16.1 '主机名为www时,对应的ip地址为为173.16.16.1'
mail IN A 173.16.16.4
ftp IN CNAME www 'cname,别名,即输入ftp相当于输入www'
~
3.5 实验 :正向解析搭建
[root@dns named]# rpm -qc bind '查看已安装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
[root@dns named]#
[root@dns named]# 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; }; '允许所有主机前来解析'
/*
[root@dns named]# vim /etc/named.conf '配置主配置文件'
zone "." IN { '根域,不要去动它'
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones"; '区域配置文件,接下来要配置它'
include "/etc/named.root.key";
[root@dns named]# cd /var/named '去看一眼默认文件存放路径'
[root@dns named]# ls
chroot data dyndb-ldap kgc.com.zone named.empty named.loopback
chroot_sdb dynamic kgc.com.local named.ca named.localhost slaves
[root@dns named]# vim /etc/named.rfc1912.zones '配置区域配置文件'
以ipv6反向解析zone为界限,上面的是正向解析zone,下面是反向解析zone
zone "kgc.com" IN { '创建一个kgc.com正向解析区域'
type master;
file "kgc.com.zone";
'存放文件在默认目录/var/named下,名为kgc.com.zone文件,若是没有需要自己创建'
allow-update { none; };
};
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 {
type master;
file "named.loopback";
allow-update { none; };
};
zone "0.0.10.in-addr.arpa" IN {
type master;
file "kgc.com.local";
allow-update { none; };
};
[root@dns named]# cp -p named.localhost kgc.com.zone
'保留权限复制模板,重命名为kgc.com.zone'
[root@dns named]# vim kgc.com.zone ''修改区域数据,
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS kgc.com.
A 127.0.0.1
IN MX 5 mail.kgc.com.
mail IN A 10.10.10.10
www IN A 9.9.9.9
ftp IN CNAME www
* IN A 8.8.8.8
@ 代表变量,在这里指域名
此时DNS的正向解析已经配置完毕
[root@dns named]# systemctl start named '启动服务'
[root@dns named]# netstat -natp |grep named '查看端口状态-n 数字 -a 所有 -t tcp -p protocol 协议'
tcp 0 0 192.168.139.132:53 0.0.0.0:* LISTEN 40771/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 40771/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 40771/named
tcp6 0 0 ::1:53 :::* LISTEN 40771/named
tcp6 0 0 ::1:953 :::* LISTEN 40771/named
[root@dns named]# netstat -naup |grep named '-u udp'
udp 0 0 192.168.139.132:53 0.0.0.0:* 40771/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 40771/named
udp 0 0 192.168.122.1:53 0.0.0.0:* 40771/named
udp6 0 0 ::1:53 :::* 40771/named
[root@dns named]# systemctl stop firewalld '关闭防火墙'
[root@dns named]# setenforce 0 '关闭安全增强服务'
验证一下
新建一台虚拟机,网卡模式也设置为nat模式,然后指定dns
C:\Users\GSY>nslookup mail.kgc.com
服务器: UnKnown
Address: 192.168.139.132
名称: mail.kgc.com
Address: 10.10.10.10
C:\Users\GSY>nslookup qqq.kgc.com
服务器: UnKnown
Address: 192.168.139.132
DNS request timed out.
timeout was 2 seconds.
名称: qqq.kgc.com
Address: 123.123.123.123
'也可以在本机的/etc/resolv.conf内输入dns服务器名,告诉主机dns的位置,进行本地验证 '
[root@dns named]# echo "nameserver 192.168.139.132" > /etc/resolv.conf
[root@dns named]# nslookup www.kgc.com
Server: 192.168.139.132
Address: 192.168.139.132#53
Name: www.kgc.com
Address: 10.0.0.10
3.6 反向域名解析记录 PTR
3.6.1 域名解析记录
- PTR指针(Point)记录,只用在反向解析区域中
- 记录的第一列指定IP地址中的主机地址部分即可
14 IN PTR www.kgc.com.
13 IN PTR ftp.kgc.com.
反向解析的区域数据文件配置
[root@dns named]# cp -p named.loopback kgc.com.local
'创建的文件名与区域反向解析配置的文件名一致'
[root@dns named]# vim kgc.com.local
$TTL 1D
@ IN SOA kgc.com. admin.kgc.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS kgc.com.
A 14.0.0.14
14 IN PTR www.kgc.com.
13 IN PTR ftp.kgc.com.
2 IN PTR WWW.GSYDSG.com.
~
测试 nslookup 或者host都可以
[root@dns named]# systemctl restart named
[root@dns named]# nslookup 14.0.0.2 '因为在配置文件中是大写的WWW,所以不是域名='
2.0.0.14.in-addr.arpa name = WWW.GSYDSG.com.
[root@dns named]# host 14.0.0.14
14.0.0.14.in-addr.arpa domain name pointer www.kgc.com.
[root@dns named]# host 14.0.0.13
13.0.0.14.in-addr.arpa domain name pointer ftp.kgc.com.
[root@dns named]#
3.7 区域数据配置文件的特殊应用——泛域名解析
3.7.1 基于域名解析的负载均衡
- 同一域名对应到多个IP地址
3.7.2 泛域名解析
- 找不到精确对应的A记录时,使用“*”进行匹配
www IN A 9.9.9.9
www IN A 7.7.7.7
www IN A 6.6.6.6
* IN A 8.8.8.8
验证同一域名对应到多个IP地址
C:\Users\GSY>nslookup www.kgc.com
服务器: UnKnown
Address: 192.168.139.132
DNS request timed out.
timeout was 2 seconds.
名称: www.kgc.com
Addresses: 6.6.6.6
7.7.7.7
9.9.9.9
3.8 对配置文件进行语法检查 named-checkconf
3.8.1 named-checkconf 工具
[root@dns named]# named-checkconf /etc/named.conf
[root@dns named]# named-checkconf /etc/named.rfc1912.zones
没啥反应,因为是正常运转的,我把里面的数据改错验证一下
zoe "kgc.com" IN { '去掉个字母'
type master;
file "kgc.com.zone";
allow-update { none; };
};
[root@dns named]# named-checkconf /etc/named.rfc1912.zones
/etc/named.rfc1912.zones:13: unknown option 'zoe'
错误改回来
[root@dns named]# named-checkconf -z /etc/named.rfc1912.zones
zone kgc.com/IN: loaded serial 0
zone localhost/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 0.0.14.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
-z 选项,还会查看其中的zone项是否有误
不带-z选项,只查看整体的语法
3.8.2 named-checkzone 工具
[root@dns named]# named-checkzone kgc.com /var/named/kgc.com.zone
zone kgc.com/IN: loaded serial 0
OK
3.9 实验 :构建缓存域名服务器
3.10 构建主、从域名服务器
slave 从服务器
总结
使用dns域名解析服务
先管关掉防火墙再说
1.需要安装bind*软件
主配置文件/etc/bind/named.conf
数据文件 /var/named
程序 /usr/sbin/named
2.全局配置文件配置 /etc/named.conf
options { '众多选项'
listen-on port 53 { 127.0.0.1; }; '监听此地址'
listen-on-v6 port 53 { ::1; };
directory "/var/named"; '默认目录在/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 { localhost; }; '允许此主机名前来解析'
3.区域配置文件 /etc/named.rfc1912.zones
#正向解析
zone "localhost" IN { “主机名”
type master; 'master类型,主服务器'
file "named.localhost"; '区域数据文件名,A记录,可以解析主机头'
allow-update { none; }; '允许更新'
allow-transfer { 173.16.16.2 }; '从服务器的IP地址'
};
zone "localhost" IN { “主机名”
type slave; 'slave类型,从服务器'
file “slaves/bdqn.com.zone”;
allow-update { none; }; '允许更新'
masters { 192.168.10.10; }; '主服务器的IP地址'
};
#反向解析
zone "16.16.173.in-addr.arpa" IN { 'ip地址反写'
type master; '主服务器'
file "named.loopback"; '区域配置文件名'
allow-update { none; }; '允许更新'
};
3.区域数据文件 /var/named/目录下
以其中的named.localhost为模板带权限复制,名字改为区域配置文件中file参数的名字
$TTL 1D '有效解析记录的生命周期'
@ IN SOA @ rname.invalid. ( 'SOA标记、@域名、管理者邮箱'
0 ; serial
'更新序列号,可以是10位以内的整数,当前0'
1D ; refresh
'刷新时间,重新下载地址数据的间隔,1天'
1H ; retry
'重试延时,下载失败后的重试间隔,1小时'
1W ; expire
'失效时间,超过改时间仍无法下载则放弃,1周'
3H ) ; minimum
'无效解析记录的生存周期 3小时'
NS @
A 127.0.0.1
AAAA ::1
@ IN NS ns1.bdqn.com.
IN MX 10 mail.bdqn.com.
mail IN A 173.16.16.4
ns1 IN A 58.119.74.203
ftp IN CNAME www
www IN A 173.16.16.1
nslookup可以去检验
可以在/etc/hosts 和/etc/resolv.conf文件中输入dns服务器主机名
并确认,用以快速访问dns地址
文章名称:理论:DNS域名解析服务-——理论讲解
文章URL:http://scyanting.com/article/iecdjd.html