dns解析
dns:域名系统,将域名和ip地址互相映射的一个分布式的数据库,方便用户访问互联网。
ip地址:是所有设备和网站在互联网上的唯一地址,通信一定是ip和ip之间的通信。
dns解析:根据域名在互联网当中找到对应的ip地址并进行访问。
DNS的解析库以及域名的详解
www.baidu.com.cn.=www.baidu.com 从右往左
.(根域):根域的服务器在全球有13台,9台在美国,3台在欧洲,1台在日本
cn.:一级域,代表国家或者地区,例如(jp、us、kr、rs)
ipv6:根域服务器,(中国,美国)
com.cn.:二级域,表示组织机构,com 商业组织 edu 教育机构 org 非盈利性机构 net 运营商 gov *
baidu(狭义上的域名).com.cn.:三级域,企业或者组织在互联网上的唯一标识
www.baidu.com.cn.:主机名,主机站点 web mail 邮箱(应用)
解析库的建立
/etc/hosts 本地做解析 快 配置起来麻烦
运营商完成 (电信、移动、联通)
电信的dns解析的地址:218.2.135.1 江苏电信的dns解析地址
8.8.8.8:谷歌通用的dns解析地址
移动的解析地址:114.114.114.114 移动的dns解析地址
dns解析的端口(服务器):53端口 TCP的53 UDP的53端口
TCP的53端口:用于连接dns服务器
UDP的53端口:用于解析域名
dns域名的长度限制:每一级长度是63个字符,不能超过253个字符
访问www.baidu.com(dns的迭代和递归)
0、用户(访问www.baidu.com)
1、本地解析
2、运营商
3、根域(已经知道了结果,但是不会直接反馈,让你去下一级继续查找)
4、一级域(已经知道了结果,但是不会直接反馈,让你去下一级继续查找)
5、二级域(已经知道了结果,但是不会直接反馈,让你去下一级继续查找)
6、三级域(子域),结果已经有了,并反馈到运营商,或者是本地文件(需要手动操作),再反馈给用户。
从根域到子域的查询过程叫迭代,返回客户端的过程叫递归。
curl命令 直接测试web页面(是否可以浏览)
-I 查询webserver服务器
-k 给后台页面传参数
在实验环境中实现内网的dns解析
正向解析:通过域名可以获取ip地址
反向解析:通过ip地址获得域名
主从解析:两台服务器互为主备做dns解析
/etc/hosts和dns解析服务器谁的优先级高?本机高,但是只对本机有效
bind 内网解析dns,外网不行
实验
主服务器
第一步
apt -y install bind9
cd /etc/bind
root@cwq-virtual-machine:/etc/bind# vim named.conf.options
named.conf.options的配置文件
directory "/var/cache/bind";
listen-on port 53 {192.168.213.11;}; 监听哪一台主机的53端口
allow-query {192.168.213.0/24;}; 允许哪些服务器允许向dns服务器提交查询请求
第二步
root@cwq-virtual-machine:/etc/bind# vim named.conf.default-zones
named.conf.default-zones的配置文件
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "pikaqiu.com" {
type master; #状态为主服务器
file "/etc/bind/pikaqiu.local"; #建立域名映射需要参考该文件
allow-transfer { 192.168.213.31; }; #哪些DNS服务器允许获得主服务器的dns记录
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
zone "213.168.192.in-addr.arpa" {
type master;
file "/etc/bind/pikaqiu.local.zone";
allow-transfer { 192.168.213.31; };
};
pikaqiu.local的配置文件
pikaiqiu.local.zone的配置文件
$TTL 604800:
- 这行定义了默认的生存时间(TTL),单位为秒。604800秒等于7天,这意味着该区域文件中的所有记录在没有其他TTL指定时,默认缓存时间为7天。
@ IN SOA localhost. root.localhost. (:
- 这行定义了起始授权区域(SOA)记录。
@
符号表示当前区域文件的根域。IN
表示使用Internet标准。SOA
是起始授权区域的缩写。localhost. root.localhost.
是SOA记录的域名部分,通常包括主域名和托管该区域的邮局域名。serial 2:
- 这是SOA记录中的序列号,用于标识版本的更新。每次区域文件更新时,序列号应递增。这个数值帮助DNS服务器判断是否需要更新其缓存。
refresh 604800:
- 这是刷新时间,表示其他DNS服务器应该多久检查一次这个区域的最新状态。604800秒(7天)表示其他DNS服务器应在7天后尝试刷新缓存。
retry 86400:
- 这是重试时间,表示在刷新失败后,其他DNS服务器应该等待多久再次尝试刷新。86400秒(24小时)表示在刷新失败后会等待24小时再重试。
expire 2419200:
- 这是过期时间,表示超过这个时间后,DNS服务器将放弃该区域的缓存数据。2419200秒(60天)表示如果60天内没有收到更新,DNS服务器将认为该区域数据已过期。
Negative Cache TTL 604800:
- 这是负缓存TTL,表示其他DNS服务器缓存否定回答的时间。604800秒(7天)表示其他DNS服务器会将否定回答(如DNS查询失败)缓存7天。
IN NS localhost.:
- 这行定义了名称服务器(NS)记录,指定哪个DNS服务器负责解析这个区域。
IN
表示使用Internet标准。NS
是名称服务器的缩写。localhost.
表示本地主机作为名称服务器。IN A 127.0.0.1:
- 这行定义了A记录,将域名解析到IPv4地址。
IN
表示使用Internet标准。A
是IPv4地址的缩写。127.0.0.1
是本地回环地址,通常用于测试或本机服务。IN AAAA ::1:
- 这行定义了AAAA记录,将域名解析到IPv6地址。
IN
表示使用Internet标准。AAAA
是IPv6地址的缩写。::1
是本地回环地址,通常用于测试或本机服务。
从服务器
第一步
apt -y install bind9
cd /etc/bind
vim named.conf.options
named.conf.options的配置文件
directory "/var/cache/bind";
listen-on port 53 { any; };
allow-query { any; };
vim named.conf.default-zones
named.conf.defaults-zones的配置文件
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "pikaqiu.com" {
type slave; #状态为从服务器
file "pikaqiu.local"; #注定从服务器区域数据的文件
masters { 192.168.213.11; }; #指定主服务器的ip地址
};
zone "213.168.192.in-addr.arpa" {
type slave;
file "pikaqiu.local.zone";
masters { 192.168.213.11; };
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
检验命令
nslookup(查询域名系统(DNS)以获取域名或 IP 地址的相关信息) www.pikaqiu.com/192.168.213.31