domain name server 域名解析 将域名转化成 ip 地址
这是个7层协议
既使用tcp53端口 (主从之间同步)
也使用udp53端口 (域名名字解析)
1,通过host 文件 分散的管理
①host 文件优先级最高
②host 文件所在位置
linux: /etc/hosts
windos: c:/windows/system32/drivers/etc/hosts
③host 文件格式
ip地址 域名
2,安装dn服务相关的软件 来实现dns解析
集中管理:内网环境下用bind
(全部交给一个服务机管理)
分布式的管理: 全世界 不可能交由一台机器管理,所以是一级管一级
1,www.baidu.com. 具体含义
. 根域
.com 顶级域(也叫一级域)
.baidu 二级域
www 主机名(前面没. 是主机名)
2,顶级域常见分类
.com 公司
.net 互联网公司
.cn 中国
. org 非盈利组织
.edu 教育
3,域解析
根的dns服务器 只能解析 主机名 加根域
顶级域的dns服务 只能解析 主机名加顶级域 加根域
二级域的dns服务 只能解析 主机名 加二级域 加顶级域 加根域
4,解析方式
正向解析:根据域名查找对应的IP地址
反向解析:根据IP地址查找对应的域名
1,文字版
外网过程
我要访问www.baidu.com服务器
1.先看我本机的 hosts 文件,如果有直接访问,如果没有就去找你设置缓存dns
2.如果 缓存服务器有,直接反馈结果 (递归),如果没有就需要迭代查询 ,直接去找 根域服务,
3.由于根域服务器 只能 解析根 无法解析 www.baidu.com 但是 根域服务器让你去找 一级域服务器
4.一级域发现自己 也解析 不了,让你去找二级域
5.二级域发现这台服务在自己的 管理范围内,直接反馈结果给 缓存服务器
6.缓存服务器再交给 客户
要解析几次和域名长度有关
2,架构图版
递归查询:问一次就得到结果
迭代查询:不会告诉我结果,会告诉我另一个人
注意:
1, 本地dns服务器:就是缓存服务器
2, 1,8 这两个加起来 就是递归
3, 递归 和迭代都能得到结果 ,递归只需一次 迭代需要问多次
1,缓存域名服务器
也称为DNS高速缓存服务器,通过向其他域名服务器查询获得域名->IP地址记录,将域名查询结果缓存到本地,提高重复查询时的速度
2,主域名服务器
特定DNS区域的权威服务器,具有唯一性,负责维护该区域内所有域名->IP地址的映射记录,需要自行建立所负责区域的地址数据文件
3,从域名服务器
也称为辅助域名服务器,是对主域名服务器的热备份,其维护的域名->IP地址记录来源于主域名服务器,需要从主域名服务器自动同步区域地址数据库
4,权威dns 服务器
只有他说了算, 最后解析成功的服务器为权威服务器
1,nslookup
dns 域名解析将域名翻译成 ip地址,然后封装数据包
解析的是 /etc/hosts 文件里的域名
2,host
host 域名
需要网络配置文件改成对应dns
3,dig
dig 域名 @ 服务机名
指定某个服务机解析域名
4,cat /etc/resolv.conf
查看当前 dns
1,named-checkconf 配置文件
检测配置文件格式是否有错
2,named-checkzone 数据库文件
检测数据库文件格式是否有错
3,systemctl status 程序名
当程序起不来报错
4,journalctl -xe --no-paper
当程序起不来报错
1,实验环境与理论知识
① bind 软件可以提供dns 服务
软件名叫 bind 服务名叫 named
软件包名 和程序服务名 不一样
rpm -ql 查 程序名(绿色可执行文件) 一般在 /usr/sbin 或者 /usr/bin
配置文件的位置 rpm -qc
② named主要配置文件
主配置文件 /etc/named.conf
域名配置文件 /etc/named.rfc1912.zones
数据库文件(定义域名和ip地址对应的关系) /var/named/数据库文件
2,具体实验步骤
2.1 安装bind
2.2 找到这个程序的主配置文件
2.3 去改主配置文件
2.4,我们注意观察主配置文件
将这两个地方改为 any
第一个any意思 是 监听这个网段 (只给这个网段提供dhcp 服务)
第二个any意思是任何人有权限 问我
看主配置文件最后部分,可以看到 根域在主配置文件
其他域名不建议放在主配置文件,建议放在子配置文件,就是这个include 这里
2.5,打开子配置文件, 加域名
2.6 这个数据库文件为什么在这?
运行 named 服务的时候, 是以 named 用户的身份运行
/var/named这个文件夹是 named 用户的 家目录
我们在主配置文件也能看到
2.7 所以我们去到 /var/named ls
我们本来需要手写一个数据库文件,但是有大佬给我们做了模板
2.8我们复制这个模板,改名 为 和子配置一样的名字
注意! 名字要和子配置文件里 名字一样
复制过来要保留文件属性!要用named 身份运行
2.9 我们编辑这个 数据库文件
2.10 数据库文件格式
0 ; serial #是否有更新 版本号 更新文件 手动把 0 加1 1D ; refresh #刷新时间 拉取时间 1H ; retry #失败后一个小时 后再试一次
1W ; expire #过期时间,老是拉取不了,1周以后过期 3H ) ; minimum #老是去查错误的解析地址,3小时内的缓存下,用户再查直接返回找不到
2.11 重启named 服务
2.12 dig 命令 指定服务机 给我解析域名
2.13 当客户在多输入w 和少输入w时 都能准确指到 www.wyq.com
就是将ip 地址解析为域名
反向解析要用host 命令
操作基本和正向解析一致,3点不通
1,子配置文件 zone 后面写ip地址 ,且ip 地址要倒过来写
2,数据库文件 域名和ip的位置也要反过来 PTR
3, 用 host 命令解析
当只有一台dns 服务机时,万一这台服务机坏了,其他客户机都不能正常上网了,这是生产环境所不允许的。所以解决办法是:
客户机的dns 指向多台服务机
服务机分主服务机和从服务机,当主服务机挂了,从服务机顶上
1,主服务机步骤
1.1 改网络配置文件
把dns1 改成主服务机的ip
把dns2改成从服务机的ip
1.2 重启网络, 查看dns 是否更改生效
1.3 ,改主服务机的 dns 主配置文件
两个改为any
1.4 改 主服务机的 dns 子配置文件
新增一个wyq.com 的域名 类型为主
1.5 改主服务机的 域名数据库文件
1.6 重启主 服务机的 named 程序
2,从服务机步骤
2.1,改网卡的配置文件
2.2, 重启网络,查看dns
2.3, 下载bind 改named 程序的主配置文件
2.4 改从服务机 的子配置文件
2.5 查看 从服务机 专门放和主服务机同步域名的文件,一开始是空的
2.6 从服务机启动named 服务 可以看到这个文件有域名了
此时主从服务机搭建完毕
3,模拟主服务机故障
3.1手动关闭主服务机 的named 服务
3.2.用 host命令解析域名,可以发现依旧解析成功,此时就是主服务机挂了,从服务机在工作
3.3 dig 命令看的更清楚,我们这边指定从服务机 来解析域名
4,主服务机更新域名,从服务机也立马同步
4.1
原理:
一开始主 的域名数据库文件不需要写 从是谁
因为从的子配置文件 写了主是谁
从 一开始的slaves 文件里面的是空的,他要主动找主同步域名的数据库文件,然后一天找主同步一次
我们这边改了主的域名数据库,想要从立即同步,就需要 主 主动给从
所以主的 域名配置文件 再加上从是谁,再改一下版本号(往上加1)
改了版本号后,从就知道 主 的域名配置文件更新了,从才知道要重新同步
4,2 修改主 的域名数据库文件
4.3 重新启动 主 的named 程序
4.4 发现从的slaves 文件时间更新了 说明同步成功
(如果不能立即同步,危害还是很大的,有可能主 从 两个服务器的同一个域名指向不同的ip)
CDN,是地理上分布的网络的代理服务器和它们的数据中心。目标是通过相对于最终用户在空间上分配服务来提供高可用性和高性能
作用:
提高速度
减少费用
静态资源:不需要二次处理 (在服务器什么样子,在客户机就是什么样子)
例如图片,text ,视频
动态资源:需要消耗cpu等 二次处理
一台服务器,对不同的两个网段区域进行解析
1,安装bind
2, 安装第二块网卡,两块网卡配置如下 dns 都改为自己
3,写 域名主配置文件
将根域域名删除
4,写 子配置文件
5,格式如下,分成两部分
lan 这边是192.168.100.0 段的域名设置
包含了根域 以及 kgc.com 等域名
kgc.com 的数据库文件在 /var/named/kgc.com.lan
同理
wan 这边是12.0.0.0 段的域名设置
包含了根域以及 kgc.com 等域名
kgc.com 的数据库文件在 /var/named/kgc.com.wan
6, 分别 设置 /var/named/kgc.com.lan
/var/named/kgc.com.wan 不同网段对应的域名数据库文件
把模版复制过去(保留权限)
7,重启 网络服务 重启named 服务
8,分别指定不同的网卡 解析同一域名