文章目录
一、BIND域名服务基础1.1 DNS系统的作用及类型1.1.1 DNS系统的作用1.1.2 DNS系统的类型1、缓存域名服务器2、主域名服务器3、从域名服务器 1.2 BIND安装和配置文件1.2.1 BIND软件安装1.2.2 BIND服务1.2.3 BIND的配置文件主配置文件named.conf区域数据配置文件对配置文件进行语法检查 二、使用BIND构建域名服务器2.1 构建缓存域名服务器、实验·DNS正向解析、邮件交换解析、别名解析、泛域名解析、反向解析 2.2 构建主从域名服务器 总结一、BIND域名服务基础
1.1 DNS系统的作用及类型
1.1.1 DNS系统的作用
DNS系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户程序提供正向或者反向的地址查询服务,及正向解析和反向解析
正向解析:根据主机名称(域名,如)查找对应的IP地址反向解析:(一般维护的时候使用)根据IP地址查找对应的主机域名DNS系统的分布式数据结构
分析
1.1.2 DNS系统的类型
实际上,每一台DNS服务器都只负责管理一个有限范围(一个或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为“zone”(区域)。根据地址解析的方向不同,DNS区域相应地分为正向区域(包含域名到IP地址的解析记录,)和反向区域(包含IP地址到域名的解析记录)
1、缓存域名服务器
也成为DNS高速缓存服务器
通过向其他域名服务器查询获得域名→IP地址记录
将域名查询结果存到本地,提高重复查询时的速度
客户机访问某个网站的DNS解析过程
1、客户机利用电信分配的DNS会找到离客户机最近的位置会有一个DNS缓存服务器
可以查找到DNS缓存里面的域名与ip对应的记录
2、如果没有对应的记录,DNS缓存服务器会直接去找根域服务器
3、根域服务器会告诉DNS缓存服务器顶级域名服务器在什么地方
4、DNS缓存服务器就会去找顶级域名服务器
5、顶级域名服务器会告诉DNS缓存服务器(如果告诉了二级域在哪里
6、DNS缓存服务器回去找二级域服务器 {主机A记录域名→IP}
7、二级域服务器会告诉DNS缓存服务器
8、DNS缓存服务器会记录下来
告诉客户机对应的IP
9、然后客户机就可以去访问对应的网站
网站会将网页推给客户机,下载到客户机的缓存里面
2、主域名服务器
特定DNS区域的权威服务器,具有唯一性
负责维护该区域内所有域名===>IP地址的映射记录
需要自行建立所负责区域的地址数据文件
3、从域名服务器
也成为辅助域名服务器,是对主域名服务器的热备份
其维护的域名===>IP地址记录来源于主域名服务器
需要从主域名服务器自动同步区域地址数据库
1.2 BIND安装和配置文件
1.2.1 BIND软件安装
BIND(Berkeley Internet Name Daemon)
BIND是应用最广泛的DNS服务程序
官方站点:/
可以直接使用yum安装
host===>本地自测的命令
相关软件包
1.2.2 BIND服务
BIND服务器端程序
主要执行程序
默认监听端口:53
主配置文件
/etc/named.conf-保
存DNS解析记录的数据文件位于
/var/named(随时可更改)
BIND服务控制
systemctl [status|stop|restart] named.service
1.2.3 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、主配置文件 负责dns全局功能 例如:日志文件位置,访问权限等
2、区域配置文件 负责构建解析区域 例如:多域名解析
3、区域数据配置文件 负责管路主机解析记录 例如:解析映射
主配置文件named.conf
全局配置部分
设置DNS服务器的全局参数
包括监听地址/端口,数据文件的默认位置等
使用options{…};的配置段
[root@localhost ~]# vim /etc/named.confoptions {'配置段'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 "" IN {type master;'区域类型,主域名服务器'file ".zone";'区域数据文件名'allow-update {none; };};反向解析zone "66.168.192.in-addr.arpa" IN {type master; '反向192.168.66.66/24区域。“IN”关键字可省略'file "192.168.10.arpa";allow-update {none; };};
区域数据配置文件
全局TTL配置项及SOA记录
$TTL(Time To Live,生存时间)记录
SOA(Start Of Authority,授权信息开始)记录
分号“;”开始的部分表示注释信息
$TTL 1D'有效解析记录的生存周期'@ IN SOA @ rname.invalid. ('SOA标记,域名,管理邮箱'030502 '更新序列号,可以是10位以内的整数' 1D'无效解析记录的生存周期' 1W '失效时间,超过改时间仍无法下载则放弃'3H ) '刷新时间,重新下载地址数据的间隔'M 分H 时W 周D 天
正向解析记录
NS域名服务器(Name Server )记录
MX 邮件交换(Mail Exchange)记录
A 地址 (Address)记录,只用在正向解析区域中
CNAME别名(Canonical Name)记录
@.'当前区域DNS服务器的'INMX .ns1INA65.65.656.56wwwINA2.2.2.2mailIN A5.5.5.5ftpINCNAMEwww*IN A3.3.3.3'泛域名解析,未匹配到的主机头到到此地址'
反向区域数据文件
在反向区域数据文件中,不会用到A地址记录,而是使用PTR指针(point)记录。
例如,对于反向区域10.168.192.in-addr.arpa,添加的反向解析记录可以是以下形式
1 IN PTR .'表示IP地址为192.168.192.1的主机的域名时'5 IN PTR .'表示IP地址为192.168.192.5的主机的域名时**使用netstat命令查看服务状态**```css[root@localhost ~]# netstat -nuap | grep named'以数字形式显示当前系统中所有的UDP连接信息,同时显示对应的进程信息。'udp 00 192.168.122.1:53 0.0.0.0:* 65212/named udp 00 192.168.197.142:530.0.0.0:* 65212/named udp 00 127.0.0.1:53 0.0.0.0:* 65212/named udp6 00 ::1:53 :::* 65212/named [root@localhost ~]# netstat -ntap | grep named'以数字形式显示当前系统中所有的TCP连接信息,同时显示对应的进程信息。'tcp 00 192.168.197.142:530.0.0.0:*LISTEN65212/named tcp 00 127.0.0.1:53 0.0.0.0:*LISTEN65212/named tcp 00 127.0.0.1:953 0.0.0.0:*LISTEN65212/named tcp6 00 ::1:53 :::*LISTEN65212/named tcp6 00 ::1:953 :::*LISTEN65212/named TCP: 用于连接UDP: 用于快速解析
区域数据配置文件的特殊应用
基于域名解析的负载均衡
同一域名对应到多个IP地址
泛域名解析
找不到精确对应的A记录时,使用“*”进行匹配
www INA192.168.100.100'轮询负载均衡'www INA192.168.100.101www INA192.168.100.102
*INA192.168.100.100'泛域名解析'
对配置文件进行语法检查
修改完区域数据文件以后,可以执行named-checkconf命令对该文件进行语法检查
若zone文件中没有语法错误,系统将给出“OK”的提示信息
named-checkconf工具基本格式named-checkconf -z [主配置文件][root@localhost ~]# named-checkconf -z /etc/named.confzone localhost.localdomain/IN: loaded serial 0zone localhost/IN: loaded serial 0zone /IN: loaded serial 0zone 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 0zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0zone 0.in-addr.arpa/IN: loaded serial 0
named-checkzone工具基本格式named-checkzone <域名><区域数据文件>[root@localhost ~]# named-checkzone /var/named/.zone zone /IN: /MX '' (out of zone) is a CNAME '.' (illegal)zone /IN: loaded serial 0OK
二、使用BIND构建域名服务器
2.1 构建缓存域名服务器、
实验·DNS正向解析、邮件交换解析、别名解析、泛域名解析、反向解析
1、安装bind安装包
[root@localhost ~]# rpm -q bind未安装软件包 bind [root@localhost ~]# yum install bind -y
2、修改主配置文件
root@localhost ~]# vim /etc/named.conf12 options {13 listen-on port 53 {any; }; '改为any,监听所有端口'14 listen-on-v6 port 53 {::1; };15 directory "/var/named";16 dump-file "/var/named/data/cache_dump.db";17 statistics-file "/var/named/data/named_stats.txt";18 memstatistics-file "/var/named/data/named_mem_stats.txt";19 recursing-file "/var/named/data/named.recursing";20 secroots-file "/var/named/data/named.secroots";21 allow-query{any; }; '改为any,允许所有人访问'
3、修改区域配置文件
[root@localhost ~]# vim /etc/named.rfc1912.zones ‘5yy复制19-23行,粘贴到24行’19 zone "localhost" IN {20 type master;21 file "named.localhost";22 allow-update {none; };23 };24 zone "" IN {'解析区域域名'25 type master;26 file ".zone"; '关联到区域数据配置文件'27 allow-update {none; };28 };
4、修改区域数据配置文件(添加邮件交换记录、别名解析、泛域名解析)
[root@localhost ~]# cd /var/named[root@localhost named]# lsdata dynamic named.ca named.empty named.localhost named.loopback slaves[root@localhost named]# cp -p named.localhost .zone[root@localhost named]# vim .zone$TTL 1D@ IN SOA . rname.invalid. (0 ; serial1D; refresh1H; retry1W; expire3H ) ; minimumNS.A 127.0.0.1IN MX 5 '邮件交换记录'mail IN A 192.168.88.88 '→192.168.88.88'www IN A 192.168.66.66 '正向解析域名'smtp IN CNAME mail '别名解析,stmp是mail别名'* IN A 6.6.6.6 '泛域名解析,只解析6.6.6.6,网页上则无法方法'
5、清空防火墙规则和关闭核心防护,开启named功能
[root@localhost named]# setenforce 0 '关闭linux系统核心防护'[root@localhost named]# iptables -F '清空防火墙规则'[root@localhost named]# systemctl start named '开启named功能'
6、配置DNS服务器
[root@localhost named]# echo "nameserver 20.0.0.51" > /etc/resolv.conf
7、验证能否解析(正向解析、邮件交换记录、别名解析、泛域名解析成功)
[root@localhost named]# host has address 192.168.66.66[root@localhost named]# host has address 192.168.88.88[root@localhost named]# host is an alias for . has address 192.168.88.88[root@localhost named]# host has address 6.6.6.6
8、配置反向解析(192.168.99.99)
8-1 修改区域配置文件
[root@localhost named]# vim /etc/named.rfc1912.zones'把上面一段复制粘贴到下面'zone "1.0.0.127.in-addr.arpa" IN {type master;file "named.loopback";allow-update {none; };};zone "99.168.192.in-addr.arpa" IN {'地址倒过来写,只倒着写三段192.168.99.,最后一个99写在区域数据配置文件中'type master;file ".fan";'.fan代表反向解析的数据配置文件'allow-update {none; };};
8-2 修改区域数据配置文件
[root@localhost named]# pwd/var/named[root@localhost named]# lsdatanamed.canamed.localhost slavesdynamic named.empty named.loopback .zone[root@localhost named]# cp -p .zone .fan$TTL 1D@ IN SOA . . (0 ; serial1D; refresh1H; retry1W; expire3H ) ; minimumNS.A 127.0.0.199 IN PTR
8-3 重启named服务
[root@localhost named]# systemctl restart named
8-4 解析IP地址
[root@localhost named]# host 192.168.99.9999.99.168.192.in-addr.arpa domain name pointer .99.168.192.in-addr.arpa.
9、再开一台centos 7 作为网站服务器,安装apache,为另一台win 7 客户端提供服务
9-1 进入网卡编辑,并重启网卡
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens33UUID=13eb7ccf-6168-4877-bfad-b13e88fa8440DEVICE=ens33ONBOOT=yesIPADDR=192.168.66.66NATMASK=255.255.255.0GATEWAY=192.168.66.1DNS1=20.0.0.51[root@localhost ~]# service network restartRestarting network (via systemctl): [ 确定 ][root@localhost ~]# ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.66.66 netmask 255.255.255.0 broadcast 192.168.66.255inet6 fe80::37ae:2257:d351:2bed prefixlen 64 scopeid 0x20<link>ether 00:0c:29:d5:1f:7d txqueuelen 1000 (Ethernet)RX packets 67 bytes 7533 (7.3 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 35 bytes 4486 (4.3 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
9-2 安装apache服务
[root@localhost ~]# yum install httpd -y
9-3 清空防火墙规则、关闭linux系统核心防护、开启apache服务
[root@localhost ~]# iptables -F[root@localhost ~]# setenforce 0[root@localhost ~]# systemctl start httpd
9-2 编辑一个网页
[root@localhost ~]# cd /var/www/html[root@localhost html]# ls[root@localhost html]# vim index.html<h1>happy every day</h1>
10、在win 7 网页中搜索
2.2 构建主从域名服务器
两台centos 7虚拟机,第一台正向解析(用上一个实验的),第二台配置如下
1、修改主服务器,第一台centos 7
[root@localhost named]# vim /etc/named.rfc1912.zones '修改区域配置文件'zone "" IN {type master;file ".zone";allow-transfer {20.0.0.61; };};[root@localhost named]# systemctl restart named '重启named服务'
2、修改从服务器
2-1清空防火墙规则、关闭linux系统核心防护
[root@localhost ~]# iptables -F[root@localhost ~]# setenforce 0
2-2 安装bind服务
[root@localhost ~]# yum install bind -y
2-3 修改主配置文件
[root@localhost ~]# cd /var/named/[root@localhost named]# lsdata dynamic named.ca named.empty named.localhost named.loopback slaves[root@localhost named]# ls slaves[root@localhost named]# vim /etc/named.confoptions {listen-on port 53 {any; }; '改为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; }; '改为any,允许所有人访问'
2-4 修改区域配置文件
[root@localhost named]# vim /etc/named.rfc1912.zones 复制上面一行粘贴到下面并修改19 zone "localhost" IN {20 type master;21 file "named.localhost";22 allow-update {none; };23 };24 zone "" IN {'修改域名为'25 type slave; '类型为从服务器'26 file "slaves/.zone"; '关联到slaves/.zone从服务器区域数据配置文件'27 masters {20.0.0.51; }; '主服务器为20.0.0.51'28 };
2-5 启动named服务
[root@localhost named]# systemctl start named[root@localhost named]# ls slaves '查看'.zone
2-6 指定DNS服务器,并解析
[root@localhost named]# echo "nameserver 20.0.0.51" > /etc/resolv.conf[root@localhost named]# host has address 192.168.66.66[root@localhost named]# host has address 192.168.88.88[root@localhost named]# host has address 6.6.6.6
总结
1、DNS正向解析(邮件交换解析、别名解析、泛域名解析)区域配置文件中A记录条目
NS.A 127.0.0.1IN MX 5 '邮件交换记录'mail IN A 192.168.88.88 '→192.168.88.88'www IN A 192.168.66.66 '正向解析域名'smtp IN CNAME mail '别名解析,stmp是mail别名'* IN A 6.6.6.6 '泛域名解析,只解析6.6.6.6,网页上则无法方法'
2、DNS主从配置区域配置文件中关键代码块
主
[root@localhost named]# vim /etc/named.rfc1912.zones '修改区域配置文件'zone "" IN {type master;file ".zone";allow-transfer {20.0.0.61; };};
从
24 zone "" IN {'修改域名为'25 type slave; '类型为从服务器'26 file "slaves/.zone"; '关联到slaves/.zone从服务器区域数据配置文件'27 masters {20.0.0.51; }; '主服务器为20.0.0.51'28 };
Linux网络服务--DNS域名解析服务(正向解析 反向解析 邮件交换解析 别名解析 泛域名解析。以及主从域名服务器配置)