当前位置: 首页 > news >正文

dns 域名解析

一,dns  是什么

domain name server 域名解析           将域名转化成 ip 地址

这是个7层协议  

既使用tcp53端口 (主从之间同步)

也使用udp53端口 (域名名字解析)

二,dns  实现方法

1,通过host 文件 分散的管理

①host 文件优先级最高
②host 文件所在位置

linux: /etc/hosts

windos: c:/windows/system32/drivers/etc/hosts

host 文件格式

ip地址 域名

2,安装dn服务相关的软件 来实现dns解析

集中管理:内网环境下用bind

(全部交给一个服务机管理)

分布式的管理:   全世界  不可能交由一台机器管理,所以是一级管一级

三,域名的组成,分类

1,www.baidu.com.   具体含义

.                         根域

.com                  顶级域(也叫一级域)

.baidu                二级域

www                  主机名(前面没.     是主机名)

2,顶级域常见分类

.com 公司

.net 互联网公司

.cn 中国

. org 非盈利组织

.edu 教育

3,域解析

根的dns服务器 只能解析 主机名 加根域

顶级域的dns服务 只能解析 主机名加顶级域 加根域

二级域的dns服务 只能解析 主机名 加二级域 加顶级域 加根域

4,解析方式

正向解析:根据域名查找对应的IP地址

反向解析:根据IP地址查找对应的域名

四,域名解析具体过程

1,文字版

外网过程

我要访问www.baidu.com服务器

1.先看我本机的 hosts 文件,如果有直接访问,如果没有就去找你设置缓存dns

2.如果 缓存服务器有,直接反馈结果 (递归),如果没有就需要迭代查询 ,直接去找 根域服务,

3.由于根域服务器 只能 解析根 无法解析 www.baidu.com 但是 根域服务器让你去找 一级域服务器

4.一级域发现自己 也解析 不了,让你去找二级域

5.二级域发现这台服务在自己的 管理范围内,直接反馈结果给 缓存服务器

6.缓存服务器再交给 客户

要解析几次和域名长度有关

2,架构图版

五,dns 查询方式

递归查询:问一次就得到结果

迭代查询:不会告诉我结果,会告诉我另一个人

 注意:

1,         本地dns服务器:就是缓存服务器

2,          1,8 这两个加起来      就是递归

3,          递归 和迭代都能得到结果   ,递归只需一次 迭代需要问多次

六,dns  系统类型

1,缓存域名服务器

也称为DNS高速缓存服务器,通过向其他域名服务器查询获得域名->IP地址记录,将域名查询结果缓存到本地,提高重复查询时的速度

2,主域名服务器

特定DNS区域的权威服务器,具有唯一性,负责维护该区域内所有域名->IP地址的映射记录,需要自行建立所负责区域的地址数据文件

3,从域名服务器

也称为辅助域名服务器,是对主域名服务器的热备份,其维护的域名->IP地址记录来源于主域名服务器,需要从主域名服务器自动同步区域地址数据库

4,权威dns 服务器

只有他说了算, 最后解析成功的服务器为权威服务器

七,解析域名相关命令

1,nslookup

dns 域名解析将域名翻译成 ip地址,然后封装数据包

解析的是    /etc/hosts    文件里的域名  

2,host  

host  域名

需要网络配置文件改成对应dns

3,dig

dig 域名  @ 服务机名

指定某个服务机解析域名

4,cat /etc/resolv.conf

查看当前  dns

八,检测文件格式 是否有错

1,named-checkconf   配置文件

检测配置文件格式是否有错

2,named-checkzone  数据库文件

检测数据库文件格式是否有错

3,systemctl status 程序名

当程序起不来报错

4,journalctl   -xe  --no-paper

当程序起不来报错

九,在内网搭建 dns 服务器

1,实验环境与理论知识

① bind  软件可以提供dns 服务

   软件名叫  bind            服务名叫  named

软件包名 和程序服务名 不一样

rpm -ql 查 程序名(绿色可执行文件) 一般在 /usr/sbin 或者 /usr/bin

配置文件的位置 rpm -qc

