linux之DNS配置

一、DNS概述

1.1 DNS简介

DNS(Domain Name System)是互联网中用于将域名转换为对应IP地址的分布式命名系统。

IP地址不便于记忆,DNS使用户可以通过易记的域名快速访问各种网络资源。

域名结构:

域名采用层次结构表示,从右向左依次表示更高的级别。 以www.example.com为例 .com是一级域名 example是二级域名 www是主机名 主机名用于标识特定的设备或计算机,而子域名用于对主域名下的特定部分进行分类或组织

域名解析类型:
  • A记录:将域名解析为IPv4地址。

  • AAAA记录:将域名解析为IPv6地址。

  • CNAME记录:将域名解析为另一个域名,可用于创建别名。

  • MX记录:指定接收某域名邮件的邮件服务器地址。

  • NS记录:指定管理域名解析的权威域名服务器。

  • PTR记录:用于反向解析,将IP地址解析为域名。

DNS的风险:

域名劫持、DNS欺骗和DDoS攻击等。

1.2 本地hosts文件

文件位置:/etc/hosts

本地hosts文件的作用

本地hosts文件用于在域名解析时将特定的域名与对应的IP地址进行映射。

在域名解析过程中,操作系统会首先检查本地hosts文件中是否存在与查询域名匹配的条目,如果有,则直接返回hosts文件中指定的IP地址,跳过后续的DNS查询过程。

缺点
  • 过于分散

  • 要手动更新文件

1.3 DNS架构

linux之DNS配置_第1张图片

1.根域

使用“.”表示,位于域命名空间层次结构的最高层; 在根域服务器中只保存了其下层的一级域的DNS服务器名称和IP地址对应关系;

2.顶级域/一级域

顶级域位于根域下层,可以分为两类: 组织域(.com,.net,.org,.gov,.edu,.mil等) 国家域(.iq,.tw,.hk,.jp,.cn等);

3.二级域

二级域位于顶级域下层,是指为了在Internet上使用而注册到个人或企事业单位的域名;

4.子域

子域是根据具体情况从二级域中按部门或地理位置创建;

5.主机名

位于DNS域命名空间的最低层,主要指计算机的主机名;

1.4 查询方式

递归查询:发送解析请求后,等待结果返回即可,不需要逐级查询;

迭代查询:此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询。

二、DNS域名解析原理

2.1 解析类型

1.正向解析:由域名查找IP地址; 2.反向解析:由IP地址查找域名;

2.2 原理详解

1.用户在浏览器中输入目标域名,应用程序发送域名解析请求;

2.先查询本地dns缓存,如果有历史解析记录,直接获取IP地址,进行访问;

3.如果没有,查询hosts文件中是否有相关配置,如果有直接获取IP地址;

4.如果没有,向本地DNS服务器发起递归查询,等待反馈结果;

5.本地DNS服务器先检查服务器的本地缓存,如果有历史记录,直接反馈IP地址;

如果没有,发起迭代查询;

7.首先,向根域服务器发起迭代查询,找到域名所属的一级域服务器;

8.再向一级域服务器发起迭代查询,找到域名所属的二级域服务器;

9.本地dns服务器会一直向下发起迭代查询,直到找到权威DNS服务器,向权威服务器发起递归查询,等待权威服务器反馈域名对应的IP地址

10.本地dns服务器将IP地址反馈给应用程序,递归查询结束;

2.3 举例

以访问www.baidu.com为例

1.用户输入www.baidu.com后,浏览器的应用程序发送解析请求;

2.先查询本机的缓存记录,查看是否有历史解析记录,如果有,直接访问,如果没有,去查看hosts文件是否有相关配置;

3hosts文件中有相关配置,获取IP地址,开始访问;

如果没有,向本地dns服务器发起递归查询;

4.本地dns服务器收到请求后,先查看本地dns缓存中是否有对应的解析结果,如果有,返回IP地址,如果没有,发起迭代查询;

5.本地dns服务器先向根域服务器发起迭代查询,根据根域服务器提供的信息,找到.com一级域;

6.本地dns服务器向.com一级域服务器发起迭代查询,根据一级域服务器提供的信息,找到baidu.com二级域,二级域服务器为权威服务器;

7.本地dns服务器向权威服务器发起递归查询,权威服务器反馈IP地址给本地dns服务器;

8本地dns服务器将域名的IP地址反馈给应用程序,递归查询结束。

三、bind服务端程序

3.1 什么是bind?

BIND是DNS服务器软件。

BIND 服务器可以提供域名解析服务,能够接收客户端的 DNS 查询请求,并返回相应的 IP 地址。

3.2 配置文件

yum install -y bind bind-utlis  #安装bind服务
rpm -qc bind  #查看所有配置文件
​
​

四、正向解析

4.1 什么是正向解析?

正向解析(forward resolution)是将域名(例如:example.com)解析为对应的 IP 地址的过程

4.2 正向解析实例

1)编辑主配置文件 /etc/named.conf

自带网络解析功能(因为数据库文件已经配置完成)

只需要修改监听的地址 listen-on port 53,any表示所有

还有权限 allow-query ,any表示所有

options {
        //listen-on port 53 { 127.0.0.1; ##直接注释掉
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        //allow-query     { localhost; };##直接注释掉
​
2)编辑域名文件 /etc/named.rfc1912.zones
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
​
zone "xkj.com" IN {
        type master;##文件类型
        file "xkj.com.zone";##数据库文件
​
3)根据域名文件中定义的名称,来建立数据库文件
cd /var/named
​
cp -a named.localhost  xkj.com.zone 
#     配置模板            以xkj.com为例
​
vim xkj.com.zone
​
​
$TTL 1D
@       IN SOA  master.xkj.com. rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
master  A       192.168.20.90
www     A       192.168.20.92
#映射关系
​
4)修改dns
vim /etc/sysconfig/network-scripts/ifcfg-ens33  #编辑网卡配置
#将主服务器的ip地址作为DNS服务器的ip地址
systemctl restart network #重启网络服务
​
5)开启服务,进行域名解析
[root@localhost named]# systemctl start named
[root@localhost named]# host master.xkj.com
master.xkj.com has address 192.168.20.90
​

你可能感兴趣的:(linux,运维,服务器)