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

简介:

本节书摘来自异步社区《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语句中所指定区域的类型)。

相关文章
|
网络协议
《DNS与BIND(第5版)》——导读
无论在何时使用Internet,人们都会用到域名系统(Domain Name System,DNS),尽管人们可能还是对DNS知之甚少。实际上,每次发送电子邮件或在万维网(World Wide Web)上冲浪,都必须依赖于域名系统。
2253 0
《DNS与BIND(第5版)》——导读
|
网络协议 安全 网络安全
【UDP】——为什么 UDP 数据包不能超过 512 个字节
一开始了解的是 DNS 服务使用的是 UDP 协议,后面看到 DNS 服务主要使用 UDP 协议,在少数情况(传输的数据超过 512 个字节)下也会使用 TCP 协议,因为 UDP 数据包不能超过 512 个字节。那问题来了,为什么 UDP 数据包不能超过 512 个字节呢?
5384 0
【UDP】——为什么 UDP 数据包不能超过 512 个字节
|
4月前
|
人工智能 JavaScript 数据可视化
小白零代码玩转AI Agent:1分钟阿里云/本地部署OpenClaw+免费大模型配置+Cherry Studio可视化安装教程
2026年,AI Agent生态的内卷已从“功能竞争”转向“门槛降低”——OpenClaw(曾用名Clawdbot)作为开源AI代理框架的标杆产品,凭借强大的自动化能力圈粉无数,但传统命令行部署模式让大量零基础用户望而却步。而Cherry Studio v1.7.17及以上版本的推出,彻底打破这一壁垒:通过可视化界面实现OpenClaw一键安装,自动检测并补全依赖环境,无需手动输入复杂命令,小白也能在10分钟内完成部署。
2927 1
|
机器学习/深度学习 人工智能 监控
人工智能在图像识别中的应用:基于深度学习的算法实现
人工智能在图像识别中的应用:基于深度学习的算法实现
1016 1
|
Python
如何查询Python包的所有历史版本
如何查询Python包的所有历史版本
503 5
|
图形学
【unity知识点】实现延迟调用——InvokeRepeating Invoke CancelInvoke Coroutine使用介绍
【unity知识点】实现延迟调用——InvokeRepeating Invoke CancelInvoke Coroutine使用介绍
1230 0
|
机器学习/深度学习 存储 文字识别
发票OCR识别-增值税发票OCR识别-医疗发票OCR识别-财务票据OCR识别-机动车销售发票OCR识别
发票识别包括:增值税发票OCR识别、医疗发票OCR识别、财务票据OCR识别、机动车销售发票OCR识别
348 1
|
存储 数据采集 分布式计算
阿里巴巴数据仓库实践:从离线到实时的一体化探索
阿里巴巴的数据仓库实践从离线到实时的一体化探索,不仅为企业自身业务的快速发展提供了有力支撑,也为行业树立了标杆。通过不断优化技术架构、提升数据处理能力、加强数据治理和安全管理,阿里巴巴的实时数仓将为企业创造更大的价值,推动数字化转型的深入发展。未来,随着技术的不断进步和业务的持续拓展,阿里巴巴的实时数仓实践将展现出更加广阔的应用前景和发展空间。
|
NoSQL Redis
Redis——设置最大内存 | key淘汰机制
Redis——设置最大内存 | key淘汰机制
405 0
|
Java
编写规范JAVA代码
本文档制定了Java编程规范,旨在确保系统源程序的可读性和可维护性,适用于所有Java开发、测试及维护过程。规范包括命名规则(如Package、Class及其成员等)与样式规定,强调统一风格以提高协作效率,并列举了具体示例与注意事项,如避免单字符变量名及使用有意义的反义词组命名等。
421 1