linux--高速缓存DNS

本文深入探讨DNS(域名系统)的基础知识,包括DNS的工作原理、重要性及其在互联网中的角色。详细介绍了DNS服务器的配置过程,包括缓存DNS部署、正向解析、邮件交换记录、反向解析、多向解析等实验环节,以及DNS集群和动态域名解析的实现方法。

什么是DNS:
把域名翻译成IP地址的软件称为域名系统,即DNS。
DNS 是计算机域名系统 (Domain Name System 或 Domain Name Service) 的缩写,它是由域名解析器和域名服务器组成的。通过它可以把你需要访问的网址找到然后把信息送到你电脑上。
DNS的重要意义:
1、技术角度看
DNS解析是互联网绝大多数应用的实际寻址方式; 域名技术的再发展、以及基于域名技术的多种应用,丰富了互联网应用和协议。
2、资源角度看
域名是互联网上的身份标识,是不可重复的唯一标识资源; 互联网的全球化使得域名成为标识一国主权的国家战略资源。
域名解析器:指把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。

域名服务器:是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。其中域名必须对应一个IP地址,一个IP地址可以有多个域名,而IP地址不一定有域名。域名系统采用类似目录树的等级结构。域名服务器通常为客户机/服务器模式中的服务器方,它主要有两种形式:主服务器和转发服务器。将域名映射为IP地址的过程就称为“域名解析”。
实验环节:
环境:虚拟机desktop(能上网) 虚拟机server,在同一个内网环境下。
1.告诉缓存DNS的部署
在desktop 上:
yum search dns
yum install bind -y
systemctl start named 启动不起来时 手动编辑打开的新shell
sysetmctl enable named
firewall-cmd --list
firewall-cmd --perment --add-service=dns #也可以不加perment,后面就不需要reload
firewall-cmd --reload
rpm -ql bind 主配置文件
/etc/named.conf 子配置文件
/etc/named.rfc1912.zones 数据目录
var/named /avr…存放可变数据的目录
netstat -antlupe | grep named 发现不做设置时dns只对本机开放端口53
在这里插入图片描述
在这里插入图片描述
vim /etc/named.conf
编辑11 17 18 32行如图所示
在这里插入图片描述在这里插入图片描述
systemctl restart named

vim /etc/resolv.conf
nameserver 114.114.114.114

在server里面:
在虚拟机配置
vim /etc/reslov.conf
nameserver 172.5.254.110(desktop ip)

此时虚拟机就使用真机进行dns的解析
dig www.qq.com
第一次:
在这里插入图片描述在这里插入图片描述
第二次:
在这里插入图片描述
2.正向解析
在desktop中:
vim /etc/named.conf
编辑11 17 行 30行 删除18行114.114.114.114
在这里插入图片描述
vim /etc/named.rfc1912.zones
在这里插入图片描述cd /var/named
cp -p named.localhost westos.org.zone
#复制模板时,把权限也复制过来,因为需要文件的组为named
在这里插入图片描述vim westos.org.zone
在这里插入图片描述
vim /etc/reslov.conf
在这里插入图片描述
systemctl restart named
在这里插入图片描述
dig bbs.westos.org(不存在)
在这里插入图片描述
vim /var/named/westos.org.zone
CNAME记录用于将某个别名指向到某个A记录上,这样就不需要再为某个新名字另外创建一条新的A记录
在这里插入图片描述
systemctl restart named
在这里插入图片描述在这里插入图片描述3.邮件交换记录
netstat -antlupe | grep 25
vim /var/named/westos.org.zone
在这里插入图片描述
sysetmctl restart named
在这里插入图片描述在这里插入图片描述在这里插入图片描述4.反向解析
vim /etc/named.rfc1912.zones
在这里插入图片描述cd /var/named/
ls
cp -p named.loopback 172.25.254.ptr #复制模板文件生成反向解析文件
vim 172.25.254.ptr
在这里插入图片描述systemctl restart named
在这里插入图片描述在这里插入图片描述5.多向解析
将虚拟机desktop设置成双ip主机
在这里插入图片描述netstat -antlupe | grep named 确定53端口对1.1.1.110开放
在这里插入图片描述
cd /var/named
cp -p westos.org.zone westos.org.local.zone #复制生成1.1.1.110的文件
在这里插入图片描述cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.local.zones
vim /etc/named.rfc1912.local.zones
修改
在这里插入图片描述
vim /etc/named.conf
在这里插入图片描述在server中设置IP为1.1.1.2
设置dns为desktopip vim /etc/reslov.conf 1.1.1.1
server中
在这里插入图片描述
desktop中
在这里插入图片描述6.DNS集群
vim /etc/named
先将双向解析的操作注释掉
还原至原始内容
systemctl restart named
在这里插入图片描述
vim /etc/named.rfc1912.zones
在这里插入图片描述
systemctl restart named
在server中:
yum search dns
yum install bind -y
systemctl start named 启动不起来时 手动编辑打开的新shell
sysetmctl enable named
firewall-cmd --list
firewall-cmd --perment --add-service=dns #也可以不加perment,后面就不需要reload
firewall-cmd --reload

vim /etc/named.conf
在这里插入图片描述
在这里插入图片描述
vim /etc/named.rfc1912.zones
在这里插入图片描述
vim resolv.conf
nameserver 172.25.254.1(主dns ip)
systemctl resatrt named

在这里插入图片描述
在这里插入图片描述
在desktop中:

