Указатель полномочий имени ( NAPTR ) — это тип записи ресурса в системе доменных имен Интернета. [1] [2]
Записи NAPTR чаще всего используются для приложений в интернет-телефонии , например, при сопоставлении серверов и адресов пользователей в протоколе SIP. Сочетание записей NAPTR с записями служб (SRV) позволяет объединять несколько записей в цепочку для формирования сложных правил перезаписи, которые создают новые доменные метки или унифицированные идентификаторы ресурсов (URI).
Код типа DNS для записи NAPTR — 35. [1]
Единообразные имена ресурсов ( URN ) являются подмножеством Единообразных идентификаторов ресурсов ( URI ), используемых для абстрактных идентификаторов, таких как имя человека или его номер телефона. Чтобы URN были осмысленными, они должны быть сопоставлены с конкретным ресурсом какого-либо рода. Единообразные локаторы ресурсов ( URL ) часто используются для описания таких ресурсов, таких как имя хоста компьютера или локальный файл.
Запись NAPTR помогает в стандартизации URN. Записи NAPTR сопоставляют наборы URN, URL и простых доменных имен и предлагают клиентам протоколы, доступные для связи с сопоставленным ресурсом. [3] Каждая запись NAPTR содержит имя службы, набор флагов, правило регулярного выражения , значение заказа, предпочтение и шаблон замены. Несколько записей могут быть объединены в каскад для перезаписи URI детерминированными способами . Эти каскадные правила были стандартизированы в RFC 2915 и 3403.
Распространенное использование записей NAPTR — протокол Session Initiation Protocol , который маршрутизирует телефонные сеансы по сетям 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, запрашивающий это имя, может получить:
$ORIGIN 4.3.2.1.5.5.5.0.0.8.1.e164.arpa. В NAPTR 100 10 "U " "E2U+sip " " !^.*$!sip:[email protected]!" . В NAPTR 102 10 "U" "E2U+email" "!^.*$!mailto:[email protected]!" .
Первая запись имеет значение порядка 100, что ниже 102 и, следовательно, имеет приоритет. Его приоритет 10 не важен, поскольку нет других правил с порядком 100. Имя службы E2U+sip — это строка ENUM, указывающая, что запись может использоваться в запросах телефонного номера к SIP-URI. [4] Клиент применяет регулярное выражение !^.*$!sip:[email protected]!
, которое заменяет весь его URI tel:+1-800-555-1234 на sip:[email protected] . Флаг U указывает, что строка замены является SIP URI, и что никакие дополнительные правила не должны применяться.
Чтобы разрешить SIP URI, клиент выполняет второй поиск NAPTR — на example.com , что дает:
$ORIGIN example.com. В NAPTR 100 10 "S" "SIP+D2U" "!^.*$!sip:[email protected]!" _sip._udp.example.com. В NAPTR 102 10 "S" "SIP+D2T" "!^.*$!sip:[email protected]!" _sip._tcp.example.com.
Как и в первом примере, клиент выбирает первую запись, поскольку она имеет наименьшее значение порядка. Правило регулярного выражения заменяет URI запроса, на этот раз на доменное имя _sip._udp.example.com . Флаг S указывает, что полученное доменное имя указывает на запись SRV . Таким образом, клиент завершает с _sip._udp.example.com , для которой он затем может извлечь запись SRV для инициирования телефонного вызова.
Реализации NAPTR обычно также реализуют EDNS , поскольку ответы, возвращающие несколько записей NAPTR, обычно превышают обычный предельный размер пакета в 512 байт и в противном случае потребовали бы менее эффективного отката к TCP, а не UDP для транспортного протокола.
Ниже приведены некоторые услуги и продукты Voice over IP , которые требуют или поддерживают записи NAPTR.
Записи NAPTR также используются не-SIP-сервисами. Ниже перечислены известные роуминговые сервисы, использующие NAPTR для указания маршрута: