DNS的诞生背景
早期的网络,我们都是通过IP来访问网络资源
随着网络不断发展,规模逐渐庞大起来,点分十进制的IP地址难以记忆
为了将IP地址变得跟容易记忆,于是繁衍出了DNS
Hosts
在早期网络中只有几百台主机,他们使用一个叫hosts的文件,来实现主机名与IP地址之间的映射,我们最常见的localhost其实就是我们的127.0.0.1
但是网络规模越大,手动添加进hosts的配置就会越来越麻烦
维护起来更是一件要命的事情
DNS简介
为了解决Hosts维护困难的问题,上世纪80年代IETF发布了DNS域名系统(Domain Name System)
该系统采用C/S架构,用于域名和IP地址的互相解析
工作在应用层,使用的传输协议是TCP、UDP,服务端口号%3
域名
域名采用的是树型层次结构化
域名的根域以"."结尾表示符合FQDN(FullQualified Domain Name)
例如我博客www.breezecloud.cn中
cn是我的顶级域名,breezecloud是我的二级域名,www则表示为二级域名中的主机,每一级的域名都由英文字母和数字组成,域名不区分大小写,但是长度不能超过 63 字节,一个完整的域名不能超过 255 个字节
有几个特殊的域名需要了解一下
- 国家顶级域名:
采用ISO3166规定,.CN
表示中国,.US
表示美国,.UK
表示英国 - 国际顶级域名:
.INT
结尾的都是国际顶级域名,国际性组织使用 - 通用顶级域名:
最早最常用的有6个.COM
表示企业公司,.ORG
表示非盈利组织,.GOV
表示政府部门或机构(只有美国能用,国内用gov作为二级域名来表示,例如:www.gov.cn),.EDU
表示交于机构(也仅限美国使用,国内同样采用二级域名).AERO
用于航空运输业,.BIZ
用于企业公司,还有更多的通用顶级域名各位自行查阅文献
DNS解析流程
- 第1步:
DNS 客户端向本地域名服务器发送请求,查询 www.h3c.com.cn 主机的 IP 地址 - 第2步:
本地域名服务器检查其数据库,发现数据库中没有域名为 www.h3c.com.cn 的主机,于是将此请求发送给根域名服务器 - 第3步:
根域名服务器查询其数据库,发现没有该主机记录,但是根域名服务器知道能够解析该域名的 cn 域名服务器的地址,于是将 cn 域名服务器的地址返回给本地域名服务器 - 第4步:
本地域名服务器向 cn 域名服务器查询 www.h3c.com.cn 主机的 IP 地址 - 第5步:
cn 域名服务器查询其数据库,发现没有该主机记录,但是 cn 域名服务器知道能够解析该域名的 com.cn 域名服务器的地址,于是将 com.cn 的域名服务器的地址返回给本地域名服务器 - 第6步:
本地域名服务器再向 com.cn 域名服务器查询 www.h3c.com.cn 主机 IP 地址 - 第7步:
com.cn 域名服务器查询其数据库,发现没有该主机记录,但是 com.cn 域名服务器知道能够解析该域名的 h3c.com.cn 域名服务器的 IP 地址,于是将 h3c.com.cn 的域名服务器的 IP 地址返回给本地域名服务器 - 第8步:
本地域名服务器向 h3c.com.cn 域名服务器发送查询 www.h3c.com.cn 主机的 IP地址请求 - 第9步:
h3c.com.cn 域名服务器查询其数据库,发现有该主机记录,于是给本地域名服务器返回“www.h3c.com.cn”所对应的 IP 地址 - 第10步:
最后本地域名服务器将 www.h3c.com.cn 的 IP 地址返回给客户端。至此,整个解析过程完成
简单的来说分为四步
- 检查域名是否是本机域名
- 检查本地的DNS缓存
- 检查本机的hosts文件 C:\windows\system32\drivers\etc
- 查询DNS服务器
ipconfig /displaydns 查看本机DNS缓存
ipconfig /flushdns 清空本机DNS缓存
DNS 的查询方式
三种查询方式递归查询
、迭代查询
、反向查询
递归查询
DNS 服务器如果不能直接回应解析请求,它将以 DNS 客户端的方式继续请求其他 DNS 服务器,直到查询到该主机的域名解析结果
迭代查询
服务器查不到相应的记录,会向客户端返回一个可能知道结果的
域名服务器地址,由客户端继续向新的服务器发送查询请求
反向查询
客户端希望知道域名所对应的 IP 地址,这种查询我们称为正向查询,大部分的 DNS 查询都是正向查询
而反向查询,它允许 DNS 客户端根据已知的 IP 地址查找主机所对应的域名
华三设备实现DNS功能
目前能实现以下三种功能:静态解析
、动态解析
、DNS代理
静态解析
手动在设备上建立域名和IP地址之间的对应关系,有点像hosts
动态域名解析
动态域名解析就是由设备查询 DNS 域名服务器,由 DNS 域名服务器完成解析
DNS代理
DNS 代理(DNS proxy)用来在 DNS 客户端和 DNS 服务器之间转发 DNS 请求和应答报文,代替 DNS 客户端进行域名解析
和后面要将的DHCP中继代理原理差不多
相关配置
静态与动态的配置
/*配置静态域名解析表中主机名和对应IPv4地址*/
[Router] ip host [hostname] [ip-address] [ vpn-instance vpn-instance-name ]
/*配置指定域名服务器的IPv4地址*/
[Router] dns server [ip-address] [ vpn-instance vpninstance-name ]
/*配置域名后缀*/
[Router] dns domain [domain-name] [ vpn-instance vpn-instance-name]
DNS代理配置
/*开机DNS代理功能*/
[Router] dns proxy enable
/*设置指定的域名服务器地址*/
[Router] dns server [ip-address] [ vpn-instance vpninstance-name ]
常用的维护命令
/*显示静态域名解析表*/
[Router] display ip host [ ip | ipv6 ] [ vpn-instance vpn-instance-name ]
/*显示域名服务器的IPv4地址信息*/
[Router] display dns server [ dynamic ] [ vpninstance vpn-instance-name ]
/*显示域名后缀信息*/
[Router] display dns domain [ dynamic ] [ vpninstance vpn-instance-name ]