域名解析DNS

1.1DNS基础

1.1.1常见概念

  • 网站访问流程

1.域名找ip

2.ip找三次握手

3.http协议通信

4.ip四次断开

  • 术语

DNS——Domain Name System(域名系统)将网络中主机IP地址和域名之间做成一个映射表

域名——标识网络中某台主机或某个节点的名字

FQDN——(Fully Qualified Domain Name)全限定域名至少存在三个点(1个隐藏)的域名

                    同时带有主机名和域名的名称

  • 概念

域名的组成

域名由英文字母,数字和英文连字符(-)组成,且不区分大小写

域名分层次的,允许定义子域,子域名与上级域名之间用"."分隔

——最上层节点的域名称为顶级域名

——第二层积点德域名称为二级域名

——依次类推

——在顶级域之上还有一个域名叫根域"."

=========================================================================

域名的管理

ICANN        因特网域名于地址管理机构——承担(域名系统管理,IP地址分配,协议参数配置,主服务器系统管理)

=========================================================================

根域        全球共有13组IPV4根域名服务器

10组在美国        12组在欧洲        1组在亚洲

=========================================================================

一级域名又称顶级域名

可分为三类(国家和地区,各类组织,反向域)

=========================================================================

二级域——具体某个组织(需要向域名管理机构申请付费才能获得使用权)

1.1.2工作原理

  • 工作原理

DNS解析

递归解析——浏览终端,本地主机,本地dns

迭代解析——根域,顶级域,二级域(主机域 返回配套ip)

  • 配置DNS

window——手工配置网络适配器的属性信息

Linux——

rocky        dns=10.0.0.2;

Ubuntu        

OpenEuler        DNS1=10.0.0.2

配置文件——/etc/resolv.conf

                     /run/systemd/resolve/stub-resolv.conf

  • 状态查看

服务——systemd-resolved

命令——resolvectl status

1.1.3查询类型

  • 查询类型

递归查询——客户端向LocalDNS发起域名查询,locaDNS代为帮客户端去查找

迭代查询——客户端向LocalDNS发起域名查询,localDNS根据别人反馈信息再找另一个人要信息

  • DNS缓存

Windows系统

ipconfig/displaydns        查看缓存

ipconfig/flushdns        清理缓存

Linux系统

resolvectl statistics        查看缓存

resolvectl reset-statistics        清理缓存

1.1.4解析类型

  • DNS解析

域名系统解析——将域名转换为对应的IP地址的过程

  •  解析类型

A记录        是最常有的DNS记录类型,用于将域名解析为IPV4地址

AAAA记录        是用于域名解析为IPV6地址的DNS记录类型

CNAME记录        是别名记录用于将一个域名解析为另一个域名

NS记录        是域名服务器记录,用于指定负责解析该域名的DNS服务器

PTR记录        用于反向解析IP地址为域名,通常用于邮件服务器的方向解析验证

MX记录        是邮件交换记录,用于指定接受电子邮件的邮件服务器

  • 查找区域

正向查找区域        域名解析区域

反向查找区域        IP反向解析区域

1.1.5hosts文件

  • 简介

hosts文件是一个没有扩展名的系统文件

直接定义域名于IP地址的对应关系

在向外进行DNS请求之前,先检查系统自己的hosts文件中是否有这个域名和IP的映射关系

  • 路径

Windows系统        C:\Windows\System32\drivers\etc

Linux系统        /etc/hosts

1.1.6公有云DNS

  • 基本流程

注册平台账号

准备域名        先购买域名,域名认证

域名解析设置

1.2检测工具

1.2.1dig命令

  • 简介

(Domain Information Groper)域名查询工具——不会查询本地hosts文件中定义的域名和IP对应关系

  • 格式

直接查看域名        dig domain

指定服务器查域名        dig @dns-server domain

                                     dig domain @dns-server

指定类型查域名        dig -t q-type domain

                                 dig domain q-type

指定ip解析域名        dig -x IP

                                dig -t ptr reverseIP.in-addr.arpa

1.2.2host命令

  • 简介

