关于DNS

Posted plutozzl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于DNS相关的知识,希望对你有一定的参考价值。

 

网络服务——DNS域名系统服务

  1. DNS介绍

1.1 什么是域名?

域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的,在互联网中来标识某一台计算机或者计算组的名称,用于在数据传输时标识计算机的电子方位。具有独一无二,不可以重复的特性。

IP地址难以记忆,为了方便记忆。域名与IP一一对应的映射关系。

1.2 什么是DNS
域名系统(Domain Name System,缩写为DNS)是互联网的一项服务。将域名与IP地址间的映射关系做一个记录,以及查询的功能。域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便的访问到网站的一种服务。IP地址是网络上表示站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程,域名解析工作由DNS服务器来完成,可以理解为DNS就是翻译官。

正向解析: 域名  --->   IP地址

反向解析:  IP地址 --->   域名(过滤邮件会用到)

1.3 域名的组成与分类

常见格式:www.baidu.com  (浏览器会默认补成完整格式)

完整格式:www.baidu.com.

. :称为根域,可以省略不写,是域名的起始点。主根,辅根,镜像根

com : 顶级域,由ICANN组织指定管理的。分类:国家地区域名:cn(中国)、hk(香港)、sg(新加坡)等。

通用顶级域名:com(商业机构)、org(非营利组织)、edu(教育机构)等。

新通用顶级域名:red(红色,热情) top(顶级的高端的)

 

baidu :二级域(注册域),可由个人或组织申请注册。

www :三级域(子域),服务器网站名代表。

主机名 s1.www.baidu.com 中的s1就是主机名,用来表示具体的一台主机。

 

  1. 域名解析过程

1) 客户端访问www.baidu.com.:80(浏览器自动补齐:80  对应web服务器对应的端口。)

2) 客户端首先先查询自己的host文件,查看该文件内是否有www.baidu.com 的解析记录。这个文件优先级更高相比DNS。如果有则直接返回给浏览器。

3) 在本机中没有,客户端继续在本机内查询DNS的解析缓存,若有缓存则直接返回给浏览器。

4) 上述两个地方都找不到,客户端查看网卡上设置的DNS服务器地址,访问DNS服务器,查询域名的解析结果。若DNS服务器有解析记录则将IP地址返回给客户机

  1. 详细过程:

1) 客户机首先查看本地hosts文件,如果有则返回,否则进行下一步。

2) 客户机查看本地缓存,是否存在本条目的缓存,有则直接返回,否则进行下一步

3) 将请求转发给指向的DNS服务器

4) 查看域名是否本地解析(本地有解析库,DNS的缓存是指不在解析库中的域名IP解析,是解析库之外的。解析库权威性高于缓存),是则本地解析返回,否则进行下一步。

5) 本地DNS服务器,变成寻找域名的发起者,访问根域,顶级域,二级域寻找对应域名。本地DNS服务器在访问自己未访问过得域名时会将记录保存在缓存中,下次访问更快。

递归查询: 客户端与本地DNS服务器之间的查询

迭代查询: 客户端是本地的DNS服务器  查询目标是根域,顶级域等服务器之间的查询

  1. DNS--分布式DNS模型

1) 分布式DNS服务器:根域中保存所有顶级域的IP地址

顶级域中保存所有二级域的IP地址

二级域中记录所有三级域的IP地址

 而单个DNS服务器与上述体系没有直接关系,他先访问根域找到顶级域进而依次查找。

2) 同一个任务由不同步骤共同完成的过程叫分布式(例如,生产车间中某一条流水线,流水线上有很多的步骤,不同步骤之间称为分布式)

3) 负载均衡: 客户机连接DNS负载均衡服务器,进而分发任务给多个DNS服务器,然后DNS对数据进行解析。将用户的请求分配到多个功能相同的服务器上(类似于,一个生产车间中的多条相同功能的流水线)

  2.DNS服务器不可以随便部署,需要授权(ICAN)。一个虚假的DNS服务器会将域名解析为错误危险的IP。运维常用,个人网站的解析以及负载均衡的应用。

 

开始配置:

 

 

 

1. 安装

 

[root@dhcp ~]# yum install -y dhcp

 

 

 

[root@dhcp ~]# rpm -ql dhcp

 

 

 

