《DNS与BIND(第5版)》——4.5 主机名称检查

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

本节书摘来自异步社区《DNS与BIND(第5版)》一书中的第4章,第4.5节,作者: 【美】Joseph Davies 更多章节内容可以访问云栖社区“异步社区”公众号查看。

4.5 主机名称检查

如果名称服务器使用的是BIND 或者更新的版本(大部分都是这种情况),则必须特别注意主机是如何命名的。从BIND 4.9.4开始,BIND会检查主机名称是否符合RFC 952的规范要求。如果主机名称不符合该规范,那么BIND会将其当成一个语法错误。

不必恐慌,因为这项检查只针对那些被认为是主机名称的名称。请记住,资源记录拥有一个名称字段和一个数据字段,例如:


e0b56dbfb5b13cffbcee9fc60f7cfc141723fe3b

主机名称会被放在A(地址)和MX(第5章中会介绍)记录的名称(name)字段中。主机名称也会出现在SOA和NS记录的数据(data)字段中。CNAME无须遵从主机的命名规则,因为它所指向的名称可以是非主机名称。

现在来看看主机命名的规则吧。主机名称允许在每个标签(label)中包含字母和数字字符。下面都是有效的主机名称:


<a href=https://yqfile.alicdn.com/14e152fe652ae396cf57a2cdab8474e4a65d3824.png" >

如果连字符“-”出现在标签的中间,那么也是有效的:


b2aed7226677e102921e6cba19d90c9f0e4b0637

提示

主机名称中不允许出现下划线“_”。
不用做主机名称的名称可以包含任何可打印的ASCII字符。

如果某个资源记录的数据字段需要一个邮件地址(就像SOA记录中的那样),那么其第一个标签可以包含任何可打印的字符,因为它不是一个主机名称,但是其余的标签都必须遵循上述主机名称的语法。例如,邮件地址应该使用下述的语法:

<ASCII-characters>.<hostname-characters>

例如,假设邮件地址是key_grip@movie.edu,那么即使其中有“ _ ”,也仍然可以在SOA记录中使用该地址。记住,在邮件地址中需要用“.”来代替“@”,就像下面这样:


<a href=https://yqfile.alicdn.com/9afcaafbd4847e1174a0e6d7b321371b41161fcd.png" >

从语法比较宽松的BIND版本升级到语法比较严格的BIND版本时,这层额外的检查可能会导致很大的问题,特别是那些已将含有“_”的主机名称标准化的站点。如果打算以后再更改这些名称(迟早还是要改的,不是吗?),那么可以将错误转变为警告消息,或者简单地把不合法的名称都忽略掉。下面的配置文件语句就把错误转变成了警告消息:


<a href=https://yqfile.alicdn.com/11a7c3bea13a31f8f42f277b2cb7b830cc5039c8.png" >

这些警告消息会被syslog记录,稍后会简要介绍。下面的配置文件语句可以用来直接忽视这些错误条目:


<a href=https://yqfile.alicdn.com/4fbebe9aa6272ade6c017262c8a4ddfb74d1351a.png" >

如果不符合规定的名称来自于备份的区域(即没有管理权限),那么就添加一条相似的语句,指定slave而不是master。


<a href=https://yqfile.alicdn.com/e3478089305d33ea9288bad59c9fc3d26637ae9d.png" >

如果这个名称来自对查询所作的响应,而不是区域传输,那么就在语句中指定response:


d6cd0dc4354785e3e939ac4ea3fe55b8f3efc21b

下面是BIND的默认设置:


<a href=https://yqfile.alicdn.com/c0cda6f434dcdd3498e90e99bc181ae6c6a341a9.png" >

名称检查也可以基于每个区域来加以指定,这样就可以为某个特定区域单独配置,以覆盖掉options语句中的名称检查行为:


acddb5f56d8d3309e8fe3fcd5e57561ec008812c

提示

在options语句中,名称检查行包含三个字段(check-names master fail);而在zone语句中,名称检查行只包含两个字段(check-names fail)。这是因为zone语句中已经指定了类型(zone语句中所指定区域的类型)。

相关文章
|
6月前
|
Shell Linux UED
|
6月前
|
网络协议 应用服务中间件 nginx
【CKA模拟题】如何用Nslookup轻松检查集群服务名的DNS解析?
【CKA模拟题】如何用Nslookup轻松检查集群服务名的DNS解析?
184 2
|
6月前
|
域名解析 网络协议 Serverless
阿里云DNS常见问题之阿里云DNS不再支持自定义NS名称功能如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
6月前
|
存储 缓存 固态存储
深度解析linux主机:从应用到硬盘,玩转系统I/O性能优化攻略!
深度解析linux主机:从应用到硬盘,玩转系统I/O性能优化攻略!
106 0
|
1月前
|
网络协议 开发工具 C语言
Jetson错误(二):wget命令提示无法解析主机地址的问题解决
对于解决在NVIDIA Jetson平台上使用wget命令时出现的无法解析主机地址的问题,提供了两种解决方法:一种是临时修改DNS服务器为Google的公共DNS,另一种是永久修改DNS设置。
85 5
|
1月前
|
弹性计算 负载均衡 网络协议
内部名称解析设置阿里云私有 DNS 区域,针对于阿里云国际版经验教程
内部名称解析设置阿里云私有 DNS 区域,针对于阿里云国际版经验教程
|
2月前
|
网络协议 网络安全
基于bind软件部署DNS服务器
关于如何使用bind软件部署DNS服务器的教程,包括DNS服务器的类型、基于bind软件的部署步骤、验证DNS服务器可用性的指导,以及如何进行DNS正向解析的实现。
89 2
基于bind软件部署DNS服务器
|
6月前
|
弹性计算 Ubuntu Windows
2024年部署幻兽帕鲁/Palworld服务器多少钱?阿里云帕鲁主机优惠价格解析
对于热爱《幻兽帕鲁》的玩家们来说,一个稳定、高效的游戏服务器是畅享游戏乐趣的关键。那么,搭建一个这样的服务器需要多少钱呢?别担心,阿里云已经为大家准备了超值的幻兽帕鲁Palworld游戏服务器!
|
3月前
|
JavaScript 前端开发
bind原理深度解析
【8月更文挑战第1天】bind原理深度解析
39 0
|
5月前
|
域名解析 存储 缓存
HTTP请求流程概览:浏览器构建请求行含方法、URL和版本;检查缓存;解析IP与端口
【6月更文挑战第23天】 HTTP请求流程概览:浏览器构建请求行含方法、URL和版本;检查缓存;解析IP与端口;TCP连接(HTTP/1.1可能需排队);三次握手;发送请求头与体;服务器处理并返回响应;TCP连接可能关闭或保持;浏览器接收并显示响应,更新缓存。HTTP版本间有差异。
89 5

相关产品

  • 云解析DNS
  • 推荐镜像

    更多