② named主要配置文件

主配置文件                                                          /etc/named.conf

域名配置文件                                                       /etc/named.rfc1912.zones

数据库文件(定义域名和ip地址对应的关系)      /var/named/数据库文件

2,具体实验步骤

2.1   安装bind

2.2    找到这个程序的主配置文件

2.3   去改主配置文件

2.4,我们注意观察主配置文件

将这两个地方改为 any

第一个any意思 是 监听这个网段 (只给这个网段提供dhcp 服务)

第二个any意思是任何人有权限 问我

看主配置文件最后部分,可以看到   根域在主配置文件

其他域名不建议放在主配置文件,建议放在子配置文件,就是这个include 这里

 2.5,打开子配置文件, 加域名

2.6  这个数据库文件为什么在这?

 运行 named 服务的时候, 是以 named 用户的身份运行

/var/named这个文件夹是 named 用户的 家目录

我们在主配置文件也能看到

2.7  所以我们去到     /var/named    ls

我们本来需要手写一个数据库文件,但是有大佬给我们做了模板

2.8我们复制这个模板,改名 为  和子配置一样的名字

注意!   名字要和子配置文件里  名字一样

             复制过来要保留文件属性!要用named 身份运行

 2.9  我们编辑这个 数据库文件

2.10   数据库文件格式

  0       ; serial   #是否有更新  版本号 更新文件 手动把 0 加1
 1D      ; refresh  #刷新时间 拉取时间
 1H      ; retry    #失败后一个小时 后再试一次

  1W      ; expire   #过期时间,老是拉取不了,1周以后过期
  3H )    ; minimum  #老是去查错误的解析地址,3小时内的缓存下,用户再查直接返回找不到

 

2.11   重启named  服务

2.12   dig 命令 指定服务机   给我解析域名

 2.13   当客户在多输入w   和少输入w时   都能准确指到 www.wyq.com

十, dns 反向解析

就是将ip  地址解析为域名

反向解析要用host 命令

操作基本和正向解析一致,3点不通

1,子配置文件   zone  后面写ip地址  ,且ip 地址要倒过来写

2,数据库文件   域名和ip的位置也要反过来     PTR

3,  用 host 命令解析 

 十一,dns  主从复制

当只有一台dns 服务机时,万一这台服务机坏了,其他客户机都不能正常上网了,这是生产环境所不允许的。所以解决办法是:

客户机的dns  指向多台服务机

服务机分主服务机和从服务机,当主服务机挂了,从服务机顶上

(一)实验模拟主从复制

1,主服务机步骤

1.1  改网络配置文件   

把dns1 改成主服务机的ip

把dns2改成从服务机的ip

 1.2 重启网络, 查看dns 是否更改生效

1.3 ,改主服务机的    dns 主配置文件

两个改为any

1.4  改 主服务机的   dns 子配置文件

 新增一个wyq.com  的域名    类型为主

1.5  改主服务机的  域名数据库文件

 1.6   重启主 服务机的   named 程序

2,从服务机步骤

2.1,改网卡的配置文件

2.2, 重启网络,查看dns

2.3,  下载bind   改named 程序的主配置文件

 2.4    改从服务机    的子配置文件

2.5 查看  从服务机 专门放和主服务机同步域名的文件,一开始是空的

2.6  从服务机启动named  服务  可以看到这个文件有域名了

 

此时主从服务机搭建完毕

3,模拟主服务机故障

3.1手动关闭主服务机  的named 服务

3.2.用  host命令解析域名,可以发现依旧解析成功,此时就是主服务机挂了,从服务机在工作

 

3.3  dig 命令看的更清楚,我们这边指定从服务机  来解析域名

 

4,主服务机更新域名,从服务机也立马同步

4.1 

原理:

一开始主 的域名数据库文件不需要写 从是谁

因为从的子配置文件 写了主是谁

从 一开始的slaves 文件里面的是空的,他要主动找主同步域名的数据库文件,然后一天找主同步一次

我们这边改了主的域名数据库,想要从立即同步,就需要   主      主动给从

