Linux DNS服务

news/2024/11/25 19:44:54/

 DNS

作用

DNS是 域名系统 的英文缩写,作为将域名与IP地址相互映射的一个分布式数据库,让人可以通过域名访问互联网

  • 正向解析 将域名解析为IP
  • 反向解析 根据IP查找对应域名

域名结构

http://www.sina.com.cn./

http://主机名.子域.二级域.顶级域.根域 /

每一级的域名长度限制63字符,总长度不能超过253字符

根据域名查看网站ip

nslookup www.naidu.com
host www.naidu.com
dig www.naidu.com

DNS端口

  • TCP 53         用于连接DNS服务器
  • UDP 53         用于解析地址

DNS系统的分布式数据结构

根域                                     域名空间顶层,用“ . ”表示

顶级域                                 一般代表组织机构或国家

二级域                                 标明顶级域内的一个特定的组织(可有可无)

子域                                     二级域下创建的各级域统称为子域

主机名                                 位于域名空间最底层,具体的计算机。

DNS解析过程(面试常问)

解析过程分迭代模式和递归模式。

迭代查询较为常用,因为他不像递归查询一样容易占用上层域服务器的资源

递归模式解析过程:

客户端发出请求 查找本地缓存域服务器,若没有

将相关请求转发给根域服务器解析,

根域服务器将请求转发给相应顶级域服务器,

顶级域服务器再转发给二级域服务器,

二级域服务器再转发给子域服务器,根据主机名解析出ip地址,

逐层返回给客户端,客户端即可使用ip地址访问对方主机。

同时本地缓存域服务器记录对应关系,以便下一次的访问。

迭代模式解析过程:

客户端发出请求 查找本地缓存域服务器,若没有

向根域服务器发送解析请求,返回顶级域服务器地址

向顶级域服务器发送解析请求,返回二级域服务器地址

向二级域服务器发送解析请求,返回子域服务器地址

向子域服务器发送解析请求,解析出IP地址并返回结果给本地缓存域服务器

本地缓存域服务器返回结果给客户端,并且记录对应关系,以便下一次的访问

DNS服务器类型

主域名服务器

负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。
从域名服务器

当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库
缓存域名服务器

只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但没有域名数据库。它从某个远程服务器取得每次域名顺务器查询的结果,并放在高速缓存中,以后查询相同的信息时用它予以响应。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存服务器时,必须设置根域或指定其他DNS服务器作为解析来源。
转发域名服务器

负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。

设置DNS服务器地址

  • Linux系统

    • vim /etc/resolv.conf → nameserver IP   (直接保存生效)
    • /etc/sysconfig/network-scripts/ifcfg-ens33   (需要重启)
  • windows系统

    • 网卡适配器→属性→ipv4→DNS服务器地址

本地host文件映射

hosts文件映射 更快 优先级更高

但是 hosts文件 只对本机有效,所以集群管理时 DNS解析 更方便

优先选择本地hosts文件映射,然后才是网络请求DNS服务器

  • Linux系统

    • 更改/etc/hosts 本地映射      [IP 域名1 域名2 ...]
  • windows系统

    • 更改C:/windows/system32/drivers/etc/hosts




DNS服务器搭建

安装bind软件包

yum install -y bind 

配置正向解析

查看需要修改的配置文件的路径

rpm -qc bind                #查询bind软件配置文件所在路径
/etc/named.conf                #主配置文件
/etc/named.rfc1912.zones       #区域配置文件
/var/named/named.localhost     #区域数据文件,在rfc1912文件中可自由指定位置,对应即可

1.修改主配置文件(修改监听端口 允许解析的主机)

注意格式!地址后要;并且加一个空格!!!

