1.什么是DNS
DNS(Domain Name System域名系统)
是互联网上存储域名和ip映射关系的一个分布式数据库,它负责把域名转换成ip地址,或ip地址转换为域名。DNS运行于TCP/UDP的53端口上。
2.什么是高速缓存DNS
DNS服务器可以高速缓存从其他DNS服务器收到的DNS记录,也可以在DNS客户服 务中使用高速缓存,将其作为DNS客户端保存在最近的查询过程中得到的信息高速缓存的方法
3.DNS高速缓存的作用
当某个访问请求解析过一个域名以后,该解析记录就放置在缓存中,以后再有同样的解析请求,就直接从缓存中提供结果,加快了访问者的应答速度。
简介:
DNS(Domain Name Server)是基于tcp和udp协议的服务;实现IP与域名之间的映射;就像我们生活中的身份证号与名字之间的 映射一样。
在互联网这个大环境中,我们平时上网使用的都是类似于www.baidu.com的域名,这是我们人类易读的互联网,但是在实际的数据传输中,我们用到的都是ip地址,计算机无法直接识别我们常用的域名,因此我们就需要一个在我们和计算机之间做翻译的服务,而这个服务就是DNS。DNS是基于tcp和udp协议的服务,用于我们日常的域名解析帮助我们在域名和ip地址中相互转换,DNS所用端口为53端口,在linux中dns服务的服务名为named,安装包为bind,一般情况下我们可以在linux系统中直接通过“yum -y install bind”即可安装我们需要的DNS服务。
我们的域名作为数据存储在世界上13台根DNS服务器上,当我们需要查找域名时就会去这13台服务器去访问然后就会告诉你你询问的域名所对应的ip
DNS解析过程:
客户端先查看浏览器缓存和本地host文件,本地DNS解析缓存,没有的话就交给本地域名解析服务器(由运营商提供),本地域名缓存解析服务器收到解析请求后,先看本地缓存有没有,如果没有直接找域名根服务器,根收到www.google.com这个请求时,会说不明白在哪里,但是根节点服务器会返回.com给本地域名解析服务器,然后本地域名解析服务器再找.com,找到后,再找google.com,最终找到www.google.com这个主机
DNS分布
DNS查询过程
解析:
(1)将域名,主机名解析对应的ip地址 正向解析
(2)将IP地址解析成对应的主机名,域名 反向解析
详细的请求的顺序为:
环境:
[root@foundation1 ~]# //主机:172.25.1.250
[root@server1 ~]# //(服务器端)server1:17225.1.1
[root@server2 ~]# //(客户端) server2:17225.1.2
服务器端:
[root@server1 named]# systemctl start named
[root@server1 named]# systemctl enable named
[root@server1 named]# systemctl stop firewalld
[root@server1 named]# systemctl disable firewalld
[root@server1 named]# yum install -y bind //下载所需软件
[root@server1 named]# vim /etc/named.conf
options {
listen-on port 53 { any; }; //设置默认ip为所有
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";
allow-query { any; }; //设置所有访问均允许
forwarders {172.25.1.250;}; //dns高速缓存,指向其它DNS服务器
dnssec-validation no; //不做互联网认证
[root@server1 named]# systemctl restart named
[root@server1 ~]# netstat -antlp | grep named
[root@server1 named]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY=172.25.1.250 //设置网关为主机
[root@server1 named]# systemctl restart network
[root@server1 named]# vim /etc/resolv.conf //配置主配置文件
nameserver 192.168.43.1 //设置所需的dns
在客户端查询域名对应ip:
[root@server2 ~]# vim /etc/resolv.conf //将所需测试的主机设置为dns
[root@server2 ~]# dig www.baidu.com
耗时为1
[root@server2 ~]# dig www.baidu.com
耗时为0
//这说明DNS的高速缓存已经配置成功,显示出了dns缓存的目的,访问速度加快了
服务器端:
[root@server1 ~]# vim /etc/named.conf
# forwarders {172.25.1.250;}; //注释掉其中的forwarders那行,取消向其他主机询问,自己充当DNS
[root@server1 ~]# vim /etc/named.rfc1912.zones //也是named的配置文件,单独列出
zone"westos.com"IN{ ##域名
type master;
file"westos.com.zone"; ##正向解析域名文件
allow-update{none;};
};
[root@server1 ~]# cd /var/named
[root@server1 named]# cp -p named.localhost westos.com.zone //利用该模板生成正向解析域名文件
[root@server1 named]# vim westos.com.zone ##编辑域名解析文件
$TTL 1D //生存期, 默认单位为秒,另可设定为[W|D|H|M]
@ IN SOA dns.westos.com. root.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.1.100 //地址解析服务端
hello A 172.25.1.200 //自定义域名解析
- NS @ ; 直接输入域名,访问@
- A 127.0.0.1 ; 直接输入域名,解析到的IPV4的IP
- AAAA ::1 ; 直接输入域名,解析到的IPV6的IP
注释:
@ 相当于子配置文件中“ ”中所写的值,SOA相当于授权
1D 表示数据内容自动保存一天
[root@server1 named]# systemctl restart named
在客户端测试:
[root@server2 ~]# vim /etc/resolv.conf
nameserver 172.25.1.1 //确认添加nameserver 172.25.1.1
[root@server2 ~]# dig hello.westos.com
[root@server2 ~]# dig dns.westos.com
服务器端:
[root@server1 named]# vim westos.com.zone
$TTL 1D
@ IN SOA dns.westos.com. root.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.1.100
hello A 172.25.1.200
www CNAME node1.westos.com.
node1 A 172.25.1.110
node1 A 172.25.1.220
//CNAME 表示把规范名称转化为不规范名称
[root@server1 named]# systemctl restart named
在客户端测试
[root@server2 ~]# dig www.westos.com
[root@server2 ~]# dig www.westos.com
服务器端:
vim /etc/named.rfc1912.zones //将正向解析注释掉
zone "1.25.172.in-addr.arpa" IN { //域名对应的ip反向写,表示的是172.25.1这个ip段
type master;
file "westos.com.ptr"; //域名反向解析文件
allow-update { none; };
};
[root@server1 named]# cp -p named.localhost westos.com.ptr //用该模板拷贝出反向解析域名文件
[root@server1 named]# vim westos.com.ptr //编辑域名反向解析文件
$TTL 1D
@ IN SOA dns.westos.com. root.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.1.150 //地址解析服务端
222 PTR hello.westos.com. //反向解析的自定义内容
111 PTR linux.westos.com.
[root@server1 named]# systemctl restart named
在客户端测试:
dig -x 172.25.254.111
dig -x 172.25.254.222 //其中 -x 表示反向
环境:
服务器端: 主DNS(server1): 172.25.1.1 从DNS(server3): 172.25.1.3
客户端: server2: 172.25.1.2
三台主机均配置好yum源
服务器端:
主DNS:
[root@server1 ~]# vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { none; };
allow-transfer{172.25.1.2;};
also-notify{172.25.1.2;}; //从DNS的ip
};
systemctl restart named
从DNS:
[root@server3 ~]# yum install -y bind
[root@server3 ~]# systemctl start named
[root@server3 ~]# vim /etc/named.conf
options {
listen-on port 53 { 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";
allow-query { any; };
[root@server3 ~]# vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type slave; //将其设置为slave(备)
masters{172.25.1.1;}; //主dns的ip
file "westos.com.zone";
allow-update{ none; };
};
[root@server3 ~]# systemctl restart named
在服务端测试:
[root@server2 ~]# vim /etc/resolv.conf //修改nameserver为从DNS的ip
[root@server2 ~]# dig hello.westos.com
主DNS修改后测试,则从DNS自动更新
[root@server1 named]# vim westos.com.zone
$TTL 1D
@ IN SOA dns.westos.com. root.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.1.100
hello CNAME www
www A 172.25.1.115
www A 172.25.1.116
//修改后的域名解析文件
客户端进行测试:
[root@server2 ~]# dig hello.westos.com
实现内外网的分离
vim /etc/named.conf
注释掉
/*
zone"."IN{
type hint;
file"westos.ca";
};
include "/etc/named.rfc1912.zones;"
include "/etc/named.root.key";
*/
view localhost {
match-clients {172.25.254.106;};
zone "." IN {
type hint;
};
include "/etc/named.rfc1912.zones;"
};
view Anynet {
match-clients {any;};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.inter";
}; ##实现内外网分离
zone到key";
实现内外网的分离
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter ##外网配置文件
vim /etc/named.rfc1912.inter
zone"westos.com"IN{
type master;
file"westos.com.inter";
allow-update{none;};
cd /var/named
cp -p westos.com.zone westos.com.inter
vim westos.com.inter ##外网域名解析文件
客户端测试
vim /etc/resolv.conf ##为两个网络段的客户端配置nameserver
dig www.westos.com