Записи NAPTR: Стандартизация и применение в интернет-телефонии.
NAPTR record
Записи NAPTR в DNS: что это такое и для чего нужны? Используются в IP-телефонии (SIP), для преобразования адресов и создания сложных правил перенаправления.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Показатель авторитета имени (NAPTR) — это тип ресурсной записи в системе доменных имен Интернета. Записи NAPTR наиболее часто используются в приложениях интернет-телефонии, например, для сопоставления серверов и адресов пользователей в протоколе инициирования сеанса (SIP). Комбинация записей NAPTR с записями служб (SRV) позволяет объединять несколько записей в цепочки для формирования сложных правил перенаправления, которые генерируют новые доменные метки или универсальные идентификаторы ресурсов (URI). Код типа DNS для записи NAPTR — 35.
A Name Authority Pointer (NAPTR) is a type of resource record in the Domain Name System of the Internet. NAPTR records are most commonly used for applications in Internet telephony, for example, in the mapping of servers and user addresses in the Session Initiation Protocol (SIP). The combination of NAPTR records with Service Records (SRV) allows the chaining of multiple records to form complex rewrite rules which produce new domain labels or uniform resource identifiers (URIs). The DNS type code for the NAPTR record is 35.
Обоснование
Названия единых ресурсов (URN) — это подмножество идентификаторов единых ресурсов (URI), используемых для абстрактных идентификаторов, таких как имя человека или его номер телефона. Чтобы URN были значимыми, они должны быть сопоставлены с каким-либо конкретным ресурсом. Унифицированные локаторы ресурсов (URL) часто используются для описания таких ресурсов, как имя хоста компьютера или локальный файл. Запись NAPTR способствует стандартизации URN. Записи NAPTR сопоставляют наборы URN, URL и обычные доменные имена и предлагают клиентам протоколы, доступные для связи с соответствующим ресурсом. Каждая запись NAPTR содержит имя службы, набор флагов, регулярное выражение, значение приоритета, предпочтение и шаблон замены. Несколько записей могут быть объединены в каскад для детерминированного преобразования URI. Эти каскадные правила были стандартизированы в и .
Uniform Resource Names (URNs) are a subset of Uniform Resource Identifiers (URIs) used for abstract identifiers, such as a person's name or their telephone number. For URNs to be meaningful, they must be mapped to a concrete resource of some sort. Uniform Resource Locators (URLs) are often used to describe such resources, such as a computer hostname, or a local file. The NAPTR record aids in the standardization of URNs. NAPTR records map between sets of URNs, URLs and plain domain names and suggest to clients the protocols available for communication with the mapped resource. Each NAPTR record contains a service name, a set of flags, a regular expression rule, an order value, a preference and a replacement pattern. Multiple records can be chained together in a cascade to rewrite URIs in deterministic ways. These cascading rules have been standardized in and .
Пример
Обычно запись NAPTR используется протоколом инициирования сеансов (SIP), который маршрутизирует сеансы телефонной связи по IP-сетям. Например, URI для американского телефонного номера 1 800 555 1234 может быть tel:+1 800 555 1234, а его доменное имя – 4.3.2.1.5.5.5.0.0.8.1.e164.arpa. Клиент SIP, запрашивающий это имя, может получить:
A common use of NAPTR records is by the Session Initiation Protocol, which routes telephony sessions over IP networks. For example, the URI for the US telephone number 1 800 555 1234 might be tel:+1 800 555 1234 and its domain name 4.3.2.1.5.5.5.0.0.8.1. e164. arpa. A SIP client querying that name might receive:
Первая запись имеет значение порядка 100, которое ниже 102 и, следовательно, имеет приоритет. Его предпочтение 10 не имеет значения, так как нет других правил с порядком 100. Название службы E2U+sip – это строка ENUM, указывающая, что запись может быть использована в запросах преобразования телефонного номера в SIP URI. Клиент применяет регулярное выражение, которое заменяет весь его URI tel:+1 800 555 1234 на sip:customer service@example.com. Флаг U указывает, что заменяющая строка является SIP URI и что дальнейшие правила применяться не должны. Для разрешения SIP URI клиент выполняет второй поиск NAPTR – уже для example.com, результатом которого будет:
The first record has an order value of 100, which is lower than 102 and therefore has precedence. Its preference of 10 is unimportant as there are no other rules with order 100. The service name E2U+sip is an ENUM string indicating that the record can be used in telephone number to SIP URI queries. The client applies the regular expression , which replaces its entire URI tel:+1 800 555 1234 with sip:customer service@example. com. The flag U indicates that the replacement string is a SIP URI, and that no further rules should be applied. To resolve the SIP URI, the client performs a second NAPTR lookup—on example. com, yielding:
Как и в первом примере, клиент выбирает первую запись, поскольку она имеет наименьшее значение порядка. Правило регулярного выражения заменяет URI запроса, на этот раз на доменное имя sip.udp.example.com. Флаг S указывает, что полученное доменное имя указывает на запись SRV. Таким образом, клиент завершает работу с sip.udp.example.com, для которого он затем может получить запись SRV для инициирования телефонного вызова.
As in the first example, the client picks the first record because it has the lowest order value. The regular expression rule replaces the query URI, this time with the domain name sip. udp. example. com. The flag S indicates that the resulting domain name points to a SRV record. The client thus finishes with sip. udp. example. com, for which it can then fetch an SRV record to initiate a telephony call.
Поддержка
Поддержка NAPTR в продуктах поставщиков? ISC BIND, CZ. NIC Knot DNS, Cisco Systems CNR, Daniel J. Bernstein djbdns, BlueCat Networks Integrity, EfficientIP SOLIDserver, Google Cloud DNS, Infoblox Infoblox Trinzic Appliance, Microsoft Windows Server 2003 DNS Server, Microsoft Windows Server 2008 R2 DNS Server, Microsoft Azure DNS, NS1 mDNS и DDI, PowerDNS/Open Xchange PowerDNS, NLnet Labs NSD, Amazon Web Services Amazon Route 53, Sam Trenholme MaraDNS, Unixservice, LLC. unxsBind, Simon Kelley Dnsmasq, F5 Networks F5 Networks BIG IP DNS, OVH DNS, DNS.com 51DNS DNS, Citrix Systems NetScaler GSLB, Cloudflare, Cloudflare Authoritative DNS.
Vendor Product NAPTR support? ISC BIND CZ. NIC Knot DNS Cisco Systems CNR Daniel J. Bernstein djbdns BlueCat Networks Integrity EfficientIP SOLIDserver GoogleGoogle Cloud DNS Infoblox Infoblox Trinzic Appliance Microsoft Windows Server 2003 DNS Server Microsoft Windows Server 2008 R2 DNS Server Microsoft Azure DNS NS1 mDNS and DDI PowerDNS/Open Xchange PowerDNS NLnet Labs NSD Amazon Web Services Amazon Route 53 Sam Trenholme MaraDNS Unixservice, LLC. unxsBind Simon Kelley Dnsmasq F5 Networks F5 Networks BIG IP DNS OVH DNS DNS. com 51DNS DNS Citrix Systems NetScaler GSLB Cloudflare Cloudflare Authoritative DNS
Реализации NAPTR обычно также поддерживают EDNS, так как ответы, содержащие несколько записей NAPTR, как правило, превышают стандартный лимит размера пакета в 512 байт, и в противном случае потребовалось бы менее эффективное переключение на TCP вместо UDP в качестве транспортного протокола.
NAPTR implementations generally also implement EDNS as responses returning multiple NAPTR records are usually larger than the normal 512 byte packet size limit and would otherwise require a less efficient fallback to TCP, rather than UDP, for the transport protocol.