什么是DNS区域文件的有效字符,如何清除用户输入?

问题描述 投票:0回答:4

我正在使用一个界面,以允许我们的客户自行更新其DNS。

我有2个问题:

  1. 什么构成有效的有效主机和目标记录? (A,CNAME,MX,TXT),即,如果用户为主机输入........作为目标主机,则DNS服务器不会这样。
  2. 我可以使用正则表达式来清理用户输入吗?

顺便说一下,它是BIND9 DNS和C#Web应用程序。

谢谢,

凯尔

c# dns bind
4个回答
2
投票

域名标签从技术上讲可以包含任何八位位组值,但是通常它们仅包含字母数字,连字符和下划线字符。

来自RFC 1035第2.3.1节中的建议:

标签必须遵循以下规则ARPANET主机名。他们必须开始以字母结尾,以字母结尾或数字,并具有内部字符仅字母,数字和连字符。也有一些限制长度。标签必须为63字符以内。

下划线字符是最近添加的,通常用于SRV记录的标签部分。

如果您要让用户创建自己的子域,也可以允许使用“ .”字符。

可能的为:

  • [A记录-必须是点分四进制的IP地址]
  • [CNAME记录-必须是其他合法标签
  • MX记录-16位整数优先级字段和合法的主机名。注意:有些人放置的标签本身仅指向CNAME记录。对此不满意。
  • [TXT记录-您喜欢的任何东西!

请注意,在每种情况下,如果您确实允许使用不在正常集中的任何字符,则将它们存储在BIND格式的区域文件中时将需要转义。


1
投票

答案曾经很简单,但现在不再。

您几乎可以使用任何Unicode字符,但都应通过规范化处理,并且编码过程。

请参阅RFC 3490(IDNA),RFC 3454(Stringprep),RFC 3491(Nameprep),RFC 3492(Punycode)

或与Wikipedia一起查看大图(http://en.wikipedia.org/wiki/Internationalized_domain_name)。


0
投票

不要忘记AAAA,IPv6地址(请记住,距离我们用完IPv4地址只有两年了...。

有关法定名称,请阅读RFC 1123第2.1节。 domain名称可以是anythinghost名称的语法要严格得多(请参阅RFC 1123)。


0
投票

除上述建议外,如果仍然有人将区域文件从Godaddy导入route53时遇到问题,请删除注释。我花了几个小时才弄清楚,写为“; comment line here”的注释导致Route 53系统无法正确解析区域文件。

© www.soinside.com 2019 - 2024. All rights reserved.