所以主的 域名配置文件 再加上从是谁,再改一下版本号(往上加1)

改了版本号后,从就知道 主    的域名配置文件更新了,从才知道要重新同步

4,2         修改主    的域名数据库文件  

4.3  重新启动  主     的named  程序

4.4  发现从的slaves   文件时间更新了    说明同步成功

(如果不能立即同步,危害还是很大的,有可能主    从     两个服务器的同一个域名指向不同的ip)

 

 十二,cdn

CDN,是地理上分布的网络的代理服务器和它们的数据中心。目标是通过相对于最终用户在空间上分配服务来提供高可用性和高性能

作用:

提高速度

减少费用

静态资源:不需要二次处理 (在服务器什么样子,在客户机就是什么样子)

例如图片,text ,视频

动态资源:需要消耗cpu等 二次处理

十三, 分离解析

(一)实验环境

一台服务器,对不同的两个网段区域进行解析

(二)实验步骤

1,安装bind

2, 安装第二块网卡,两块网卡配置如下  dns 都改为自己

3,写  域名主配置文件

将根域域名删除

4,写  子配置文件

5,格式如下,分成两部分

lan  这边是192.168.100.0  段的域名设置

      包含了根域       以及 kgc.com   等域名

   kgc.com 的数据库文件在 /var/named/kgc.com.lan

同理

wan  这边是12.0.0.0  段的域名设置

      包含了根域以及   kgc.com 等域名

   kgc.com 的数据库文件在 /var/named/kgc.com.wan

 

6,  分别 设置 /var/named/kgc.com.lan

                     /var/named/kgc.com.wan   不同网段对应的域名数据库文件

把模版复制过去(保留权限)

 

7,重启 网络服务   重启named 服务

8,分别指定不同的网卡  解析同一域名

 可以看到,一个服务机,同一个域名     在不同网段,可以指向不同的ip

相关文章:

  • java常见面试题:如何使用Java进行单元测试?
  • ES6(ECMAScript 6.0)
  • Python 常用模块pickle
  • 什么是云服务器ECS及其优势、购买、使用方式和部署建议
  • 操作系统-操作系统的概念和功能
  • Harbor离线安装
  • 建筑垃圾处理行业分析:正在被越来越广泛的运用
  • NSSCTF Round# 16 Basic pwn方向题解
  • 【Spring Boot 3】【数据源】自定义多数据源
  • GPT实战系列-ChatGLM3管理工具的API接口
  • 浏览器深色模式
  • C++ OpenGL 3D Game Tutorial 2: Making OpenGL 3D Engine学习笔记
  • python期末考试:python的基本使用
  • GPT-4技术报告的解读(二)
  • 【Python】数据可视化--基于TMDB_5000_Movie数据集
  • #Java异常处理
  • 【附node操作实例】redis简明入门系列—字符串类型
  • co.js - 让异步代码同步化
  • IP路由与转发
  • magento 货币换算
  • Otto开发初探——微服务依赖管理新利器
  • Spark RDD学习: aggregate函数
  • swift基础之_对象 实例方法 对象方法。
  • v-if和v-for连用出现的问题
  • WePY 在小程序性能调优上做出的探究
  • 初探 Vue 生命周期和钩子函数
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 欢迎参加第二届中国游戏开发者大会
  • 计算机在识别图像时“看到”了什么?
  • 讲清楚之javascript作用域
  • 深入 Nginx 之配置篇
  • 使用 Docker 部署 Spring Boot项目
  • 使用SAX解析XML
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 如何用纯 CSS 创作一个货车 loader
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #QT(一种朴素的计算器实现方法)
  • #QT项目实战(天气预报)
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (6)添加vue-cookie
  • (办公)springboot配置aop处理请求.
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (转) 深度模型优化性能 调参
  • (转)ObjectiveC 深浅拷贝学习
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .net中生成excel后调整宽度
  • @WebServiceClient注解,wsdlLocation 可配置
  • [ 数据结构 - C++] AVL树原理及实现
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [Android实例] 保持屏幕长亮的两种方法 [转]
  • [bzoj 3534][Sdoi2014] 重建