/etc/dhcp/dhcpd.conf IPV4配置文件(点分十进制)

 

/etc/dhcp/dhcpd6.conf IPV6配置文件(:分十六进制)

 

 

 

/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example

 

/usr/share/doc/dhcp-4.2.5/dhcpd6.conf.example

 

配置文件的帮助

 

 

 

/usr/share/man/man5/dhcpd.conf.5.gz

 

/usr/share/man/man5/dhcpd.leases.5.gz

 

man手册

 

 

 

/var/lib/dhcpd/dhcpd.leases

 

/var/lib/dhcpd/dhcpd6.leases

 

租约文件

 

 

 

租约:当C使用S的IP,达到租约时间的时候,如果能和S通信,那么继续使用S分配的IP;如果不能和S通信,那么C断开与原S的连接,继续在局域网发广播请求IP,如果找不到相应的S,

 

那么就会配置一个 169.254.x.x IP(B类)。

 

 

 

2. 配置

 

[root@dhcp /etc/dhcp]# vim dhcpd.conf  配置文件

 

 

 

subnet 172.16.0.0 netmask 255.255.0.0

 

##网段和子网掩码

 

  range 172.16.0.100 172.16.0.200;

 

##IP地址池

 

  option domain-name-servers 211.137.32.178;

 

##DNS-server

 

  option routers 172.16.0.254;

 

##网关

 

  default-lease-time 600;

 

##默认租约时间,秒

 

  max-lease-time 7200;

 

##最大租约时间,秒

 

 

 

[root@dhcp ~]# vim /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example 样板

 

 

 

 

 

3. 启动

 

[root@dhcp ~]# systemctl start dhcpd

 

[root@dhcp ~]# systemctl enable dhcpd

 

 

 

[root@dhcp ~]# netstat -anupl | grep dhcp

 

udp   0   0 0.0.0.0:67  0.0.0.0:*       2540/dhcpd

 

 

 

[root@dhcp ~]# vim /etc/services

 

bootps          67/tcp                          # BOOTP server

 

bootps          67/udp

 

bootpc          68/tcp          dhcpc           # BOOTP client

 

bootpc          68/udp          dhcpc

 

 

 

dhcp-server: udp/67

 

dhcp-client: udp/68

 

S 一个端口服务固定 C 端口不固定

 

 

 

  1. 测试

 

 

 

客户端修改IP地址的获取方式

 

[root@centos7 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32

 

BOOTPROTO=dhcp #<--

 

 

 

[root@centos7 ~]# /etc/init.d/network restart

 

 

 

[root@centos7 ~]# ifconfig

 

ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

 

        inet 172.16.0.107  netmask 255.255.0.0  broadcast 172.16.255.255

 

 

 

[root@centos7 ~]# route -n

 

Kernel IP routing table

 

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

 

0.0.0.0         172.16.0.254    0.0.0.0         UG    100    0        0 ens32

 

 

 

[root@centos7 ~]# cat /etc/resolv.conf

 

# Generated by NetworkManager

 

nameserver 211.137.32.178

 

 

 

服务端查看日志:

 

[root@dhcp ~]# tail -0f /var/log/messages

 

Aug 13 13:58:11 dhcp dhcpd: DHCPDISCOVER from 00:0c:29:38:78:64 (centos7) via ens32

 

Aug 13 13:58:12 dhcp dhcpd: DHCPOFFER on 172.16.0.107 to 00:0c:29:38:78:64 (centos7) via ens32

 

Aug 13 13:58:12 dhcp dhcpd: DHCPREQUEST for 172.16.0.107 (172.16.0.21) from 00:0c:29:38:78:64 (centos7) via ens32

 

Aug 13 13:58:12 dhcp dhcpd: DHCPACK on 172.16.0.107 to 00:0c:29:38:78:64 (centos7) via ens32

 

 

 

服务端查看租约文件:

 

[root@dhcp ~]# less /var/lib/dhcpd/dhcpd.leases

 

以上是关于关于DNS的主要内容,如果未能解决你的问题,请参考以下文章

关于DNS区域查询,DNS字典爆破,以及查询文件问题

关于DNS不得不说的一些事

关于域名的DNS解析

关于域名的DNS解析

关于DNS不得不说的一些事

一个关于DNS的故事