目录
在日常生活中人们习惯使用域名访问服务器,但机器间互相只认IP地址,域名与IP地址之间是多对一的关系,一个Ip地址不一定只对应一个域名,且一个域名只可以对应一个Ip地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。
DNS是”域名系统(Domain Name System)"的英文缩写。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS服务使用TCP和UDP的53端口,TCP的53端口用于连接DNS服务器,UDP的53端口用于解析DNS 每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
正向解析:根据域名查找对应的IP地址
反向解析:根据IP地址查找对应的域名
DNS系统的分布式数据结构
1、根域 位于域名空间最顶层,一般用一个 “.” 表示
2、顶级域 一般代表一种类型的组织机构或国家地区, 如:.net (网络供应商)、.com(工商企业)、.org(团体组织)、 .edu(教育机构)、.gov(政府部门)、.cn(中国国家域名)
3、二级域 用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,如 .cn 顶级域名下面设置的二级域名:.com .cn .net .cn .edu .cn
4、子域 二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名
5、主机 主机位于域名空间最下层,就是一台具体的计算机 如:www、mail 都是具体的计算机名字,可用www.sina.com.cn. 、mail.sina.com.cn. 来表示,这种表示方式称为FQDN(完全合格域名),也是这台主机在域名中的全名。
也称为DNS高速缓存服务器
通过向其他域名服务器查询获得域名->IP地址记录
将域名查询结果缓存到本地,提高重复查询时的速度
特定DNS区域的权威服务器,具有唯一性
负责维护该区域内所有域名>IP地址的映射记录
需要自行建立所负责区域的地址数据文件
也称为辅助域名服务器,时对主域名服务器的热备份
其维护的域名->IP地址记录来源于主域名服务器
需要从主域名服务器自动同步来源于主域名服务器
在不同系统中,存放本地名称解析配置文件的地址不同,例如Linux和windows
Linux:/etc/hosts
windows:c/windows/system32/drivers/etc/hosts
可以通过rpm -q --scripts bind 查看安装的脚本
再通过grep name /etc/services进行过滤端口
递归查询:一般指客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后,
若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)
迭代查询:一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对
方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起
进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需
要发起多次查询。(需要自己动手)
正向解析查询过程:1.先查看本机的缓存记录
2.查询hosts文件
3.查询DNS域名服务器,交给DNS域名服务器处理(以上为递归查询)
4.这个DNS服务器可能时本地域名服务器,也有个缓存,如果直接有结果就返回,没有就进行下一步
5.求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器
6.求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器
7.求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器
8.本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端
区域解析库:由众多资源记录RR组成
记录类型:A,AAAA,PTR,SOA,NS,CHAME,MX
A(internet Address):作用,域名解析成IP地址
AAAA(FQDN): --> IPV6
PTR(PoinTeR):反向解析,ip地址解析成域名
SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解
析库的第一条记录SOA,是起始授权机构记录,说明了在众多 NS 记录里哪一台才是主要的服务器。在任何DNS记录文件中,都是以SOA ( Startof Authority )记录开始。SOA资源记录表明此DNS名称服务器是该DNS域中数据信息的最佳来源。
MX(Mail eXchanger)邮件交换器
CNAME : Canonical Name,别名记录
name:当前区域名字,例如“lgy.com.”
vlaue:由多个部分组成
注意:
当前区域的主DNS服务器的正向解析,也可以使用当前区域的名字
当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换
主从服务区域传输相关定义及否定的答案的TTL
$TTL 1D
@ IN SOA master.kgc.com. admin.kgc.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
name: 当前区域的名字
value: 当前区域的某DNS服务器的名字,“ns.lgy.org”
相邻的两个资源记录的name相同,可以省略后面的
一个区域可以有多个NS记录
master IN NS lgy.com.
master IN NS lgy.com.
name: 当前区域的名字
value: 当前区域的某邮件服务器(smtp服务器)的主机名
一个区域内,MS记录可有多个,但是每个记录的value之前应该有个数字(0-99),表示此服务器的优先级,数字越小优先级越高
对于MS记录来说,任何服务器的名字后面都应该在后续有个A记录
mail IN MX 10 xm1.lgy.org
mail IN MX 10 xm2.lgy.org
mx1 A 192.168.77.10
mx1 A 192.168.77.102
name:某主机的域名服务器
value:主机名对应主机的IP地址
为了避免错误,需要通过泛域名解析进行解析到特定地址
www.lgy.com. IN A 4.4.4.4
* IN A 5.5.5.5
#代表泛域名
@ IN A 6.6.6.6
#代表不需要名字
name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1;而有特定后缀:in.addr.arpa.,所以完整写法为:4.3.2.1.in-addr.arpa.
value: FQDN
name:别名的FQDN
value:真正名字的FQDN
固定格式
name [TTL] IN rr_type value
缓存时间 Internet 区域解析库 值
$TTL 1D #有效解析记录的生存周期
@ in SOA benet.com. admin.benet.com. ( #“@"符号表示当前的DNS区域名
0 ; serial #更新序列号,可以是10位以内的整数
1D ; refresh #刷新时间,重新下载地址数据的间隔
1H ; retry #重试延时,下载失败后的重试间隔
1W ; expire #失效时间,超过该时间仍无法下载则放弃#
3H) ; minimum #无效解析记录的生存周期,
NS benet.com. #记录当前区域的DNS服务器的名称
A 192.168.80.10 #记录主机IP地址
IN MX 10 mail.benet.com. #MX为邮件交换记录,数字越大优先级越低
www IN A 192.168.80.10 #记录正向解析www.benet.com对应的IP
mail IN A 192.168.80.11 #MX为邮件交换记录,数字越大优先级低
ftp IN CNAME www #CNAME使用别名,ftp 是www的别名
* IN A 192.168.80.100 #泛域名解析,“*"代表任意主机名
配置之前需要进行主软卷和配置包管理软件的安装。
需要将防火墙和系统安装保护进行关闭,并且需要开启一下服务。
ens33中设置的需要将DNS地址改为本机地址127.0.0.1这边一定要更改!!!
网卡进行配置后,需要重启网卡才能生效:
systemctl restart network 重启网卡服务
更改网卡配置如下:
配置完成后,可以在cat /etc/resolv.conf 下查看是否能够生效:
完成后可以ping一下www.baidu.com,查看是否能够通信
此时就是安装了一个bind其它的操作没有,ping通百度的原因是每个根域自带十三台根域服务器。
切换到客户机上,需要将防火墙和系统安装保护进行关闭
对网卡进行更改:
进入编辑器后编辑DNS:
编辑完成后,重启一下服务会发现不可解析:用ping会发现未知的名称,用host会出现超时
切换到服务器:
可以rpm查看一下配置文件包,会看见conf结尾的为配置文件:
找到配置文件后,需要进行编辑配置文件:
配置监听53端口为any,允许查询改为any:
完成配置,进行DNS服务的重启:
设置完成后可以到客户机上进行host测试:
会发现可以解析域名。
内部DNS搭建:
进行区域的编辑,以便于管理:
进入后进行复制模板粘贴到模板最前方,进行编辑:
完成后wq保存退出。
切换到cd /var/named,进行拷贝保存
进入./lgy.com.zone进行编辑:
配置解释如下:
$TTL 1D #有效解析记录的生存周期
@ in SOA benet.com. admin.benet.com. ( #“@"符号表示当前的DNS区域名
0 ; serial #更新序列号,可以是10位以内的整数
1D ; refresh #刷新时间,重新下载地址数据的间隔
1H ; retry #重试延时,下载失败后的重试间隔
1W ; expire #失效时间,超过该时间仍无法下载则放弃#
3H) ; minimum #无效解析记录的生存周期,
NS benet.com. #记录当前区域的DNS服务器的名称
A 192.168.80.10 #记录主机IP地址
IN MX 10 mail.benet.com. #MX为邮件交换记录,数字越大优先级越低
www IN A 192.168.80.10 #记录正向解析www.benet.com对应的IP
mail IN A 192.168.80.11 #MX为邮件交换记录,数字越大优先级低
ftp IN CNAME www #CNAME使用别名,ftp 是www的别名
* IN A 192.168.80.100 #泛域名解析,“*"代表任意主机名
再重启一下服务:
完成后到客户端进行解析:
先修改服务器配置区域配置文件
zone "91.168.192.in-addr.arpa" IN {
type master;
file "lg.com.zone";
allow-update { none; };
进行编辑反向解析文件:
进入vim编辑:
编辑完成后,可以切换到客户机进行host查询DNS
环境搭建:配置主服务器地址为:192.168.22.100
配置从服务器地址为:192.168.22.102
先配置从服务器,需要将防火墙和安全子系统关闭,
再进行下述操作,及逆行安装bind软件(无论主从服务器都需要安装!!!!)
由于我之前已经安装就跳过此步骤:
进行配置文件的编写,端口监听改为任何人:
进入编辑器后,需要进行更改配置:
更改完后,进入编辑器
需要申明主服务器地址
启动一下配置文件:
此时可以cd到var下查看一下配置文件:
进行主服务器的配置:
进行端口监听放行所有人:
进入vim编辑器进行编辑:
设置为主服务器:
编辑完成后编辑文件,先要进行复制模板:
完成后保存退出。启动系统:
完成后可以进行验证:
添加一块网卡将其改为仅主机模式,两块快网卡都需要改为仅主机模式。
接下来进行配置:
将ens33的网卡复制到成ens37,并且修改配置
重启一下服务
选择两台windows计算机将其设置地址:
例如windows7设置,设置完成后测试一下网络连通性。
另外一台设置如下:
完成windows配置
回到linux中继续编辑
将其监听改为any
需要将下面的配置文件进行删除,如果不删除会出现不必要的问题哦!!
编辑配置文件,
配置信息:
view "lan" {
match-clients { 192.168.100.0/24; };
#匹配网段
zone "kgc.com" IN {
type master;
file "kgc.com.lan";
};
zone "." IN {
type hint;
file "named.ca";
};
};
view "wan" {
match-clients { 12.0.0.0/24; };
zone "kgc.com" IN {
type master;
file "kgc.com.wan";
};
zone "." IN {
type hint;
file "named.ca";
};
};
编辑完成后保存退出,进行复制模板文件并进行编辑
复制后进行编辑网络地址
相同操作进行另一台windows的编辑:
vim lgy.com.wan进行编辑
进入windows进行解析:
CentOS 默认没有启用DNS客户端缓存,安装nscd(Name Service Cache Daemon,名称服务缓存守护进
程)包可以支持DNS缓存功能减少DNS服务器压力,提高DNS查询速度
[root@centos7 ~]#yum -y install nscd
[root@centos7 ~]#systemctl enable --now nscd
#查看缓存统计信息
[root@centos7 ~]#nscd -g
#清除DNS客户端缓存
[root@centos7 ~]#nscd -i hosts
学习了正向解析,反向解析,主从解析和分离解析,需要掌握。
文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib
文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang
文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些
文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器
文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距
文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器
文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn
文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios
文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql
文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...
文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120
文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数