根据域名查询得到对应的服务器IP地址,不会查询本地hosts文件中定义的域名和IP对应关系

  • 格式

直接查看域名        host domain

指定服务器查域名        dig domain dns-server

指定类型查域名        dig -t q-type domain

指定IP解析域名        host IP

1.2.3nslookup命令

  • 简介

查询DNS记录,查看域名解析是否正常,也可用来诊断网络问题

不会查询本地hosts文件中定义的域名和IP对应关系

也不能查询dns的递归和迭代

支持交互式和非交互式两种执行方式

  • 非交互查询

直接查询域名        nslookup domain

指定服务器查域名        nslookup domain dns-server

指定类型域名        nslookup -t q-type domain

  • 交互式查询

进入终端        nslookup

查看域名        > 域名

查看默认信息         > set all

指定dns服务器        > server 8.8.8.8

1.2.4rndc命令

定位:远程管理BIND DNS服务器的工具(默认使用TCP的953端口连接bind服务器)无需停止DNS服务器工作

1.2.5whois

定位        查询域名和IP地址注册信息的工具

1.3DNS配置

1.3.1systemd-resolved

  • 定位

有systemd提供的DNS解析器守护进程,旨在提高系统的DNS解析性能,并为用户提供更多的配置选项,系统通过它对外进行dns请求

  • dns配置文件

/etc/resolv.conf        Rocky9系统

/run/systemd/resolve/stub-resolv.conf        ubuntu系统

  • 优先级

全局级别        /etc/systemd/resolved.conf

定制级别        Centos系统        /etc/resolv.conf

                      Ubuntu系统        /etc/resolv.conf

                                                /run/systemd/resolve/stub-resolv.conf

1.3.2bind部署

  • 环境部署

yum install bind -y

apt install bind9 -y

Ubuntu系统多开放了本地主机IP地址的端口,而Centos主机上默认没有开启

  • 端口

named默认会占用TCP和UDP的53端口

953是给rndc管理工具使用的

1.3.3配置解读

  • Rocky系统

/etc/named.conf        核心配置文件

/var/named        配置目录

  • Ubuntu系统

/etc/bind        配置目录

特点:拆分成更多的专用配置文件

  • 跟地址

bind已经内置了13个跟域名服务器地址

Ubuntu系统        /usr/share/dns/root.hints

Rocky系统        /var/named/named.ca

  • Priming查询

DNS客户端在发起正式的域名解析请求之前,先通过一种机制获取当前所有根服务器的信息

查询过程:

获取Root Hints

选择根服务器

查询最新的根服务器列表

缓存并更新

查询意义:

提高解析效率

增强解析可靠性

支持DNS系统的分布式特性

1.3.4配置属性

  • Rocky系统

/etc/named.conf

默认的工作目录是:/var/named

  • Ubuntu系统

/etc/bind/named.conf.options

默认的工作目录是:/etc/bind , /var/cache/bind

  • 配置选项

全局配置        options{};        listen -on port 53 {127.0.0.1;};

                                             allow -query {localhost;};

                                             forwarders {1.1.1.1;};

日志子系统配置        logging{};

网络自定义集合        acl        地址集合

视图        view        配置集合

  • 默认域配置

Rocky系统        /etc/named.conf

Ubuntu系统        /etc/bind/named.conf.default-zones

该文件中定义了要解析的域名与具体解析规则之间的对应关系

格式

1.3.5配置规则

  • 作用

定义域的具体解析规则

该文件有多条资源记录组成,每一行都是一条资源记录RR

  • 文件

Ubuntu系统        /etc/bind/db.*

Rocky系统        /var/named/named.*

  • 格式

Owner:记录的所有者,通常是一个域名

TTL:生存时间

CLASS:类,指示记录所属的类别

TYPE:类型,指示记录类型

RDATA:资源数据,随CLASS和TYPE的变化而变化,用于描述与记录相关的具体信息。

  • 常见的type

A                将FQDN解析成IPV4地址

CNAME        将域名解析到另一个域名

AAAA        将FQDN解析成IPV6地址

PTR        用IP地址反向解析域名

SOA        权威区域的开始

1.4DNS实践

