Linux的DNS域名解析服务

引言:在对服务器主机进行访问时是使用IP地址的形式,而在实际的网络应用中,通常是使用域名的形式进行访问服务器。

目录

一、DNS系统的作用及类型

二、DNS服务器配置

1.正向解析服务器配置

2.反向解析配置

3.主从服务器配置

4.dns分离解析服务器配置


一、DNS系统的作用及类型

DNS是域名系统(Domain Name System)的简称。

整个Internet大家庭中连接了数以亿计的服务器、个人主机,其中大部分的网站、邮件等服务器都使用了域名形式的地址,www.google.com、mail.163.com等。

很显然这种地址形式要比使用64.233.189.147、202.108.33.74的IP地址形式更加直观,且更容易被用户记住。

在当今计算机如此普及的情况下,以人类现有的智慧与记忆力很难将大量的IP地址背诵下来,这时使用域名系统就可以将难以记忆的数字IP地址与容易记忆的域名建议映射关系,用户通过输入域名,计算机会寻找指定的DNS服务器,请求服务器帮助解析该域名对应的IP地址,成功解析后,将获得该域名对应的真实IP地址,然后使用该IP地址与对方通信。

全世界只有13台根域名服务器,1个主根服务器在美国,其余12个辅根服务器,其中九个在美国,欧洲有两个,位于英国和瑞典,亚洲1个位于日本。

正向解析:根据域名查IP地址,即将指定的域名解析为相对应的IP地址。域名的正向解析是DNS服务器最基本的功能,也是最常用的功能。

反向解析:根据IP地址查域名,即将指定的IP地址解析为相对应的域名。域名的反向解析不是很常用,只在一些特殊场合才会用到,比如可用子反垃圾邮件的验证。

正向解析过程:

1. 请求发出后先检查自身的浏览器缓存,如过有缓存过此域名对应的IP地址,则解析结束。 

2. 如果浏览器缓存没有命中,则去查看操作系统缓存中有没有对应解析的结果。(windows操作系统可以通过C盘中的hosts去设置操作系统缓存。目前操作系统为防止被操作系统缓存被篡改从而导致域名劫持,将hosts文件改为read-only。)

3. 如果浏览器和操作系统缓存都没命中,则去请求本地域名服务器(LDNS)。此DNS服务器其实就是我们在配置网络设置时候的配置的DNS服务器,大部分的IP都会被缓存在这个DNS中。

4. 若LDNS未命中,则去请求根域名服务器(Root Server) 。

5. 根域名服务器返回给LDNS一个所查询域的主域名服务器(gTLD Server,国际顶尖域名服务器,如.com .cn .org等)地址.

6. 此时LDNS再发送请求给上一步返回的gTLD.

7. 接受请求的gTLD查找并返回这个域名对应的Name Server的地址,这个Name Server就是网站注册的域名服务器。

8. Name Server根据映射关系表找到目标ip,返回给LDNS。

9. LDNS缓存这个域名和对应的ip

10. LDNS把解析的结果返回给用户,用户根据TTL值缓存到本地系统缓存中,域名解析过程至此结束

DNS使用的协议及端口号

dns的默认端口为53。DNS端口分为TCP和UDP

TCP是用来做区域传送,多用于主从同步,在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息

UDP是用来做DNS解析的

域名:通常由一个完全合格域名(FQDN)标识。FQDN 全称 Fully Qualified Domain Name,它能准确表示出其相对于DNS 域树根的位置,也就是节点到DNS

树根的完整表述方式,从节点到树根采用反向书写,并将每个节点用"分隔,对于DNS 域 google来说,,其完全正式域名(FQDN)为 google.com。google为com域的子域,其表示方法为 google.com,而www为 google域中的子域,可以使用www. google.com表示。

注意:通常FQDN 有严格的命名限制,长度不能超过256字节,只允许使用字符a-2,0-9,A-z和减号(-)。点号(.)只允许在域名标志之间(例如 google.com) 或者FQDN 的结尾使用。域名不区分大小,由最顶层到下层,可以分成:根域、顶级域、二级域、子域。

即全域名:同时带有主机名和域名的名称 FQDN = Hostname + DomainName

如:www.baidu.com

注意:最前面的一定是主机,最后一个点表示根域,通常是省略不写的,但实际上www.abc.com=www.abc.com.

DNS名称说明示例
根域根服务器主要用来管理互联网的主目录.
顶级域用于指定某个国家/地区/组织使用的类型名称.com .cn
第二层域个人或组织在Internet上使用的注册名称qq.com
子域已注册的二级域名的派生域名,也就是网站名www.qq.com
主机名DNS左侧的标签位标识了网络上的特定计算机h1.www.qq.com


