6

这可能看起来是一个非常简单的问题,但我在网上没有找到答案。

任何人都可以给我线索如何为 SIP 域执行 NAPTR 查询?(这主要用于 DNS 查找),或者任何对我来说也很好的参考资料(这个存在于 rfc2915 上)。

也许使用终端或任何工具,而且我还想使用 java 来做,所以如果任何一段代码都会非常有帮助。

4

3 回答 3

11

您正在寻找的 RFC 是“会话发起协议 (SIP):定位 SIP 服务器”。

下面简要介绍如何选择传输协议和解析 SIP 服务器地址。

  1. 如果指定了传输参数,则优先,
  2. 如果没有传输参数且目标是 IP 地址,则 sip 应使用 udp 和 sips tcp,
  3. 如果没有传输参数且目标是具有显式端口的主机名,则 sip 应使用 udp 和 sips tcp,并且应使用 A 或 AAAA 记录 DNS 查找来解析主机(第 4.2 节),
  4. 如果没有传输协议并且没有明确的端口和目标是主机名,则客户端应该进行 NAPTR 查找并利用服务 SIP+D2U、SIP+D2T、SIP+D2S、SIPS+D2T 和 SIPS+D2S 的记录,
  5. 如果找到 NAPTR 记录,则选择所需的传输并查找 SRV 记录,
  6. 如果未找到 NAPTR 记录,则查找所需协议 _sip._udp、_sip._tcp、_sips._tcp、_sip._tls 的 SRV 记录,
  7. 如果没有找到 SRV 记录,则查找 A 或 AAAA 记录。

在现实世界中,几乎没有 SIP 提供商使用 NAPTR 记录,可能有一半或更少使用 SRV 记录,其余仅依赖 A 记录。在我自己的 SIP 软件中,我关闭了 NAPTR 查找,因为它只是浪费时间,而且如果 SIP 提供商费心设置 NAPTR 记录,他们很可能也会设置标准 SRV 记录。

事后看来,SIP 协议设计者可能应该单独处理整个 SIP 服务器地址解析,让实施者使用标准 IP 负载平衡和故障转移机制。因为 SIP 客户端并不都支持 SRV 记录,在我的经验中,使用这样的记录总比没有好,但对于故障转移或负载平衡来说并不是一个很好的解决方案。

如果您正在寻找带有 SIP NAPTR 记录的主机名,请尝试 columbia.edu 和 snom.com,上次我检查它们都有一些。

于 2013-01-06T10:09:44.880 回答
1

DNS 中的 NAPTR 记录与 DNS中的任何其他记录(SRV、CNAME 等)一样。

NAPTR 记录最常用于 Internet 电话中的应用程序,例如,在会话发起协议 (SIP) 中服务器和用户地址的映射中。NAPTR 记录与服务记录 (SRV) 的组合允许链接多个记录以形成复杂的重写规则,从而产生新的域标签或统一资源标识符 (URI)。

NAPTR 记录的 DNS 类型代码是 35。

要查询它们,您可以使用命令行工具dig并使用-t开关指定查询类型。例如:

$ dig -t naptr 4.4.2.2.3.3.5.6.8.1.4.4.e164.arpa

; <<>> DiG 9.10.6 <<>> -t naptr 4.4.2.2.3.3.5.6.8.1.4.4.e164.arpa
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64886
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;4.4.2.2.3.3.5.6.8.1.4.4.e164.arpa. IN  NAPTR

;; ANSWER SECTION:
4.4.2.2.3.3.5.6.8.1.4.4.e164.arpa. 86400 IN NAPTR 100 20 "u" "E2U+pstn:tel" "!^(.*)$!tel:\\1!" .
4.4.2.2.3.3.5.6.8.1.4.4.e164.arpa. 86400 IN NAPTR 100 10 "u" "E2U+sip" "!^\\+441865332(.*)$!sip:\\1@nominet.org.uk!" .

;; Query time: 356 msec
;; SERVER: 192.168.1.85#53(192.168.1.85)
;; WHEN: Sat Oct 13 12:31:29 EDT 2018
;; MSG SIZE  rcvd: 179

如果您有兴趣,可以阅读有关 E.164 和 ENUM 的更多信息:

于 2018-10-13T16:36:03.323 回答
1

NAPTR 记录和 SRV 记录在 LTE (4G) 解决方案中很常见。EPC 节点(网络节点)使用 DNS 来选择使用 S-NAPTR & SRV 记录的其他 EPC 节点。这在不改变 MME 节点上的任何配置的情况下为运营商提供了添加/删除节点的很大自由度。您可以参考一些 3gpp 标准 29.003 或 23.401 或 google 关于主题“使用 DNS 的 epc 节点选择”。https://ericlajoie.com/nodeselection.html

于 2020-01-23T18:35:14.783 回答