1.4.1DNS自解析

  • 步骤

1.定制zone配置

2.定制解析规则

3.修改客户端的dns解析地址

4.测试

1.4.2DNS主从

  • 同步原理

定位:在不同的DNS服务器之间保持解析结果的一致性

特点:主服务器负责处理DNS查询请求并更行DNS记录

           从服务器则赋值主服务器上的数据,以提供备份和负载均衡

  • 同步方式

主服务器向从服务器推送数据(PUSH)

从服务器向主服务器拉取数据(PULL)

  • 配置特点

1.4.3主从同步实践

  • 同步特点

序列号需要更改

  • 端口作用

TCP53端口主要用于主从之间的数据同步

UDP53端口主要用于对外提供域名解析服务

  • 技巧

1.序列号更改

2.删除历史数据库文件

1.4.4反向解析

  • 定位

通过IP地址逆向查找对应的域名

  • 场景

垃圾邮件拒绝接受

识别网络中的恶意IP地址

  • 配置

1.4.5DNS子域

  • 简介

在主域名(或称为父域)下创建的更小的,相对独立的域

将子域委派给其他的DNS服务器解析,实现分布式DNS服务

  • 逻辑

1.主dns上定制子域服务器的解析

2.定制子域的配置

3.客户端测试效果

1.4.6DNS转发

  • 定位

将当前无法解析的域名,转发给另外的DNS解析

如果还是无法解析,在提交互联网

  • 转发策略

全局转发        所有无法解析的域名请求都转发到指定的DNS服务器

特定区域转发        仅将特定区域的域名请求转发到指定的DNS服务器

  • 转发模式

First模式:

首先利用上游DNS服务器的解析能力

同时保留本地DNS服务器递归查询能力的网络环境

Only模式:

完全依赖上游DNS服务器进行域名解析的网络环境

  • 配置流程

1.本地dns服务上,开启转发能力

2.在指定dns服务器上,按照普通方式部署dns解析能力

1.4.7DNS视图

定位:根据客户端的来源IP地址来解析不同DNS记录的功能

  • 配置流程

1.取消默认的zone入口

2.增加acl规则和view视图

3.定制各自的zone文件

4.综合测试

1.5CDN

1.5.1基础知识

  • CDN

内容分发网络

基于IP网络而构建,基于内容访问与应用的效率要求、质量要求和内容秩序而提供内容的分发和服务。

目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

  • 内容

内容存储

负载均衡

网络请求的重定向

内容管理

  • GLSB

全局负载均衡

三种方式:

1.基于DNS实现        最通用

2.基于重定向实现

3.基于路由协议实现

1.5.2智能DNS

定位:提供商返回的地址是经过智能策略选择后的结果,判断哪个IP地址离用户最近,然后将该地址返回给用户。

特点:别名措施,智能策略

1.5.3CDN原理

定位:CDN其实就是建立在智能DNS的基础之上,将DNS服务器的功能加强了

           不仅仅包含了域名解析的功能,而且对dns记录缓存功能进行了加强,

           然后又基于缓存的定位,将其独立出来形成一个特有的功能

           然后将更多的技术容纳进来,可以缓存更多的内容。

简而言之,CDN其实是多缓存服务器+智能DNS

  • 主要功能

网络通信功能:高质量的IP通信网络,智能DNS解析功能

内容管理功能:对缓存功能加强

  • 流程

将DNS的解析功能与服务器本身的存储功能整合在一起了

将原来用户和web服务器之间的通信,拆分为了(Web服务器,CDN节点,CDN边缘节点,用户端)

1.5.4CDN实践

  • 内容加速

刷新:系统自动清除CDN节点上的垃圾数据,访问URL时,直接回源获取最新数据,并缓存到CDN节点

预热:在业务高峰前预热热门资源,也可以预热流量较低的加速域名,来提高缓存命中率。

  • 资源的获取方式

目录:当操方式选择的是刷新时,需要选择该参数

URL:当操方式选择的是刷新或预热时,需要选择该参数

  • 收费模式

带宽:按照每日的峰值带宽计费。

流量:按照每日从CDN节点流出的实际流量计费

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值