DNS解析
DNS:域名系统,域名和IP地址互相映射的一个分布式的数据库。目的:方便用户访问互联网。
IP地址是所有设备和网站在互联网上的唯一地址。要通信一定是IP和IP之间的通信。
DNS解析:根据域名在互联网当中找到对应的IP地址,访问。
DNS的域名详解
www.baidu.com.cn.(从右往左)
“.“ :根域
”cn.“:一级域,国家或者地区;如jp、us、uk。
"com.cn.":二级域,表示组织机构;如com是商业组织、edu是教育机构、net是运营商。
"baidu.com.cn.":三级域(子域),企业或者组织在互联网上的唯一标识。
”www“:主机名,主机站点;如web、mail。
DNS解析库
- /etc/hosts:本地解析库,快,配置起来麻烦。
- 现在都是靠运营商完成。
电信的DNS解析的地址:218.2.135.1(江苏电信的DNS解析地址)、8.8.8.8(谷歌通用的DNS解析地址)、114.114.114.114(移动的DNS解析地址)。
DNS解析端口:53端口,TCP/UDP都是53端口。
- TCP的53端口用于连接DNS服务器
- UDP的53端口用于解析域名
DNS域名的长度限制:每一级(从一级域开始)长度是63个字节,总长度不超过253个字节。
迭代:从根域到子域的查询过程
递归:返回客户端的过程
测试访问web页面—curl
curl IP地址:直接测试访问web页面curl
curl -I IP地址:查询webserver版本
curl -K IP地址:给后台页面传参数
实现内网的DNS解析
解析分类
正向解析:通过域名可以获取IP地址
反向解析:通过IP获取对应的域名
主从解析:两台服务器互为主备做DNS解析
补充
问题:/etc/hosts和DNS解析服务的优先级谁高?
答案:本地优先级高,文件只能对当前的主机生效。
实现正反解析案例
使用bind软件——————>内网解析DNS,外网不行
下载完bind软件后,查看bind目录可见以下配置文件
- named.conf:bind的主配置文件,引入其他配置文件和区域定义
- named.conf.options:bind的主要配置和选项参数都记录在这个文件
- named.conf.default-zones:本地区域文件的详细配置,自定义配置都在这里完成
- db.loacl:区域数据配置文件,可以定制域名和IP地址的映射关系
- named.conf.local:本地的区域文件(对应的解析服务配置)
第一步:修改主配置文件
vim named.conf.options 配置文件,添加两行,并删除DNS6配置,具体操作如下:
- listen-on port 53 { 192.168.254.11或者直接any; };
- #开放本机的监听端口是53,IP地址是192.168.254.11(本机地址)
- allow-query { 192.168.254.0/24或者直接any; };
- #允许192.168.254.0/24网段的IP地址可以访问DNS解析服务
第二步:修改区域配置文件,添加正向和反向区域配置,并创建正向和反向区域数据文件。
vim named.conf.default-zones 配置文件,添加两端内容,上面一段是正向区域配置,下面一段是
反向区域配置,具体操作如下:
- zw110.local: 这是我为www. zw110.com 域创建的正向区域数据文件。
- zw110.local.zone: 这是我为www. zw110.com 域创建的反向区域数据文件。
接着我们使用 cp -a db.loacl zw110.local和zw110.local.zone 命令创建区域数据文件
第三步:配置正向和反向区域数据文件
vim zw110.local 配置正向区域数据文件,这里记录的就是如何对域名和IP做映射关系,以及数据
保存和混存时间,我们可以修改以下配置,具体操作如下:
- $TTL 604800:DNS缓存保存的时间(秒),即604800秒
- @:代表根域名 zw110.com
- IN SOA: 指定这是一条“Start of Authority”记录,标志着区域的起始
- zw110.com.:主名称服务器的域名
- admin.zw110.com.: 区域管理员的电子邮件地址(注意:@ 替换为 .)
- Serial::序列号,用于标识区域文件的版本,通常在每次更改区域文件时增加(在本例中为2)
- Refresh:其他 DNS 服务器应每604800秒(即7天)查询一次主服务器以获取更新
- Retry:如果主服务器未响应,其他服务器在86400秒(即1天)后重试
- Expire:如果主服务器长时间未响应(在2419200秒,即28天后),则停止提供该区域的记录
- Negative Cache TTL:当查询失败时,DNS服务器将缓存失败的响应604800秒(即7天)
- @ IN NS zw110.com.:指示 zw110.com. 域名的名称服务器(NS记录)
- @ IN A 192.168.254.100:这条记录将根域 zw110.com 映射到IP地址192.168.254.100,用户访问 zw110.com 时,会将请求发送到该 IP 地址。
- www IN A 192.168.254.100:www.zw110.com.对应的是IP地址192.168.254.100
vim zw110.local.zone 配置反向区域数据文件,具体操作如下:
- PTR:方向指针,反向解析的意思
第四步:配置DNS域名解析服务器文件
vim /etc/resolv.conf,将自己主机IP设置为dns服务器地址,如果想让别的主机也能使用我们设的域
名解析,就需要在别的主机上把主用的主机IP设置为dns服务器地址,具体操作都是一样的。
最后我们使用 systemctl restart bind 命令重启服务后,发现域名解析成功
实现主从解析案例
我们使用两台主机,设定主机为zw1,IP地址为192.168.254.11;从机为zw2,IP地址为
192.168.254.12。根据上面实现的正反解析操作的基础上,实现主机挂掉后,从机依然可以进行
DNS解析。
第一步:在从机zw2上修改主配置文件
vim named.conf.options 配置文件,具体操作和之前一样,如下:
第二步:分别在主机zw1和从机zw2上修改区域配置文件。
主机zw1上vim named.conf.default-zones 配置文件,在正反区域配置中,各加一行,操作如下:
- allow-transfer { 192.168.254.12; };:表示允许我们把配置好的正向和反向区域数据配置文件传给从服务器
从机zw2上 vim named.conf.default-zones 配置文件,操作和之前一样,注意修改,为了区别主从
服务器:
第三步:分别在主机zw1和从机zw2上配置DNS域名解析服务器文件
vim /etc/resolv.conf,把从服务器DNS地址也配到主上面,这样主挂了,从依然可以使用,两台主
机都需要设置相同操作
最后我们使用 systemctl restart bind 命令先重启主服务器,再重启从服务器。这时候我们发现从
机zw2上已经有了从zw1传送过来的正向和反向区域数据文件。
这时候,我们用systemctl stop命令关闭主服务器的bind服务,会发现从机依然可以解析域名