本文主要是介绍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域名解析服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!