👨🏻🎓博主介绍:大家好!我是李大白,一名运维容器运维工程师,热爱分享知识,很高兴在这里认识大家🌟
🌈擅长领域:云原生、数据库、自动化运维
🙏🏻如果本文章对各位小伙伴们有帮助的话,🍭关注+👍🏻点赞+🗣评论+📦收藏,我也会回访,互助!!!
🤝另本人水平有限,旨在创作简单易懂的文章,在文章描述时如有错,恳请各位大佬指正,在此感谢!!!
🍂 落叶而知秋,博闻而强识!
📕 精品专栏:Harbor大白话(企业级)
DNS服务基础
什么是DNS服务?
DNS是域名系统,解析域名的,使用域名替代IP访问,因为Ip是会变化的;
DNS有什么功能?
- 正向解析:根据注册的域名查找其对应的IP地址(域名解析)FQDN==>IP
- 反向解析:根据IP地址查找对应的注册域名(不常用)
DNS域名结构(树型结构)
FQDN
完全合格主机名,也叫全指量域名,即站点名+申请的域名(如vip.licabai.com.cn)
DNS域名管理
- IANA:互联网数字分配机构,整个域名系统的最高权威机构,主管DNS根等资源;
- CNNIC:中国互联网络信息中心,主管国家域;
- 域名注册/购买服务商:如华为云、阿里云等;
DNS服务器类型
- 主服务器:管理、维护所负责解析的域内解析库的服务器;
- 从服务器:从主服务器或从服务器“复制”(区域传输)解析库副本;
- 缓存服务器(转发器):主服务器发生变化时,主动通知从服务器;
DNS资源记录(RR)
- A 正向解析,后为ipv4地址
- MX邮件服务器地址
- AAAA正向解析,后为ipv6地址
- RTR反向解析,后为主机名
- NS标明当前区域DNS服务器
- GNAME别名记录,value(真正名字的FODN)
acl地址列表
为大批量的客户机地址建立列表;调用时指定列表名即可
$ vim /etc/named.conf
acl nsd { 192.168.4.207; 192.168.4.1; 192.168.4.2; 192.168.7.0/24; };
view "haha" {
match-clients { nsd; };
BIND域名服务
软件包:bind(域名服务包) 、bind-chroot(提供虚拟根支持,牢笼政策)
系统服务(程序名):named
默认端口:TCP/UDP 53
主配置文件:/etc/named.conf
$ vim /etc/named.conf
全局配置部分: 设置监听地址、端口、地址库存放位置等!
options {
listen-on port 53 {192.168.4.7;}; #监听地址和端口
"/var/named"; #地址文件的默认位置
allow-query {any;}; #允许任何客户机查询
};
区域配置部分:定义DNS区域、类型、地址文件路径等!
zone "tedu.cn" IN { #设置负责解析的域名,IN表示Internet
type master; #区域类型为主DNS服务器
file "tedu.cn.zone"; #自定义地址库文件名
};
- 检查配置语法
$ named-checkconf /etc/named.conf
部署单区域DNS服务器
1) 安装软件包
$ sudo yum install -y bind bind-chroot
$ id named
uid=25(named) gid=25(named) 组=25(named)
- bind: 域名服务包
- bind-chroot:提供虚拟根支持,牢笼政策
- 下载软件后会自动创建named用户
2) 修改主配置文件
$ sudo vim /etc/named.conf
options {
directory "/var/named"; // 地址库文件默认存放路径
};
zone "lidabai.cn" IN { // 设置负责解析的域名
type master; // 区域类型为主DNS服务器
file "lidabai.cn.zone"; // 自定义地址库文件名
};
$ named-checkconf /etc/named.conf // 检测语法是否有误
3) 建立地址库文件
$ cd /var/named/
$ cp -p named.localhost lidabai.cn.zone
$ vim lidabai.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial #数据的版本号
1D ; refresh #主从之间交互的时间
1H ; retry #重试时间间隔
1W ; expire #失效时间
3H ) ; minimum #失效记录的记忆时间
NS @
A 127.0.0.1
AAAA ::1
lidabai.cn NS svr7.dabai.cn
4) 启动named服务
$ systemctl restart named
$ systemctl enable named
5) 客户端配置
$ echo nameserver 192.168.4.7 > /etc/resolv.conf
$ nslookup www.lidabai.cn
特殊的解析记录
DNS轮询:基于DNS站点的负载均衡;
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.10
www A 192.168.4.20
www A 192.168.4.30
vip A 2.2.2.2
泛域名解析:以*条目匹配本域内未定义的任何主机地址,常用于正向解析;
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.10
* A 4.4.4.4 由上而下解析
解析记录的别名
mail CNAME vip
构建DNS的主从架构
- 服务器可以提供域名解析(子域授权 )
- 备份主DNS的数据
主服务器部署
修改主配置文件,指定从服务器的IP地址
vim /etc/named.conf
options {
directory "/var/named";
allow-transfer { 192.168.4.207; };
};
2.修改地址库文件,声明从服务器
vim /var/named/lidabai.cn.zone
lidabai.cn. NS svr7
lidabai.cn. NS pc207
svr7 A 192.168.4.7
pc207 A 192.168.4.207
从服务器配置
修改配置文件
$ vim /etc/named.conf
options {
directory "/var/named";
};
zone "tedu.cn" IN {
type slave;
file "/var/named/slaves/tedu.cn.slave";
#named用户对目录有写入权限
masters { 192.168.4.7; };
masterfile-format text; #从服务器地址库文件不再加密
};
部署缓存DNS服务器
作用:缓存解析结果,加快解析
安装软件包
$ sudo yum install -y bind bind-chroot
修改配置文件
$ vim /etc/named.conf
options {
directory "/var/named";
forwarders { 192.168.4.7; }; #转发给真正的DNS
};
SPlit分离解析
作用:为不同类别的客户机提供不同的解析结果(IP地址)
为不同的客户端,提供最近的服务器
分离解析的配置
1. 分类要合理,所有的客户端都要找到自己的分离
2. 匹配由上到下,依次进行匹配,匹配及停止
所有的zone都必须写在view中
view "haha" {
match-clients { 客户端来源地址1; 192.168.4.1; };
zone "12306.cn" IN {
…… 地址库1;
}; };
view "xixi" {
match-clients { 客户端来源地址2; any; };
zone "12306.cn" IN {
…… 地址库2;
}; };