Linux网络部分——DNS域名解析服务

2024-05-07 01:12

本文主要是介绍Linux网络部分——DNS域名解析服务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1. 域名结构

2. 系统根据域名查找IP地址的过程

3.DNS域名解析方式

4.DNS域名解析的工作原理【☆】

5.域名解析查询方式

6.搭建主从DNS域名服务器      

①初始化操作主服务器和从服务器,安装BIND软件

②修改主服务器的主配置文件、区域配置文件、区域数据文件配置解析记录

​编辑

③修改从服务器主配置文件、主配置文件、区域配置文件、区域数据文件

④重启named服务

⑤验证配置结果,/etc/resolv.conf文件中的nameserver需要更改

7. 搭建本地DNS服务器 


        日常生活中通常我们是使用域名访问服务器,但是机器之间只认IP地址,转换的过程即为域名解析。DNS服务使用TCP和UDP的53端口,TCP的53端口用于连接DNS服务器,UDP的53端口用于解析DNS。每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

1. 域名结构

        域名结构是树形结构,以根域. 为起点,格式为:主机名.子域/二级域.顶级域.,当顶级域为国家域名时才有二级域。

.com商业

.net运营商

.org非营利组织

.edu教育机构

.cn国家

.uk

2. 系统根据域名查找IP地址的过程

1)先使用主机本地的hosts文件查找相关记录(hosts文件需要自己定义,优先级更高,但只在本机有效)

2)如果本地hosts文件没有记录,则使用DNS服务器进行解析。

3.DNS域名解析方式

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

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

4.DNS域名解析的工作原理【☆】

        采用委派机制。

        域名是树状结构,客户端先将DNS解析请求发送给本地域名服务器,本地域名服务器会先查询本地缓存有没有相关的记录,有则直接返回给客户端,没有记录则将解析请求发送给根域名服务器进行解析;根域服务器会将DNS解析请求委派给对应的顶级域服务器进行解析;顶级域服务器也会根据域名的二级域或子域再将DNS解析请求委派给对应的二级域或子域服务器进行解析;最后子域服务器会根据域名的主机名解析出响应的IP地址,再返回给本地域名服务器到客户端。

5.域名解析查询方式

递归查询:简单来说就是将DNS解析请求一探到底,逐层返回

        本地域名服务器收到客户机发送的DNS域名解析请求后,先发给根域名服务器,根域名服务器再将解析请求转发给对应的顶级域名服务器,顶级域名服务器再转发给对应的二级域名或子域名,最后子域名服务器会根据域名的主机名解析出对应的IP地址,再逐层返回给本地域名服务器到客户机。

迭代查询:简单来说就是每次DNS解析请求都会得到对应的相应回复

        本地域名服务器收到客户机发送的DNS域名解析请求后,先发给根域名服务器,根域名服务器回复消息告知去找对应的顶级域名服务器;本地域名服务器再将DNS域名解析请求发给对应的顶级域名服务器,顶级域名服务器会回复消息告知去找对应的二级域名或子域名服务器;最后本地域名服务器将DNS解析请求发送给对应的子域名服务器,子域名服务器会根据域名的主机名解析出相对应的IP地址后,直接返回给本地域名服务器

DNS系统类型:缓存域名服务器、主域名服务器、从域名服务器(缓存域名服务器和主域名服务器可以兼容)

6.搭建主从DNS域名服务器      

        配置本地局域网服务器至少1台,客户机可以为多台。这里我将我IP为192.168.170.10的虚拟机作为主服务器,192.168.170.20做从服务器(冗余)

①初始化操作主服务器和从服务器,安装BIND软件
systemctl stop firewalld       
systemctl disable firewalld   
setenforce 0                
vim /etc/selinux/config   --->  selinux=disabled
mount /dev/sr0 /mnt

②修改主服务器主配置文件、区域配置文件、区域数据文件配置解析记录

/etc/named.conf  --->默认监听本机,可以改成指定监听IP地址或者any表示任意--->关闭IPV453端口---> allow-query改成any表示允许所有客户端主机访问,或指定一个、多个网段 ---->recursion yes表示默认设置成递归查询(可改可不改)

/etc/named.rfc1912.zones 区域配置文件定义域名(正向解析配置和反向解析配置)

vim /var/named/XXXX

复制文件时要保存属性复制,否则会报错

做正向解析的配置,复制目录中named.localhost文件到当前目录,名为test.com.zone。vim编辑,两个@可以改可以不改,@可以改为test.com.完整域名  --->   指定邮箱冠名如admin.xy101.com.  --->   NS后@也改为test.com.完整域名   --->   更新标识serial可修改为20240425   --->   NS下一行设置本机IP地址   --->   往下设置正向解析的相关记录,还可以做别名XXXX  --->   保存

做反向解析配置,复制test.com.zone文件到当前目录,名为test.com.zone.local。vim编辑,

③修改从服务器主配置文件、主配置文件、区域配置文件、区域数据文件

/etc/named.conf --->默认监听本机,可以改成指定监听IP地址或者any表示任意--->关闭IPV453端口---> allow-query改成any表示允许所有客户端主机访问,或指定一个、多个网段 ---->recursion yes表示默认设置成递归查询(可改可不改)

/etc/named.rfc1912.zones 区域配置文件定义域名(正向解析配置和反向解析配置)

④重启named服务
systemctl enable named
systemctl start named

设置错误时重启named会报错,trail -f 文件名可以告诉哪里设置错误,或者根据提示的journal -xe 查看错误日志

⑤验证配置结果,/etc/resolv.conf文件中的nameserver需要更改

【补充】dig host 也可以域名解析

windows系统验证

7. 搭建本地DNS服务器 

1)初始化系统
2)安装 bind 软件包
3)修改主配置 /etc/named.conf      
listen-on port 53 { any; };      #设置监听IP地址和端口
allow-query     { any; };        #设置允许访问DNS服务器的客户端

4)修改区域配置文件 /etc/named.rfc1912.zones(跟主从差不多,这一步配置无需配置从服务器的信息)

zone "test.com" IN {                                  #正向解析配置
        type master;
        file "test.com.zone";                          #设置区域数据文件名称
};

zone "170.168.192.in-addr.arpa" IN {       #反向解析配置,地址倒写
        type master;
        file "test.com.zone.local";
};

5)修改区域数据文件 /var/named/test.com.zone
cd /var/named
cp -p named.localhost test.com.zone
vim test.com.zone

....
              NS           test.com.                       #设置当前区域名称
               A             192.168.170.10             #设置DNS服务器IP地址
www  IN A             192.168.170.100           #设置正向解析的主机名与IP地址的映射记录
xxx    IN CNAME   www                              #设置主机名 xxx 是 www 的别名

vim test.com.zone.local

....
100  IN PTR    www.test.com.         #设置IP地址与域名的反向解析记录

5)重启named服务
6)客户端设置DNS服务器地址 /etc/resolv.conf ,并验证 nslookup  host  dig

这篇关于Linux网络部分——DNS域名解析服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/965907

相关文章

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

poj 2976 分数规划二分贪心(部分对总体的贡献度) poj 3111

poj 2976: 题意: 在n场考试中,每场考试共有b题,答对的题目有a题。 允许去掉k场考试,求能达到的最高正确率是多少。 解析: 假设已知准确率为x,则每场考试对于准确率的贡献值为: a - b * x,将贡献值大的排序排在前面舍弃掉后k个。 然后二分x就行了。 代码: #include <iostream>#include <cstdio>#incl

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。