大型、分布式的互联网DNs解析库
根.根域名Ds服务器:专门负责根域名
一级DNS服务器:专门负责一级域名的解析(一般代表一种类型的组织机构或国家地区
.com(工商 企业)
.net(网络供应商)
.edu(教育机构
.cn(中国国家域名)
.org(团体组织)
gov(政府部门
二级DNS服务器:专门负责二级域名的解析
.net. cn
.edu. cn
.com.cn
子域名DNS服务器:专门负责子域名的解析
sina. com. cn
.pku. edu.cn
主机站点
ttsd
tts
mail
WWW

两种查询方式

1)递归查询
递归查询是一种DNS服务器的查询模式,在该模式下DNS服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS服务器本地没有存储查询 DNS信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。

总的一句话,就是客户机发送请求后自己只用等待结果即可,中间具体过程交给服务器实现。

2)迭代查询

DNS服务器另外一种查询方式为迭代查询,当客广机发送查询请求时,DNS服务器并不直接回复查询结果,而是告诉客户机另一台DNS服务器地址,客户机再向这台DNS服务器提交请求,依次循环直到返回查询的结果为止

总的一句话,客广机的请求需要自己挨个去查询才能得到结果,服务器没有结果口寸候只会给你提供其它服务器的地址,而不会帮你去请求查询,这与递归截然相反

DNS服务器系统类型

(1)主域名服务器:负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。

⑵从域名服务器:当主域名服务器出现故障、关闭或负载过重:时,从域名服务器作为备份服务提供域名解析服务。从 域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。

⑶缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但没有域名数据库。它从某个远程服务器取得每次域名服务器查询的结果,并将它放在高速缓存中,以后查询相同的信息时用它予以响应。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。

(4)转发域名服务器:负责所有非本地域名的本地杳询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到杳找到结果为止,否则返回无法映射的结果。

二、DNS服务器配置

1.正向解析服务器配置

(1)安装bind

 yum install -y bind

查询已安装的bind

rpm -qa | grep "^bind"

查询一下本机ip        ifconfig

我的是192.168.72.3

(2)修改主要配置文件

vim /etc/named.conf

 保存

(3)修改区域配置文件,添加正向区域配置 

vim /etc/named.rfc1912.zones 

文件里有模板,可复制粘贴后修改

(4)配置正向区域数据文件

cd /var/named

cp -p named.localhost abc.com.zone 保留源文件的权限和属主的属性复制

vim abc.com.zone

NS 记录当前区域的DNS服务器的名称

A 192.168.72.3 记录主机IP地址

IN MX MX为邮件交换记录,数字越大优先级越低

A 192.168.72.3 记录主机地址

IN MX 10 MX为邮件交换记录,数字越大优先级越低

www 记录正向解析www.abc.com对应的ip

mail 记录邮件对应的ip

ftp CNAME使用别名,ftp是www的别名

* IN 泛域名解析,"*"代表任意主机名

(5)启动服务关闭防火墙

systemctl start named

systemctl stop firewalld

setenforce 0

vim /etc/resolv.conf

(6)测试DNS解析

host www.abc.com

nslookup www.abc.com

2.反向解析配置

vim /etc/named.rfc1912.zones 

cd /var/named

cp -p abc.com.zone abc.com.zone.local

vim abc.com.zone.local

 

systemctl restart named

host 192.168.72.100

3.主从服务器配置

主服务器:192.168.72.3

从服务器:192.168.72.4

vim /etc/named.conf

listen-on port 53 { any; };

 vim /etc/named.rfc1912.zones 

 

vim /etc/resolv.conf

 

 打开第二个虚拟机查看ip

 

安装bind 

yum install -y bind

vim /etc/named.conf

listen-on port 53 { any; };

allow-query     { any; };

vim /etc/named.rfc1912.zones

 

开启named

systemctl start named

测试dns

4.dns分离解析服务器配置

主服务器:192.168.72.3

web服务器:192.168.73.3

添加网卡并设定VMnet1,VMnet1的网段为192.168.73.0

vim /etc/named.conf

listen-on port 53 { any; };

allow-query     { any; };

备份named.rfc1912.zones到home下

cp -p /etc/named.rfc1912.zones /home/named.rfc1912.zones.bak

vim /etc/named.rfc1912.zones

清空并添加view

view "lan" {
match-clients { 192.168.73.0/24; } ;
zone "abc.com" IN {
type master;
file "abc.com.zone.lan" ;
};

zone "." IN {
type hint;
file "named.ca";
};
};

view "wan" {
match-clients { any; } ;
zone "abc.com" IN {
type master;
file "abc.com.zone.wan" ;
};
};


cd /var/named 

创建内网,外网的配置文件

cp -p named.localhost abc.com.lan
cp -p abc.com.lan abc.com.wan
编写内网,外网配置文件

vim abc.com.zone.lan 编辑内网

        NS      abc.com.
        A       192.168.73.3
www IN  A       192.168.73.3

vim abc.com.zone.wan

测试DNS分离解析

打开第二个Linux虚拟机,设置VMent

编辑网卡配置

 

nslookup www.abc.com 

 打开windows虚拟机,编辑网卡设置

 

打开cmd测试连通

nslookup www.abc.com

 

总结:在日常工作中当无法访问域名时,需要查看一些配置文件来查找问题。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值