vim /etc/named.confoptions {listen-on port 53 { 192.168.80.101; };  #✨监听53端口 IP地址填入网卡地址 也可any表示所有#listen-on-v6 port 53 { ::1; };          #ipv6设置 不用可以注释掉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"; #内存统计文件的位置allow-query     { 192.168.80.101/24; 172.16.100.0/24; }; #✨允许使用本DNS解析服务的网段 也可any表示所有recursion yes;      #递归查询
..............................................zone "." IN {                #正向解析 . 根区域type hint;           #类型为根区域file "named.ca";     #区域数据文件为named.ca 记录了13台根域服务器的域名与IP 
};    #此条定义了一个根域,文件位于named.cainclude "/etc/named.rfc1912.zones";  #引入区域配置文件里的所有配置,为了方便管理不写在一起

2.修改区域配置文件(修改需要解析的域名和其数据文件位置)

vim /etc/named.rfc1912.zoneszone "xue.com" IN {                 #✨设置域名 正向解析xue.com区域type master;                #✨设置为主域名服务器file "xue.com.zone";        #✨设置区域数据文件存放位置allow-update { none; };
};
systemctl restart named

3.修改区域数据文件(记录域名与IP对应关系 主从域服务器设置)

复制一定要带上文件权限!这个文件的属主是named!不带权限复制会出错!

cd /var/named/
cp -p named.localhost xue.com.zone   #保留源文件的权限和属主的属性复制
cp -a named.localhost xue.com.zone   #-a 比-p功能更全 相当于组合选项

注意配置文件中域名后都有个 . 若缺少会导致失效!

vim /var/named/xue.com.zone$TTL 1D        #有效解析记录的生存周期 1天
@       IN SOA  @ mailbox.xue.com. (    #等同下条
@       IN SOA  xue.com. admin.xue.com. (   #✨邮箱(管理员地址)为admin@xue.com 但是@指代当前域名,用 . 代替#“@"符号表示当前的DNS区域名,如果仅是正向解析不用改,可用xue.com.替代 #SOA用于同步主从服务器区域数据 #mailbox.xue.com为域名的邮箱名#此段只需要关注serial序列号主从不能一样,其他一般默认20230419       ; serial #✨更新序列号,可以是 10 位以内的整数,主从不能一样1D      ; refresh  #刷新时间,重新下载地址数据的间隔,1天1H      ; retry    #重试延时,下载失败后的重试间隔 1小时1W      ; expire   #失效时间,超过该时间仍无法下载则放弃 1周3H )    ; minimum  #无效解析记录的生存周期 3小时NS      @      #与下一条同义,@代表当前域名NS      xue.com.            #✨记录当前区域的DNS服务器的名称A       192.168.80.101      #✨记录主机IPv4地址#AAAA    ::1                #记录主机IPv6地址,此处不用ipv6,注释掉
IN   MX 10      mail.xue.com.       #Mx为邮件交换记录,数字越大优先级越低,通过域名找到邮件服务器
www  IN A       192.168.80.33       #✨IN A代表正向解析 记录www.xue.com对应的IP
mail IN A       192.168.80.66       #✨IN A代表正向解析 记录mail.xue.com对应的IP
ftp  IN CNAME   www                 #✨CNAME使用别名,ftp是www的别名,解析为www相同IP
*    IN A       192.168.80.222      #✨泛域名解析,*代表任意主机名,除了上方设置的以外的主机名全部解析为此IP

注意@位置,可以填域名也可以用@指代

 

启动DNS服务

systemctl start named      
#软件名为bind,服务名为namednetstat -lntup | grep :53
#验证端口
journalctl -xe
vim /var/log/messages   #按 G 到底#若报错查看日志

 关闭防火墙

systemctl stop firewalld
setenforce 0

修改客户机DNS服务器地址 

客户机DNS服务器地址为刚刚配置的地址

vim /etc/resolv.conf             #DNS配置文件中指定服务器地址nameserver 192.168.80.101    

DNS配置文件路径vim /etc/resolv.conf  (面试会问)

验证

此时成功获取到刚刚设置的域名与ip映射关系

配置反向解析(很少用到 了解即可)

1.修改主配置文件(刚刚已经修改过)

2.修改区域配置文件(修改需要解析的网段和其数据文件位置)

vim /etc/named.rfc1912.zoneszone "80.168.192.in-addr.arpa" IN {   #只需要写网段 不需要写主机 倒序type master;file "xue.com.local";allow-update { none; };
};
systemctl restart named

3.修改区域数据文件(记录IP与域名对应关系 主从域服务器设置)

复制一定要带上文件权限!这个文件的属主是named!不带权限复制会出错!

cd /var/named/
cp -p named.localhost xue.com.local    #保留源文件的权限和属主的属性复制
cp -a named.localhost xue.com.local    #-a 比-p功能更全 相当于组合选项

注意配置文件中域名后都有个 . 若缺少会导致失效!

vim xue.com.local$TTL 1D
@       IN SOA  xue.com. admin.xue.com. (    #此处的@在反向解析时必须修改(正向解析可以不改)20230419        ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      xue.com.           #域名A       192.168.80.101     #域服务器地址(此处本机作为域服务器)33 IN PTR www.xue.com.
66 IN PTR mail.xue.com.     #与正向解析反着写。PTR:反向指针

 重启DNS服务

systemctl restart named

关闭防火墙

systemctl stop firewalld
setenforce 0

修改客户机DNS服务器地址

vim /etc/resolv.confnameserver 192.168.80.101

验证

主从域服务器设置

主服务器 192.168.80.101

从服务器 192.168.80.102

验证客户机 192.168.80.103

 1.修改主配置文件(主服务器已经设置 这里只需要设置从服务器)

注意格式!地址后要;并且加一个空格!!!

##########从服务器##########
vim /etc/named.confoptions {listen-on port 53 { any; };       #✨✨改了any 也可为192.168.80.102(本机)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     { any; };         #✨✨改了any 也可为192.168.80.102(本机)

2.修改区域配置文件(主服务器要允许从服务器获取数据 从服务器填写主服务器地址)

##########主服务器##########
vim /etc/named.rfc1912.zoneszone "xue.com" IN {                 #✨设置域名 正向解析xue.com区域type master;                #✨设置为主域名服务器file "xue.com.zone";        #✨设置区域数据文件存放位置allow-transfer{ 192.168.80.102; };    #✨✨设置允许从服务器获取数据
};zone "80.168.192.in-addr.arpa" IN {  #✨只需要写网段 不需要写主机 倒序type master;file "xue.com.local";allow-transfer{ 192.168.80.102; };     #✨✨反向解析也设置允许从服务器获取数据
};##########从服务器##########
vim /etc/named.rfc1912.zoneszone "xue.com" IN {type slave;                           #✨✨设置从服务器masters { 192.168.80.101; };          #✨✨设置主服务器地址file "slaves/xue.com.zone";
};
zone "80.168.192.in-addr.arpa" IN {type slave;masters { 192.168.80.101; };          #✨✨设置反向解析file "slaves/xue.com.local";
};
systemctl restart named

3.修改区域数据文件(主服务器已经设置过 从服务器无须设置自动同步)

关闭主服务器和从服务器防火墙

systemctl stop firewalld
setenforce 0

修改客户机DNS服务器地址 

客户机DNS服务器地址为刚刚配置的地址

##########192.168.80.103验证客户端##########vim /etc/resolv.conf             #DNS配置文件中指定服务器地址nameserver 192.168.80.101      #主nameserver 192.168.80.102      #从  

验证

关闭主服务器

#####主服务器#####
systemctl stop named

此时解析全部走从服务器

 

补充: 默认域名

/etc/resolv.conf ——search

vim /etc/resolv.confsearch xue.com

此时只需要输入主机名(www、ftp)即可补全后面的域名

 

 


http://www.ppmy.cn/news/49809.html

相关文章

美颜sdk开发实践:如何构建美颜sdk功能?

美颜功能是现今很多应用中必不可少的一项功能。而要实现美颜功能,除了自己编写美颜算法外,还可以使用美颜sdk来实现。本文将介绍如何从零开始构建美颜功能,利用美颜sdk实现美颜效果。 一、简介 美颜sdk可以向用户提供多种美颜效果&#xff…

瑞吉外卖项目——读写分离

读写分离 读和写所有压力都由一台数据库承担,压力大数据库服务器磁盘损坏则数据丢失,单点故障 Mysql主从复制 介绍 MySQL主从复制是一个异步的复制过程,底层是基于Nysql数据库自带的二进制日志功能。 就是一台或多台MysQL数据库&#xf…

JSPSmart系统-考试管理及成绩查询模块的设计与开发(源代码+论文)

本文所涉及的系统是根据现代教育的需求所设计的一个在线考试系统。主要是基于Struts Spring Hibernate作为平台搭建的框架开发的一套软件。本次设计作为Smart项目的一个组成部分,主要设计和开发了其中的两个主要模块,考试管理及成绩查询模块。论文首先…

DHCP 给内网客户端分配ip地址

~ 为 InsideCli 客户端网络分配地址,地址池范围: 192.168.0.110-192.168.0.190/24; ~ 域名解析服务器:按照实际需求配置 DNS 服务器地址选项; ~ 网关:按照实际需求配置网关地址选项; ~ 为…

一块钱看Android Debug: avc denied 已存在的目录不能访问

某三方应用,使用了USB摄像头,启动应用后功能不能使用,看log有如下错误, denied后面{}里的是要执行的动作,比如append,open,execmod,link等等 scontext指的是域,对应的是te文件 上面报错这条对应te文件是untrusted_app.te, scontex…

基于Java+SpringBoot+vue+element等动物救助平台设计和实现

基于JavaSpringBootvueelement等动物救助平台设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式…

智慧消防栓解决方案到底是什么样的

消防安全是人们生命财产安全的重要保障,然而目前城市消防设施管理存在不少问题:人工巡查效率低、消防设施使用率不高、缺乏信息化程度等等。为此,拓普索尔推出了智慧消防栓解决方案,将科技与实际应用相结合,为城市消防…

SAP ABAP MARA-MSBOOKPARTNO 制造商登记部分编号

BAPI_MATERIAL_SAVEDATA CLIENTDATA结构无此字段。 DATA:LS_TE_MARA TYPE BAPI_TE_MARA. DATA:LS_TE_MARAX TYPE BAPI_TE_MARAX. DATA:LT_BAPIPAREX TYPE TABLE OF BAPIPAREX. DATA:LS_BAPIPAREX TYPE BAPIPAREX. …