vim /var/named/westos.org.zone
修改:
在这里插入图片描述在server中:
在这里插入图片描述7.远程更性DNS
在desktop中:
关闭selinux
vim /etc/named.rfc1912.zones
在这里插入图片描述
sysetmct restart named
cd /var/named/
ls
cp westos.org.zone /mnt/ -p 备份该文件,为了之后的实验还原
chmod g+w /var/named/
在这里插入图片描述在serevr中
nsupdate
在这里插入图片描述
在desktop中:
在这里插入图片描述cd /var/named/
rm -fr westos.org.zone*
ls
cp -p /mnt/westos.org.zone .
基于密钥的更新(更安全)
在desktop中:
cd /mnt/
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos #生成钥匙westos
没有反应时打开一个shell随便敲东西
在这里插入图片描述cp -p /etc/rndc.key /etc/westos.key
vim /etc/westos.key 编辑钥匙文件
在这里插入图片描述
vim /etc/named.conf #让DNS识别钥匙
在这里插入图片描述
vim /etc/named.rfc1912.zones
在这里插入图片描述
systemctl restart named
scp /mnt/Kwestos …root@172.25.254.210:/mnt #将密码发给server
在这里插入图片描述在server中:
在这里插入图片描述
在这里插入图片描述8.动态域名解析DDNS
desktop中:
cd /var/named/
rm -fr westos.org.zone

ls
cp -p /mnt/westos.org.zone .

yum install dhcp -y
vim /etc/dhcp/dhcpd.conf
cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
在这里插入图片描述
vim /etc/dhcp/dhcpd.conf
删掉27 28行和35行以后的 更改7 8 行 30-33行
在这里插入图片描述
在这里插入图片描述
systemctl start dhcpd
在这里插入图片描述vim /etc/dhcp/dhcpd.conf
在这里插入图片描述在这里插入图片描述
systemctl resatrt named
systemctl restart dhcpd
systemctl status dhcpd

配置server
设置主机名称为 zzz.westos.org
为动态获取IP 并得到desktop dhcp给他的 一个ip
在这里插入图片描述
在这里插入图片描述
vim /etc/resolv.conf
nameserver 172.25.254.1
最后
在这里插入图片描述

### 配置缓存DNS服务器 在Linux系统上配置缓存DNS服务器,可以通过安装和配置BIND(Berkeley Internet Name Domain)服务来实现。缓存DNS服务器(也称为高速缓存DNS服务器)的主要功能是通过向其他权威DNS服务器查询获得域名与IP地址的映射关系,并将结果缓存到本地,以提高后续相同查询的响应速度。 #### 安装BIND软件包 首先,在Linux系统上安装BIND软件包。可以使用以下命令进行安装: ```bash sudo yum install bind bind-utils -y ``` - `bind` 是BIND服务的核心软件包。 - `bind-utils` 提供了用于测试和调试DNS的工具,如 `nslookup` 和 `dig`。 #### 配置主配置文件 安装完成后,需要修改BIND的主配置文件 `/etc/named.conf`,以启用缓存DNS服务器的功能。编辑该文件,确保 `listen-on` 和 `listen-on-v6` 配置允许服务器监听来自客户端的请求: ```bash sudo vi /etc/named.conf ``` 在文件中找到以下部分并进行修改: ```conf options { listen-on port 53 { any; }; 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"; allow-query { any; }; }; ``` - `listen-on port 53 { any; };` 表示BIND将监听所有网络接口上的53端口(DNS默认端口)。 - `allow-query { any; };` 表示允许所有客户端查询该DNS服务器。 #### 配置根DNS服务器 缓存DNS服务器需要知道如何查找根DNS服务器。BIND的默认配置文件中已经包含了根DNS服务器的信息,位于 `/var/named/named.ca` 文件中。通常不需要手动修改此文件,除非需要更新根服务器列表。 #### 启动并启用BIND服务 完成配置后,启动BIND服务,并设置为开机自启: ```bash sudo systemctl start named sudo systemctl enable named ``` #### 关闭防火墙 为了确保DNS查询请求能够顺利通过,建议暂时关闭防火墙或允许53端口的流量: ```bash sudo systemctl stop firewalld sudo systemctl disable firewalld ``` 或者,如果使用的是 `firewalld`,可以仅开放53端口: ```bash sudo firewall-cmd --permanent --add-port=53/tcp sudo firewall-cmd --permanent --add-port=53/udp sudo firewall-cmd --reload ``` #### 测试DNS服务器 在客户端上,可以通过修改 `/etc/resolv.conf` 文件,将DNS服务器指向刚刚配置的缓存DNS服务器。例如,在客户端机器上执行以下命令: ```bash sudo echo "nameserver 172.25.254.114" > /etc/resolv.conf ``` 然后,使用 `nslookup` 或 `dig` 命令测试DNS解析是否正常工作: ```bash nslookup google.com ``` 如果一切正常,`nslookup` 应该会返回 `google.com` 的IP地址。 #### 日志与维护 BIND的日志信息通常记录在 `/var/log/messages` 文件中,可以通过查看该文件来排查可能出现的问题: ```bash sudo tail -f /var/log/messages ``` 此外,定期检查BIND的配置文件是否有语法错误,可以使用以下命令: ```bash sudo named-checkconf ``` #### 安全性建议 虽然缓存DNS服务器本身不负责管理特定的DNS区域,但仍需要注意安全性。建议采取以下措施: - 限制允许查询的客户端范围,避免被滥用为开放DNS服务器。 - 定期更新BIND软件包,确保修复了已知的安全漏洞。 - 监控DNS查询日志,及时发现异常行为。 通过以上步骤,可以在Linux系统上成功配置一个缓存DNS服务器,从而提高内网用户的DNS解析效率[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值