【问题标题】:DNS domain name format for a valid DNS query有效 DNS 查询的 DNS 域名格式
【发布时间】:2018-07-19 20:03:13
【问题描述】:

有人告诉我,为了让我的 DNS 查询正常工作,我必须转换域名。 即rit.edu -> rit3edu ; www.google.com3www6google3com

我无法在 RFC https://www.ietf.org/rfc/rfc1035.txt 中找到讨论此问题的位置,因为我什至尝试执行查找。在我发送到 DNS 服务器的数据包中。我保留“。”域名,我得到“未知的扩展标签”。我也找不到任何有用的线程。我在 GitHub 上找到了一个函数,但是没有关于格式的讨论。有人有这方面的经验吗?

提前致谢

【问题讨论】:

  • 什么?如果不包含对您的问题/问题的引用,请不要链接资源。但是,复制您用于获得响应的任何代码,包括 shell 命令。标记操作系统、编程语言。
  • 使用 Wireshark 捕获应用程序发送的数据包并将其与有效数据包进行比较。
  • @markful RFC1035 是处理 DNS 有线格式的规范,这似乎是 OP 在谈论的内容,即使他的问题根本不清楚。
  • “有人告诉我”?由谁、在什么情况下、关于什么应用?你的问题不清楚。正如@Blender 所说,您始终可以使用数据包转储来了解正在发生的事情。
  • 对不起。我的导师告诉我的。当我向他咨询我的 DNS 查询被wireshark 称为格式错误的数据包时。我确实发现了这是如何完成的。每个标签前面都有字符数,在该标签中,因此 rit.edu 在作为 dns 查询发送时应采用 3rit3edu 格式。我在 RFC 中没有找到这个,但我确实从转储中推断出这个,​​所以感谢 Blender。

标签: dns


【解决方案1】:

你可以参考这个: http://www.keyboardbanger.com/dns-message-format-name-compression/#Data_label

您在 RFC1035 中附加了:

4.1.2. Question section format  

QNAME   
    a domain name represented as a sequence of labels, where
    each label consists of a length octet followed by that
    number of octets.  The domain name terminates with the
    zero length octet for the null label of the root....

【讨论】:

    【解决方案2】:

    在 DNS 查询中,域名的每个标签前面都应该有一个表示标签长度的数字。所以如果facebook.com是问题,DNS查询中的实际qname应该是8facebook3com

    【讨论】:

    • 其实就是8facebook3com0(如果没有压缩的话),最后的0表示终端根目录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-22
    • 2010-12-01
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 2012-02-08
    • 2015-11-13
    相关资源
    最近更新 更多