linux之DNS主域,从域,缓存服务器的架设
DNS主域,从域,缓存服务器的架设
DNS域名系统 组织域 顶级域 域名解析过程迭代递归
DNS(Domain Name System )
在Internet中使用IP地址来确定计算机的地址。
为了便于对网络地址的管理和分配,所以采用了域名系统。
域名: 通过为每台主机建立IP地址与域名之间的映射关系,用户可以避开难记的IP地址,而使用域名来唯一标识网络中的计算机。域名和IP地址之间的关系,就像是某人的姓名和身份证号码之间的关系,显然,记住名字比记住身份证号码容易的多。
DNS解析过程
wwwbaidu.com 首先pc发送请求给DNS服务器 ,然后DNS负责把baidu.com所对应的IP返回给我们主机, 最后我们的主机通过百度的IP去上网,
把域名转换为ip地址的过程称为DNS解析过程.
2.主机名和域名的区别:
主机名是内网的名字 ; 完全域名是外网的名字(主机名+域名)。
主机名和域名其实是两个完全可以不同的名字,但是有很多软件(如邮件系统postfix)会默认认为它们一致。
在DNS中,域名包括 根域、顶级域、二级域和主机名。如下图
全世界共有13台DNS根域服务器。
顶级域:由Internet名称授权机构管理,有两种常见的类型。如下:
1)组织域(顶级域):
.com(商业) .org (组织) .edu(教育) .gov (政府) .net(通讯) .mil(军事) .info(信息)
2)国家或地区顶级域:
cn(中国) 、 hk(中国香港) 、 uk(英国) 等
FQDN=主机名.DNS后缀(FQDN,Fully Qualified Domain Name,完全合格的域名/全称域名)
完全域名 www.zzz.com.
www. 为主机名 zzz.com 域名 加起来就是完全域名
3.域名解析过程
查询 www.offcn.com过程
从查询方式分类(递归迭代)
递归查询:客户端得到结果只能是成功或失败, 得到一个查询的最终结果
迭代查询:DNS服务器如有客户机请求数据 则返回正确地址,
DNS服务器没有请求数据 则返回一个指针,指示下一步查询的方向
从查询内容分类(正向反向)
正向解析:根据主机名称(域名)查找对应的 IP 地址
反向解析:根据 IP 地址查找对应的主机域名
1.实验1制作缓存服务器
1.)安装bind软件 查看相关软件包
cd /var/named/配置文件位置
yum -y install bind*
rpm -qa | grep “^bind”安装好 查看软件包
相关安装包为:
bind-9.9.4-37.el7.x86_64.rpm:提供了域名服务的主要程序及相关文件
bind-chroot-9.9.4-37.el7.x86_64.rpm:为BIND服务提供一个伪装的根目录(将/var/named/chroot/文件夹作为BIND的根目录),以提高安全性。
bind-libs-9.9.4-37.el7.x86_64.rpm:提供了bind、bind-utils需要使用的函数 libs 函数库
bind-utils-9.9.4-37.el7.x86_64.rpm:提供了对DNS服务器的测试工具程序,如nslookup等 utils测试程序
2.)启动服务BIND 查看端口 服务控制(服务端)
BIND软件包安装完毕以后,会自1动增加一个名为named的系统服务,通过systemctl、service工具都可以控制DNS域名服务的运行。
systemctl start named启动named服务:
tail -f /var/log/messages注意:如果报错 调试命令 查看日志排错
netstat -antulp | grep name 查看端口 为:53
/usr/sbin/named主要执行程序
/usr/lib/systemd/system/named.service服务脚本:默认监听端口:53
3.)对配置文件语法检查
named-checkconf 工具
named-checkconf [可指定主配置文件]
named-checkzone 工具
named-checkzone <域名> <区域数据文件>
示例:
域名 offcn.com. 区域数据文件为 offcn.com.zone
4.)修改网卡和网络(服务器端) 开启dhcp获取IP的功能 虚拟机改为NAT
cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33 把自动获取开启,注释ip和掩码
systemctl restart network重启网络
ifconfig 查看网卡 会看到一个自动分配的IP
虚拟机改为NAT模式,使其能上网
5.)ping百度的地址.验证能否上网 (服务器端)
nslookup www.baidu.com
Server:192.168.100.2 ---dns解析的服务器100.2 (可用)
Address:192.168.100.2#53
Non-authoritative answer:
www.baidu.comcanonical name = www.a.shifen.com.
Name:www.a.shifen.com
Address: 182.61.200.7
Name:www.a.shifen.com
Address: 182.61.200.6
nslookup www.baidu.com 192.168.100.2 要解析的完全域名
要查询百度的ip地址 dns服务器的IP地址为192.168.100.2
6.)配置客户机的ip,使其自动获取 关闭客户机防火墙
客户机的IP
7)去服务器端改 /etc/named.conf dns配置文件 监听端口 (any)
vim /etc/named.conf文件位置
允许任何人来访问
查看这个
8.)重启服务 查看端口 确认根域的区域数据文件 named.ca
重启服务: systemctl restart named
重新加载 rndc reload
服务器缓存已经建好
1.启动named服务,并确定named服务的端口监听状态。
若服务启动失败或发现没有正常监听UDP53端口, 可以根据错误提示信息(或/var/log/messages文件中的日志记录)排除错误。
tail -f /var/log/messages注意:如果报错 调试命令
systemctl start named ---启动named服务
netstat -anpult | grep named ---确认查看named服务的端口监听状态
确认根域的区域数据文件 named.ca
根区域的区域数据文件默认位于文件/var/named/named.ca中,
该文件记录了Internet中13台根域服务器的域名和IP地址等相关信息。
grep -v "^;" /var/named/named.ca | grep -v ^$
筛选文件中, 不要开头是 分号的”;” 也不要空行 ,其余保留
A为ipv4 AAAA为ipv6
9.)修改客户机首选DNS
vim /etc/resolv.conf 首选DNS配置文件 把之前内容注释掉 备份
192.168.100.137 为服务器的ip 作为客户端的DNS
设置dns 指向 服务器的ip
10.)去客户机解析验证缓存是否成功
nslookup www.baidu.com 解析百度的IP
2实验:构建主DNS
主DNS架设 --需要两台虚拟机, 主DNS服务端和客户机
1.服务端 配置网卡 安装bind*软件 增加映射/etc/hostname 更改主机名字
配置主,,从DNS服务器的IP地址,使两者可相互通信 并更改主机名字,
hostnamectl set-hostname ns1.offcn.com --永久改主机名字
hostname --查看
2.)增加映射
去 vim /etc/hosts 编辑文件 增加主机映射
192.168.10.1 ns1.offcn.com
192.168.10.2 ns2.offcn.com
验证
ping ns1.offcn.com
安装软件查看配置yum环境 , 挂载光盘
yum clean all --清空缓存
yum -y install bind* --安装 卸载安装包:yum -y remove bind
2.主配置文件 named.conf 修改监听端口 添加正反解zone域
vim /etc/named.conf --修改主DNS的配置
options { ---修改监听端口
listen-on port 53 { any; }; ---允许监听53端口的ip ,any是本机任何人
listen-on-v6 port 53 { any; }; ----ipv6 允许监听53端口的ip
directory "/var/named"; ---设置域名服务的工作目录
dump-file "/var/named/data/cache_dump.db"; --运行rndc dumpdb备份缓存资料后保存的文件路径和名称
statistics-file "/var/named/data/named_stats.txt"; --运行rndc stats后,统计信息的保存路径和名称
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; -指定那个主机可以查询服务器的权威解析记录
添加一个正解 一个反解
正
zone "offcn.com" IN { ---zone定义域,希望维护的域名解析
type master; ----类型
masters{ 192.168.10.2;}; --允许下载区域文件的指定服务器IP指定主服务器的ip
file "offcn.com.zone"; ---下载的区域文件位置, 需要去创建named.ca文件
下载的保存到这里面
};
反
zone "10.168.192.in-addr.arpa" IN {
type master;
file "10.168.192.arpa";
allow-transfer {192.168.10.2;};
};
Type
Hint:当本地找不到解析的时侯,可以查询根域名服务器
Master : 定义权威域名服务器
Slave:定义辅助域名服务器
Forwad :定义转发域名服务器
其中 loaded serial 20191022 是序列号
3.建立正、反向 区域数据文件zone
根据named.conf中的zone区域设置,
分别建立正向区域数据文件offcn.com.zone,
反向区域数据文件10.168.192.arpa。
配置文件可以参考区域数据文件/var/named/named.localhost。
注意:要将区域数据文件的所有者改为named,所属的组改为:named,才能解析出ip地址
创建正向解析数据文件 vim /var/named/offcn.com.zone
1.)主要解析记录
主域名服务器:ns1.offcn.com.,192.168.10.1
从域名服务器:ns2.offcn.com.,192.168.10.2
两台服务器均能够提供 offcn.com 区域的域名解析
网站服务器“www.offcn.com.”,IP地址为“192.168.10.3”
邮件服务器“mail.offcn.com.”,IP地址为“192.168.10.4”
在线培训站点服务器“study.offcn.com.”,IP地址为“192.168.10.5”
主域名服务器“ns1.offcn.com.”,IP地址为“192.168.10.1”
从域名服务器“ns2.offcn.com.”,IP地址为“192.168.10.2”
cp named.localhost offcn.com.zone --前面指定文件为offcn.con.zone
vim /var/name/offcn.com.zone --新增正向和反向的数据文件 file指定位置
vim offcn.com.zone
注意:泛域名解析
在后面要加入泛域名解析:
* IN A 192.168.10.2
泛域名是指:* 代表了所有主机名
还可以增加别名:
ftp IN CAME www
因为之前指定了位置 所以新建位置要和配置位置要一样
$TTL 1D
@ IN SOA ns1.offcn.com. admin.offcn.com. ( -----完全域名
序列号 ---- 20191022 ; serial
缓存的TTL--- 1D ; refresh
刷新时间-- 1H ; retry
失效时间--- 1W ; expire
3H ) ; minimum
NS ns1.offcn.com. 完整的域名,ns1为主机吗,后面为域名
NS ns2.offcn.com.
ns1 A 192.168.10.1 ---ns1的ip配置
ns2 A 192.168.10.2
www A 192.168.10.3
mail A 192.168.10.4 ---邮件
study A 192.168.10.5 ---学习
ftp CNAME www ---ftp的别名为www,搜ftp会显示www的ip
* A 192.168.10.1 --泛域名解析,如kkk.offcn.com会显示ns1的IP kkk为 *任意
4.语法检查对正向反向配置文件检测
正向解析
named-checkconf 工 具
named-checkconf [可指定主配置文件]
反向解析
named-checkzone 工 具
named-checkzone <域名> <区域数据文件>
示例: 域名 offcn.com. 区域数据文件为 offcn.com.zone
5.建立反向解析
文件位置: /var /named
cp offcn.com.zone 10.168.192.arpa --改写前面配置好的 PTR反向解析
或者新建为cp named.loopback 10.168.192.arpa
vim 10.168.192.arpa ---编辑反向解析文件
$TTL 1D
@ IN SOA ns1.offcn.com. admin.offcn.com. (
序列号--- 20191022 ; serial
缓存的TTL 1D ; refresh
刷新时间--- 1H ; retry
失效时间-- 1W ; expire
3H ) ; minimum
NS ns1.offcn.com. --ns1完全域名解析
NS ns2.offcn.com.
1 PTR ns1.offcn.com. ---1为10.1反向解析ns1.offcn.com
2 PTR ns2.offcn.com.
3 PTR www.offcn.com ---3会显示www的反向解析
4 PTR mail.offcnn.com.
5 PTR study.offcn.com
~
6检测文件是否有错
格式:
named-checkzone 工 具
named-checkzone <域名> <区域数据文件>
示例:
域名 offcn.com. 区域数据文件为 offcn.com.zone
named-checkzone 10.168.192.in-addr.arpa 10.168.192.arpa
域名 区域数据文件为
8修改文件属组 拥有者
chown named:named offcn.com.zone 10.168.192.arpa*
9重新加载 named 服务,服务端配置完成 查看日志 端口 关闭防火墙
systemctl restart named --重启服务
nslk
1.)日志跟踪
tail -f /var/log/messages --查看有没有错
2.)检测端口
netstat -antulp |grep :53 --查看DNS的 53端口
192.168.10.1 是之前在/etc/named.conf 中指定监听53端口的IP
先用tcp 后用udp
3).关闭防火墙,配置完毕
iptables -F
iptables -X
iptables -Z
systemctl stop firewalld
setenforce 0
10.客户端 更改首选DNS文件 验证解析主域名服务器
验证正向解析:nslookup www.offcn.com
验证泛域名解析:nslookup xxyyzz.offcn.com
验证反向解析: nslookup 192.168.10.1
修改首选DNS的配置文件 vim /etc/resolv.conf
把DNS服务端的IP写到文件中
nameserver 192.168.10.1 ---客户机的DNS 指向服务器的IP
2.)解析地址 nslookup 正解
nslookup ns1.offcn.com
nslookup www.offcn.com
nslookup mail.offcn.com
nslookup study.offcn.com
nslookup ftp.offcn.com
验证反向解析
nslookup 192.168.10.1
3.)或者实验dig进行验证正向和反向解析
正向解析
dig -t A www.offcn.com @192.168.10.1
dig解析 -t 正向 指定解析类型A ipv4 AAAA为ipv6的类型
www.offcn.com @192.168.10.1
要解析的完全域名 向192.168.10.1解析
我现在要向10.1主机解析www.offcn.com的ip地址
反向解析
dig -x 192.168.10.1 @192.168.10.1
或者 dig -x 192.168.10.3 @192.168.10.1
10.3 10.4 10.5 等
3实验:构建从域名服务器DNS
1.配置网络,挂载镜像,安装bind软件
yum -y install bind* 主域和从域网络 要相同
2.编写主配置文件vi /etc/named.conf 添加zone正反向解析
vi /etc/named.conf 编写主配置文件
zone "offcn.com" IN {
type slave;
masters {192.168.10.1;};
file "slaves/offcn.com.zone";
};
zone "10.168.192.in-addr.arpa" IN {
type slave; ---类型
masters {192.168.10.1;};
file "slaves/10.168.192.arpa"; 文件位置
};
3.检测文件是否错误 查看端口 和slaves文件目录权限
named-checkconf
查看端口状态和文件权限
cd /var/named/
ls -ld slaves/ --查看slaves目录的权限
netstat -antulp |grep :53查看端口
4.重启服务查看区域数据文件是否成功下载
systemctl restart named重启 服务
rndc reload刷新 服务
5客户机 修改首选DNS 去验证解析
把客户机的DNS指向从域服务器的ip
vim /etc/resolv.conf --编辑文件
把从域服务器的IP写入
nameserver 192.168.10.2
解析
nslookup正解
nslookup ns1.offcn.com
nslookup www.offcn.com
nslookup mail. offcn.com
nslookup反解
nslookup 192.168.10.5
dig -t A正解
Dig -t A www.offcn.com
dig -X 反解
dig -x 192.168.10.4
4实验:子域授权
关闭dnssec功能 ,在DNS主服务端 /etc/named.conf
vim /etc/named.conf
关闭dnssec 功能: ---加强DNS安全性
dnssec-enable no;
dnssec-validation no
服务端加入ns3子域主机IP
vim /var/named/offcn.com.zone (在 ns1服务端的配置文件)
3.子域主机创建ujiuye.offcn.com的master区域
子域服务器10.254 做完配置 named-checkconf 检测是否有错
vim /etc/named.conf 全局配置文件
1.)关闭dnssec 功能:
dnssec-enable no;
dnssec-validation no
2.)在下面添加创建ujiuye.offcn.com的master区域
zone "ujiuye.offcn.com" IN {
type master;
file "ujiuye.offcn.com.zone";
};
监听端口为any ipv6也是any allow-query 允许访问的网段也是any
关闭dnssec 功能
--添加zone
3.)做完配置 named-checkconf 检测是否有错
4.)建立正解区域数据文件
cd /var/named/
cp named.localhost ujiuye.offcn.com.zone --建立ujiuye文件
vim ujiuye.offcn.com.zone
解读文件
$TTL 1D
@ IN SOA ujiuye.offcn.com. admin.ujiuye.offcn.com (
20191022 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1.ujiuye.offcn.com
ns1 A 192.168.10.254
www A 192.168.10.253
ftp A 192.168.10.252
mail A 192.168.10.251
~
5.更改拥有者 组的权限为named ,查看端口
chown named:named ujiuye.offcn.com.zonecd --更改所属者
查看端口 netstat -antulp | grep :53
6.重启named服务或重新加载
Systemctl restart named --重启服务
Rndc reload --重新加载
7.检测
dig www.ujiuye.offcn.com @192.168.10.1
因为是委派,所以直接测192.168.10.1上查询
或者
nslookup www.ujiuye.offcn.com 192.168.10.1
5.DNS文本 域名服务器 主域从域 缓存服务器 bind服务控制
DNS服务器软件BIND(Berkeley Internet Name Domain,伯克利Internet名字域),Linux使用这个软件包来提供域名服务,该软件实现了DNS协议。
BIND的服务端软件是被称作named的守护进程。
1.域名服务器
每一台DNS服务器都只负责管理一个有限范围(一个或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为“zone”(区域)。根据所管理的区域地址数据的来源不同,DNS系统可以分为不同的类型。在同一台DNS服务器中,相对于不同的区域来说,也拥有不同的身份。常见的几种类型如下:
1.)缓存域名服务器
也称 唯高速缓存服务器,通过向其他域名服务器查询获得域名
将IP 地址记录,将域名查询结果缓存到本地,提高重复查询时的速度
2.)主域名服务器
特定 DNS 区域的官方服务器,具有唯一性,负责维护该区域内所有域名 -> IP 地址的映射记录
3.)从域名服务器
也称 辅助域名服务器,其维护的 域名 -> IP 地址记录 来源于(下载于)主域名服务器
1BIND的安装和服务启停端口
BIND不是唯一能够提供域名服务的DNS服务程序,但它是应用最为广泛的,BIND可以运行在大多数Linux/UNIX主机中。
安装bind软件,
yum -y install bind*
BIND服务控制
BIND软件包安装完毕以后,会自动增加一个名为named的系统服务,通systemctl、service工具都可以控制DNS域名服务的运行。
启动named服务:
systemctl start named
注意:如果报错 调试命令为:
tail -f /var/log/messages
查看端口:
netstat -antulp | grep name 端口为:53
主要执行程序:
/usr/sbin/named
服务脚本:
/usr/lib/systemd/system/named.service 默认监听端口:53
2.BIND服务的 全局 区域 主配置文件 /etc/name.conf
BIND软件构建域名服务涉及两种类型的配置文件:主配置文件和区域数据文件。主配置文件用于设置named服务的全局选项、注册区域及访问控制等各种运行参数,
区域数据文件用于保存 DNS 解析记录的数据文件(正向或反向记录)。
配置文件位置 /etc/name.conf (安装的是bind-xxx软件包)
/var/named/chroot/etc/named.conf (安装的是bind-chroot-xxx软件包)
主配置文件中,主要包括全局配置、区域配置两个部分,
每一条配置记录的行尾以分号“;”表示结束,
以“#”号或“//”开始的部分表示注释文字(大段注释可以使用“/*......*/的格式”)
全局配置部分
如上图所示:
设置 DNS 服务器的全局参数包括监听地址/端口、数据文件的默认位置等使用 options { …… }; 的配置段
options {
listen-on port 53 { any; }; 监听地址和端口(53端口在等待请求)
listen-on-v6 port 53 {any; };
directory "/var/named"; 区域数据文件放置目录
allow-query { localhost; }; 允许使用的本DNS的网段
区域配置部分
正向解析
zone "zzz.com" IN { ---域 正向 “zzz.com” 的区域
type master; -- master 主区域 ,slave从区域
file "zzz.com"; 区域数据文件为zzz.com.zone 绝对路径在/var/named
这个域 解析的是192.168.10.2/24的ip地址
allow-transfer {192.168.10.2}; 允许这台主机下载named.ca的区域数据文件
};
反向解析
zone "10.168.192" IN { ---域 反向”10.168.192” 的区域
type master; --- master 主区域 ,slave从区域
file "10.168.192.arpa"; ----区域数据文件为10.168.192.arpa
设置本服务器 提供域名解析的特定 DNS 区域包括
域名zone、type服务器角色、file数据文件名等,使用 zone “区域名” IN { …… }; 的配置段
3保存 DNS 解析记录的数据文件 zone /var/named/
就是file指定的文件为
/var/named/(安装的是bind-xxx软件包)
/var/named/chroot/var/named/(安装的是bind-chroot-xxx软件包)
每个区域数据文件对应一个DNS解析区域,文件名及内容由该域的管理员自行设置。(要与在全局配置中指定的文件名一样,不然会出错)
在区域数据文件中,主要包括TTL配置项、
SOA(Start Of Authority,授权信息开始)记录、地址解析记录。
文件中的注释信息以分号“;”开始。
全局 TTL 配置项及 SOA 记录
如上图所示:
“@”表示当前的DNS区域名,相当于“offcn.com.”, $TTL(生存时间)
记录SOA(Start Of Authority,授权信息开始)记录,表示offcn.com这个域由哪一台DNS服务负责解析,
分号“;” 开始的部分表示注释信息 admin. = admin@ . =@
域名正向解析记录:vim /var/ named.localhost -文件位置
如上图所示: (ns1为服务器主机名)
@ 为我们添加的域offcn.com IN 指定因特网资源类型 @ 和IN可继承
@ IN NS ns1. offcn.com. :offcn.com这个域由ns1.offcn.com来解析 . 代表根域
FTP IN CNAME WWW 起别名 ftp = www
NS 域名服务器(Name Server):记录当前区域的DNS服务器的主机名
IN MX10 mail.offcn.com 表这个域负责邮件转发的是mail.offcn.com
MX 邮件交换(Mail Exchange):记录当前区域的邮件服务器的主机,数字10表示优先级。小的优先。IN前面没有@ 因为@可继承 ,所以省略.
添加域名和ip地址对应关系
ns 1 IN A 192.168.10.3 --ns1启用的资源类型是A,A代表地址
ns1这台服务器对应的ipv4的IP地址为192.168.10.3 ns1=ns1.offcn.com.
A 地址(Address):记录正向解析条目,只用在正向解析区域中
ftp = www
CNAME 别名(Canonical Name):记录某一个正向解析条目的其他名称
注:其中,NS、MX记录行首的“@”符号可以省略(默认继承SOA记录行首的@信息),但是必须保留一个空格或Tab制表位。
域名反向记录解析: vim /var/ named.loopback --文件位置
如上图所示:
1 表示192.168.10.1的ip 只写最后一位
PTR(启用的资源类型为PTR): 反向解析, ip地址和域名的对应关系
注意
如果漏写的话 反向解析出来就是 www.offcn.com.offcn.com.
PTR 指针(Point)记录,只用在反向解析区域中,记录的第一列指定 IP 地址中的主机地址部分即可。
如上述中的“4 IN PTR mail.offcn.com.”表示IP地址为192.168.10.4的主机的域名是maiil.offcn.com.
注:在区域数据配置文件中,凡是不以点号“.”结尾的主机地址,系统在查找地址记录时都会自动将当前的域名作为后缀。例如,若当前的DNS域为“offcn.com”,则在文件中的主机名“www”相当于“www.benet.com.”。
因此,当使用完整的FQDN地址时,务必记得地址末尾的点号“.”不能省略。
DNS域名系统 组织域 顶级域 域名解析过程迭代递归
DNS(Domain Name System )
在Internet中使用IP地址来确定计算机的地址。
为了便于对网络地址的管理和分配,所以采用了域名系统。
域名: 通过为每台主机建立IP地址与域名之间的映射关系,用户可以避开难记的IP地址,而使用域名来唯一标识网络中的计算机。域名和IP地址之间的关系,就像是某人的姓名和身份证号码之间的关系,显然,记住名字比记住身份证号码容易的多。
DNS解析过程
wwwbaidu.com 首先pc发送请求给DNS服务器 ,然后DNS负责把baidu.com所对应的IP返回给我们主机, 最后我们的主机通过百度的IP去上网,
把域名转换为ip地址的过程称为DNS解析过程.
2.主机名和域名的区别:
主机名是内网的名字 ; 完全域名是外网的名字(主机名+域名)。
主机名和域名其实是两个完全可以不同的名字,但是有很多软件(如邮件系统postfix)会默认认为它们一致。
在DNS中,域名包括 根域、顶级域、二级域和主机名。如下图
全世界共有13台DNS根域服务器。
顶级域:由Internet名称授权机构管理,有两种常见的类型。如下:
1)组织域(顶级域):
.com(商业) .org (组织) .edu(教育) .gov (政府) .net(通讯) .mil(军事) .info(信息)
2)国家或地区顶级域:
cn(中国) 、 hk(中国香港) 、 uk(英国) 等
FQDN=主机名.DNS后缀(FQDN,Fully Qualified Domain Name,完全合格的域名/全称域名)
完全域名 www.zzz.com.
www. 为主机名 zzz.com 域名 加起来就是完全域名
3.域名解析过程
查询 www.offcn.com过程
从查询方式分类(递归迭代)
递归查询:客户端得到结果只能是成功或失败, 得到一个查询的最终结果
迭代查询:DNS服务器如有客户机请求数据 则返回正确地址,
DNS服务器没有请求数据 则返回一个指针,指示下一步查询的方向
从查询内容分类(正向反向)
正向解析:根据主机名称(域名)查找对应的 IP 地址
反向解析:根据 IP 地址查找对应的主机域名
1.实验1制作缓存服务器
1.)安装bind软件 查看相关软件包
cd /var/named/配置文件位置
yum -y install bind*
rpm -qa | grep “^bind”安装好 查看软件包
相关安装包为:
bind-9.9.4-37.el7.x86_64.rpm:提供了域名服务的主要程序及相关文件
bind-chroot-9.9.4-37.el7.x86_64.rpm:为BIND服务提供一个伪装的根目录(将/var/named/chroot/文件夹作为BIND的根目录),以提高安全性。
bind-libs-9.9.4-37.el7.x86_64.rpm:提供了bind、bind-utils需要使用的函数 libs 函数库
bind-utils-9.9.4-37.el7.x86_64.rpm:提供了对DNS服务器的测试工具程序,如nslookup等 utils测试程序
2.)启动服务BIND 查看端口 服务控制(服务端)
BIND软件包安装完毕以后,会自1动增加一个名为named的系统服务,通过systemctl、service工具都可以控制DNS域名服务的运行。
systemctl start named启动named服务:
tail -f /var/log/messages注意:如果报错 调试命令 查看日志排错
netstat -antulp | grep name 查看端口 为:53
/usr/sbin/named主要执行程序
/usr/lib/systemd/system/named.service服务脚本:默认监听端口:53
3.)对配置文件语法检查
named-checkconf 工具
named-checkconf [可指定主配置文件]
named-checkzone 工具
named-checkzone <域名> <区域数据文件>
示例:
域名 offcn.com. 区域数据文件为 offcn.com.zone
4.)修改网卡和网络(服务器端) 开启dhcp获取IP的功能 虚拟机改为NAT
cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33 把自动获取开启,注释ip和掩码
systemctl restart network重启网络
ifconfig 查看网卡 会看到一个自动分配的IP
虚拟机改为NAT模式,使其能上网
5.)ping百度的地址.验证能否上网 (服务器端)
nslookup www.baidu.com
Server:192.168.100.2 ---dns解析的服务器100.2 (可用)
Address:192.168.100.2#53
Non-authoritative answer:
www.baidu.comcanonical name = www.a.shifen.com.
Name:www.a.shifen.com
Address: 182.61.200.7
Name:www.a.shifen.com
Address: 182.61.200.6
nslookup www.baidu.com 192.168.100.2 要解析的完全域名
要查询百度的ip地址 dns服务器的IP地址为192.168.100.2
6.)配置客户机的ip,使其自动获取 关闭客户机防火墙
客户机的IP
7)去服务器端改 /etc/named.conf dns配置文件 监听端口 (any)
vim /etc/named.conf文件位置
允许任何人来访问
查看这个
8.)重启服务 查看端口 确认根域的区域数据文件 named.ca
重启服务: systemctl restart named
重新加载 rndc reload
服务器缓存已经建好
1.启动named服务,并确定named服务的端口监听状态。
若服务启动失败或发现没有正常监听UDP53端口, 可以根据错误提示信息(或/var/log/messages文件中的日志记录)排除错误。
tail -f /var/log/messages注意:如果报错 调试命令
systemctl start named ---启动named服务
netstat -anpult | grep named ---确认查看named服务的端口监听状态
确认根域的区域数据文件 named.ca
根区域的区域数据文件默认位于文件/var/named/named.ca中,
该文件记录了Internet中13台根域服务器的域名和IP地址等相关信息。
grep -v "^;" /var/named/named.ca | grep -v ^$
筛选文件中, 不要开头是 分号的”;” 也不要空行 ,其余保留
A为ipv4 AAAA为ipv6
9.)修改客户机首选DNS
vim /etc/resolv.conf 首选DNS配置文件 把之前内容注释掉 备份
192.168.100.137 为服务器的ip 作为客户端的DNS
设置dns 指向 服务器的ip
10.)去客户机解析验证缓存是否成功
nslookup www.baidu.com 解析百度的IP
2实验:构建主DNS
主DNS架设 --需要两台虚拟机, 主DNS服务端和客户机
1.服务端 配置网卡 安装bind*软件 增加映射/etc/hostname 更改主机名字
配置主,,从DNS服务器的IP地址,使两者可相互通信 并更改主机名字,
hostnamectl set-hostname ns1.offcn.com --永久改主机名字
hostname --查看
2.)增加映射
去 vim /etc/hosts 编辑文件 增加主机映射
192.168.10.1 ns1.offcn.com
192.168.10.2 ns2.offcn.com
验证
ping ns1.offcn.com
安装软件查看配置yum环境 , 挂载光盘
yum clean all --清空缓存
yum -y install bind* --安装 卸载安装包:yum -y remove bind
2.主配置文件 named.conf 修改监听端口 添加正反解zone域
vim /etc/named.conf --修改主DNS的配置
options { ---修改监听端口
listen-on port 53 { any; }; ---允许监听53端口的ip ,any是本机任何人
listen-on-v6 port 53 { any; }; ----ipv6 允许监听53端口的ip
directory "/var/named"; ---设置域名服务的工作目录
dump-file "/var/named/data/cache_dump.db"; --运行rndc dumpdb备份缓存资料后保存的文件路径和名称
statistics-file "/var/named/data/named_stats.txt"; --运行rndc stats后,统计信息的保存路径和名称
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; -指定那个主机可以查询服务器的权威解析记录
添加一个正解 一个反解
正
zone "offcn.com" IN { ---zone定义域,希望维护的域名解析
type master; ----类型
masters{ 192.168.10.2;}; --允许下载区域文件的指定服务器IP指定主服务器的ip
file "offcn.com.zone"; ---下载的区域文件位置, 需要去创建named.ca文件
下载的保存到这里面
};
反
zone "10.168.192.in-addr.arpa" IN {
type master;
file "10.168.192.arpa";
allow-transfer {192.168.10.2;};
};
Type
Hint:当本地找不到解析的时侯,可以查询根域名服务器
Master : 定义权威域名服务器
Slave:定义辅助域名服务器
Forwad :定义转发域名服务器
其中 loaded serial 20191022 是序列号
3.建立正、反向 区域数据文件zone
根据named.conf中的zone区域设置,
分别建立正向区域数据文件offcn.com.zone,
反向区域数据文件10.168.192.arpa。
配置文件可以参考区域数据文件/var/named/named.localhost。
注意:要将区域数据文件的所有者改为named,所属的组改为:named,才能解析出ip地址
创建正向解析数据文件 vim /var/named/offcn.com.zone
1.)主要解析记录
主域名服务器:ns1.offcn.com.,192.168.10.1
从域名服务器:ns2.offcn.com.,192.168.10.2
两台服务器均能够提供 offcn.com 区域的域名解析
网站服务器“www.offcn.com.”,IP地址为“192.168.10.3”
邮件服务器“mail.offcn.com.”,IP地址为“192.168.10.4”
在线培训站点服务器“study.offcn.com.”,IP地址为“192.168.10.5”
主域名服务器“ns1.offcn.com.”,IP地址为“192.168.10.1”
从域名服务器“ns2.offcn.com.”,IP地址为“192.168.10.2”
cp named.localhost offcn.com.zone --前面指定文件为offcn.con.zone
vim /var/name/offcn.com.zone --新增正向和反向的数据文件 file指定位置
vim offcn.com.zone
注意:泛域名解析
在后面要加入泛域名解析:
* IN A 192.168.10.2
泛域名是指:* 代表了所有主机名
还可以增加别名:
ftp IN CAME www
因为之前指定了位置 所以新建位置要和配置位置要一样
$TTL 1D
@ IN SOA ns1.offcn.com. admin.offcn.com. ( -----完全域名
序列号 ---- 20191022 ; serial
缓存的TTL--- 1D ; refresh
刷新时间-- 1H ; retry
失效时间--- 1W ; expire
3H ) ; minimum
NS ns1.offcn.com. 完整的域名,ns1为主机吗,后面为域名
NS ns2.offcn.com.
ns1 A 192.168.10.1 ---ns1的ip配置
ns2 A 192.168.10.2
www A 192.168.10.3
mail A 192.168.10.4 ---邮件
study A 192.168.10.5 ---学习
ftp CNAME www ---ftp的别名为www,搜ftp会显示www的ip
* A 192.168.10.1 --泛域名解析,如kkk.offcn.com会显示ns1的IP kkk为 *任意
4.语法检查对正向反向配置文件检测
正向解析
named-checkconf 工 具
named-checkconf [可指定主配置文件]
反向解析
named-checkzone 工 具
named-checkzone <域名> <区域数据文件>
示例: 域名 offcn.com. 区域数据文件为 offcn.com.zone
5.建立反向解析
文件位置: /var /named
cp offcn.com.zone 10.168.192.arpa --改写前面配置好的 PTR反向解析
或者新建为cp named.loopback 10.168.192.arpa
vim 10.168.192.arpa ---编辑反向解析文件
$TTL 1D
@ IN SOA ns1.offcn.com. admin.offcn.com. (
序列号--- 20191022 ; serial
缓存的TTL 1D ; refresh
刷新时间--- 1H ; retry
失效时间-- 1W ; expire
3H ) ; minimum
NS ns1.offcn.com. --ns1完全域名解析
NS ns2.offcn.com.
1 PTR ns1.offcn.com. ---1为10.1反向解析ns1.offcn.com
2 PTR ns2.offcn.com.
3 PTR www.offcn.com ---3会显示www的反向解析
4 PTR mail.offcnn.com.
5 PTR study.offcn.com
~
6检测文件是否有错
格式:
named-checkzone 工 具
named-checkzone <域名> <区域数据文件>
示例:
域名 offcn.com. 区域数据文件为 offcn.com.zone
named-checkzone 10.168.192.in-addr.arpa 10.168.192.arpa
域名 区域数据文件为
8修改文件属组 拥有者
chown named:named offcn.com.zone 10.168.192.arpa*
9重新加载 named 服务,服务端配置完成 查看日志 端口 关闭防火墙
systemctl restart named --重启服务
nslk
1.)日志跟踪
tail -f /var/log/messages --查看有没有错
2.)检测端口
netstat -antulp |grep :53 --查看DNS的 53端口
192.168.10.1 是之前在/etc/named.conf 中指定监听53端口的IP
先用tcp 后用udp
3).关闭防火墙,配置完毕
iptables -F
iptables -X
iptables -Z
systemctl stop firewalld
setenforce 0
10.客户端 更改首选DNS文件 验证解析主域名服务器
验证正向解析:nslookup www.offcn.com
验证泛域名解析:nslookup xxyyzz.offcn.com
验证反向解析: nslookup 192.168.10.1
修改首选DNS的配置文件 vim /etc/resolv.conf
把DNS服务端的IP写到文件中
nameserver 192.168.10.1 ---客户机的DNS 指向服务器的IP
2.)解析地址 nslookup 正解
nslookup ns1.offcn.com
nslookup www.offcn.com
nslookup mail.offcn.com
nslookup study.offcn.com
nslookup ftp.offcn.com
验证反向解析
nslookup 192.168.10.1
3.)或者实验dig进行验证正向和反向解析
正向解析
dig -t A www.offcn.com @192.168.10.1
dig解析 -t 正向 指定解析类型A ipv4 AAAA为ipv6的类型
www.offcn.com @192.168.10.1
要解析的完全域名 向192.168.10.1解析
我现在要向10.1主机解析www.offcn.com的ip地址
反向解析
dig -x 192.168.10.1 @192.168.10.1
或者 dig -x 192.168.10.3 @192.168.10.1
10.3 10.4 10.5 等
3实验:构建从域名服务器DNS
1.配置网络,挂载镜像,安装bind软件
yum -y install bind* 主域和从域网络 要相同
2.编写主配置文件vi /etc/named.conf 添加zone正反向解析
vi /etc/named.conf 编写主配置文件
zone "offcn.com" IN {
type slave;
masters {192.168.10.1;};
file "slaves/offcn.com.zone";
};
zone "10.168.192.in-addr.arpa" IN {
type slave; ---类型
masters {192.168.10.1;};
file "slaves/10.168.192.arpa"; 文件位置
};
3.检测文件是否错误 查看端口 和slaves文件目录权限
named-checkconf
查看端口状态和文件权限
cd /var/named/
ls -ld slaves/ --查看slaves目录的权限
netstat -antulp |grep :53查看端口
4.重启服务查看区域数据文件是否成功下载
systemctl restart named重启 服务
rndc reload刷新 服务
5客户机 修改首选DNS 去验证解析
把客户机的DNS指向从域服务器的ip
vim /etc/resolv.conf --编辑文件
把从域服务器的IP写入
nameserver 192.168.10.2
解析
nslookup正解
nslookup ns1.offcn.com
nslookup www.offcn.com
nslookup mail. offcn.com
nslookup反解
nslookup 192.168.10.5
dig -t A正解
Dig -t A www.offcn.com
dig -X 反解
dig -x 192.168.10.4
4实验:子域授权
关闭dnssec功能 ,在DNS主服务端 /etc/named.conf
vim /etc/named.conf
关闭dnssec 功能: ---加强DNS安全性
dnssec-enable no;
dnssec-validation no
服务端加入ns3子域主机IP
vim /var/named/offcn.com.zone (在 ns1服务端的配置文件)
3.子域主机创建ujiuye.offcn.com的master区域
子域服务器10.254 做完配置 named-checkconf 检测是否有错
vim /etc/named.conf 全局配置文件
1.)关闭dnssec 功能:
dnssec-enable no;
dnssec-validation no
2.)在下面添加创建ujiuye.offcn.com的master区域
zone "ujiuye.offcn.com" IN {
type master;
file "ujiuye.offcn.com.zone";
};
监听端口为any ipv6也是any allow-query 允许访问的网段也是any
关闭dnssec 功能:
--
--添加zone
3.)做完配置 named-checkconf 检测是否有错
4.)建立正解区域数据文件
cd /var/named/
cp named.localhost ujiuye.offcn.com.zone --建立ujiuye文件
vim ujiuye.offcn.com.zone
解读文件
$TTL 1D
@ IN SOA ujiuye.offcn.com. admin.ujiuye.offcn.com (
20191022 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1.ujiuye.offcn.com
ns1 A 192.168.10.254
www A 192.168.10.253
ftp A 192.168.10.252
mail A 192.168.10.251
~
5.更改拥有者 组的权限为named ,查看端口
chown named:named ujiuye.offcn.com.zonecd --更改所属者
查看端口 netstat -antulp | grep :53
6.重启named服务或重新加载
Systemctl restart named --重启服务
Rndc reload --重新加载
7.检测
dig www.ujiuye.offcn.com @192.168.10.1
因为是委派,所以直接测192.168.10.1上查询
或者
nslookup www.ujiuye.offcn.com 192.168.10.1
5.DNS文本 域名服务器 主域从域 缓存服务器 bind服务控制
DNS服务器软件BIND(Berkeley Internet Name Domain,伯克利Internet名字域),Linux使用这个软件包来提供域名服务,该软件实现了DNS协议。
BIND的服务端软件是被称作named的守护进程。
1.域名服务器
每一台DNS服务器都只负责管理一个有限范围(一个或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为“zone”(区域)。根据所管理的区域地址数据的来源不同,DNS系统可以分为不同的类型。在同一台DNS服务器中,相对于不同的区域来说,也拥有不同的身份。常见的几种类型如下:
1.)缓存域名服务器
也称 唯高速缓存服务器,通过向其他域名服务器查询获得域名
将IP 地址记录,将域名查询结果缓存到本地,提高重复查询时的速度
2.)主域名服务器
特定 DNS 区域的官方服务器,具有唯一性,负责维护该区域内所有域名 -> IP 地址的映射记录
3.)从域名服务器
也称 辅助域名服务器,其维护的 域名 -> IP 地址记录 来源于(下载于)主域名服务器
1BIND的安装和服务启停端口
BIND不是唯一能够提供域名服务的DNS服务程序,但它是应用最为广泛的,BIND可以运行在大多数Linux/UNIX主机中。
安装bind软件,
yum -y install bind*
BIND服务控制
BIND软件包安装完毕以后,会自动增加一个名为named的系统服务,通systemctl、service工具都可以控制DNS域名服务的运行。
启动named服务:
systemctl start named
注意:如果报错 调试命令为:
tail -f /var/log/messages
查看端口:
netstat -antulp | grep name 端口为:53
主要执行程序:
/usr/sbin/named
服务脚本:
/usr/lib/systemd/system/named.service 默认监听端口:53
2.BIND服务的 全局 区域 主配置文件 /etc/name.conf
BIND软件构建域名服务涉及两种类型的配置文件:主配置文件和区域数据文件。主配置文件用于设置named服务的全局选项、注册区域及访问控制等各种运行参数,
区域数据文件用于保存 DNS 解析记录的数据文件(正向或反向记录)。
配置文件位置 /etc/name.conf (安装的是bind-xxx软件包)
/var/named/chroot/etc/named.conf (安装的是bind-chroot-xxx软件包)
主配置文件中,主要包括全局配置、区域配置两个部分,
每一条配置记录的行尾以分号“;”表示结束,
以“#”号或“//”开始的部分表示注释文字(大段注释可以使用“/*......*/的格式”)
全局配置部分
如上图所示:
设置 DNS 服务器的全局参数包括监听地址/端口、数据文件的默认位置等使用 options { …… }; 的配置段
options {
listen-on port 53 { any; }; 监听地址和端口(53端口在等待请求)
listen-on-v6 port 53 {any; };
directory "/var/named"; 区域数据文件放置目录
allow-query { localhost; }; 允许使用的本DNS的网段
区域配置部分
正向解析
zone "zzz.com" IN { ---域 正向 “zzz.com” 的区域
type master; -- master 主区域 ,slave从区域
file "zzz.com"; 区域数据文件为zzz.com.zone 绝对路径在/var/named
这个域 解析的是192.168.10.2/24的ip地址
allow-transfer {192.168.10.2}; 允许这台主机下载named.ca的区域数据文件
};
反向解析
zone "10.168.192" IN { ---域 反向”10.168.192” 的区域
type master; --- master 主区域 ,slave从区域
file "10.168.192.arpa"; ----区域数据文件为10.168.192.arpa
设置本服务器 提供域名解析的特定 DNS 区域包括
域名zone、type服务器角色、file数据文件名等,使用 zone “区域名” IN { …… }; 的配置段
3保存 DNS 解析记录的数据文件 zone /var/named/
就是file指定的文件为
/var/named/(安装的是bind-xxx软件包)
/var/named/chroot/var/named/(安装的是bind-chroot-xxx软件包)
每个区域数据文件对应一个DNS解析区域,文件名及内容由该域的管理员自行设置。(要与在全局配置中指定的文件名一样,不然会出错)
在区域数据文件中,主要包括TTL配置项、
SOA(Start Of Authority,授权信息开始)记录、地址解析记录。
文件中的注释信息以分号“;”开始。
全局 TTL 配置项及 SOA 记录
如上图所示:
“@”表示当前的DNS区域名,相当于“offcn.com.”, $TTL(生存时间)
记录SOA(Start Of Authority,授权信息开始)记录,表示offcn.com这个域由哪一台DNS服务负责解析,
分号“;” 开始的部分表示注释信息 admin. = admin@ . =@
域名正向解析记录:vim /var/ named.localhost -文件位置
如上图所示: (ns1为服务器主机名)
@ 为我们添加的域offcn.com IN 指定因特网资源类型 @ 和IN可继承
@ IN NS ns1. offcn.com. :offcn.com这个域由ns1.offcn.com来解析 . 代表根域
FTP IN CNAME WWW 起别名 ftp = www
NS 域名服务器(Name Server):记录当前区域的DNS服务器的主机名
IN MX10 mail.offcn.com 表这个域负责邮件转发的是mail.offcn.com
MX 邮件交换(Mail Exchange):记录当前区域的邮件服务器的主机,数字10表示优先级。小的优先。IN前面没有@ 因为@可继承 ,所以省略.
添加域名和ip地址对应关系
ns 1 IN A 192.168.10.3 --ns1启用的资源类型是A,A代表地址
ns1这台服务器对应的ipv4的IP地址为192.168.10.3 ns1=ns1.offcn.com.
A 地址(Address):记录正向解析条目,只用在正向解析区域中
ftp = www
CNAME 别名(Canonical Name):记录某一个正向解析条目的其他名称
注:其中,NS、MX记录行首的“@”符号可以省略(默认继承SOA记录行首的@信息),但是必须保留一个空格或Tab制表位。
域名反向记录解析: vim /var/ named.loopback --文件位置
如上图所示:
1 表示192.168.10.1的ip 只写最后一位
PTR(启用的资源类型为PTR): 反向解析, ip地址和域名的对应关系
注意
如果漏写的话 反向解析出来就是 www.offcn.com.offcn.com.
PTR 指针(Point)记录,只用在反向解析区域中,记录的第一列指定 IP 地址中的主机地址部分即可。
如上述中的“4 IN PTR mail.offcn.com.”表示IP地址为192.168.10.4的主机的域名是maiil.offcn.com.
注:在区域数据配置文件中,凡是不以点号“.”结尾的主机地址,系统在查找地址记录时都会自动将当前的域名作为后缀。例如,若当前的DNS域为“offcn.com”,则在文件中的主机名“www”相当于“www.benet.com.”。
因此,当使用完整的FQDN地址时,务必记得地址末尾的点号“.”不能省略。
linux之DNS主域,从域,缓存服务器的架设的更多相关文章
- Linux:DNS主、从、缓存服务器配置、DNS同步加密TSIG配置、DNS分离解析配置
DNS主服务器配置(正向解析.反向解析) 正向解析:根据主机名查找对应的IP地址.当用户访问一个域名时(不考虑hosts文件等因素),正常情况会向指定的DNS主机发送递归查询请求反向解析:根据IP地址 ...
- DNS BIND配置 配置基本缓存服务器 DNS正向解析 DNS反向解析
一. 缓存服务器配置 1.DNS:BIND Berkeley Internet Name Domain 版本bind97: RPM服务器端包的名字 安装bind-libs bind ...
- 【Linux】DNS服务-BIND从服务器、缓存服务器及转发服务器配置(三)
环境 操作系统:CentOS 6.5 DNS软件:bind(安装参照:[Linux]DNS服务-BIND基础配置(二)) BIND从服务器 从服务器就是在bind的主配置文件中添加从域example. ...
- Linux刷新DNS缓存
网上查了下,发现linux刷新dns的缓存方法都是: sudo /etc/init.d/nscd restart 但是在我的机器上,发现提示命令找不到: sudo /etc/init.d/nscd: ...
- Linux下搭建DNS缓存服务器
CentOS 6.10搭建本地DNS缓存服务器系统环境 1 [root@test ~]# cat /etc/redhat-release 2 CentOS release 6.10 (Final) 3 ...
- 利用Linux的Samba服务模拟NT域
利用Linux的Samba服务模拟NT域 Samba是一个与Windows NT具有相同协议的软件包.我们可以利用Samba服务来模拟 Windows NT域,使用户从Windows计算机上直接使用一 ...
- Linux下DNS简单部署(主从域名服务器)
一.DNS简介DNS(Domain Name System),域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通 ...
- Linux下DNS服务器搭建详解
Linux下DNS服务器搭建详解 DNS 即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制.其中通过域名解析 ...
- dig与dns基本理论——解析和缓存
DNS(Domain Name System,域名系统)也许是我们在网络中最常用到的服务,它把容易记住的域名,如 www.google.com 翻译成人类不易记住的IP地址,如 173.194.127 ...
随机推荐
- c++随机生成树
分析 当我们写完一道题,自认为它是正解,但是交上去却WA的时候,我们该怎么办呢 当我们已经想出了一道的暴力解法,又想出了一种比较优秀的解法,但不知道这种解法对错与否,我们该怎么办呢 答案显然是对拍 对 ...
- 安装nodejs,npm,yarn
先安装nodejs和npm sudo apt update sudo apt install nodejs npm #验证一下 nodejs --version npm --version 如果nod ...
- 痞子衡嵌入式:其实i.MXRT1050,1020,1015系列ROM也提供了FlexSPI driver API
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1050/1020/1015系列ROM中的FlexSPI驱动API使用. 今天痞子衡去4S店给爱车做保养了,保养一次要等两小 ...
- Mysql基础(六):索引、数据库备份、锁和事务、慢查询优化、索引命中相关
目录 数据库05 /索引.数据库备份.锁和事务.慢查询优化.索引命中相关 1. 什么是索引 2. 索引的原理 3. 索引的数据结构(聚集索引.辅助索引) 4. 索引操作 5. 索引的两大类型hash与 ...
- 数据可视化之powerBI技巧(三)这个Power BI技巧很可爱:利用DAX制作时钟
周末放松一下,给大家分享一个小技巧,仅利用DAX制作一个简易的时钟. 时钟效果如下: 这个时钟的制作只需一个度量值,你信吗? 事实上确实如此,制作步骤介绍如下: 1,新建参数,生成一个数字序列作为小时 ...
- XSS原理及代码分析
前言 XSS又叫跨站脚本攻击,是一种对网站应用程序的安全漏洞攻击技术.它允许恶意用户将代码注入网页,其他用户在浏览网页时就会受到影响.XSS分为三种:反射型,存储型,和DOM型.下面我会构造有缺陷的代 ...
- Python切图脚本
背景: 时值疫情,作业需要在网上提交.最近老师改变了交作业方式,之前是提交完整的作业图片即可,现在需要将完整的作业图片切分成一题一题的提交,如果手动切分较麻烦,故本人写了个python脚本实现自动切分 ...
- Spring AOP里的静态代理和动态代理,你真的了解嘛?
什么是代理? 为某一个对象创建一个代理对象,程序不直接用原本的对象,而是由创建的代理对象来控制原对象,通过代理类这中间一层,能有效控制对委托类对象的直接访问,也可以很好地隐藏和保护委托类对象,同时也为 ...
- node.js02 安装Node环境
安装Node环境 在node.js01中我大概了解了什么是node.js,这次进入起步阶段,首先要安装下Node环境. 开始安装 查看当前Node环境的版本号 win+r输入cmd进入命令行,输入no ...
- 高效C++:继承和实现
如何正确的使用继承和实现是本章说明的重点. 确定public继承的关系是is-a public继承等同于is-a 对public继承,所有base的特性,在derived上都适用 避免遮掩继承而来的名 ...