Каковы допустимые имена зон или допустимые имена служб для записей srv?

Каковы допустимые имена зон или допустимые имена служб для записей srv?

Я следовал нескольким руководствам/вопросам о том, как использовать записи A и записи SRV для сопоставления домена с определенным IP-адресом и портом, например 1.1.1.1:1889:

https://stackoverflow.com/questions/11433570/how-to-use-srv-or-any-other-record-do-redirect-a-domain

https://stackoverflow.com/questions/19015138/how-to-redirect-dns-to-different-ports

В вопросах, подобных приведенным выше, они рекомендуют использовать записи SRV. Единственное, что мне не ясно, это как определить правильное serviceимя для использования в моей записи SRV? Например, предположим, у меня есть эти записи

mysql.example.com.  86400 IN A 1.1.1.1
mongo.example.com.  86400 IN A 1.1.1.1
www.example.com.  86400 IN A 1.1.1.1
mosquitto.example.com.  86400 IN A 1.1.1.1
_mysql._tcp.example.com. 86400 IN SRV 10 20 3306 mysql.example.com.
_mongo._tcp.example.com. 86400 IN SRV 10 20 27017 mongo.example.com.
_http._tcp.example.com. 86400 IN SRV 10 20 3306 www.example.com.
_mqtt._tcp.example.com. 86400 IN SRV 10 20 3306 mosquitto.example.com.

Корректны ли _mysql, _mongo, _http and _mqttназвания услуг, которые следует использовать в моих записях SRV? Я полностью угадал названия этих служб, поскольку не смог найти веб-сайт, на котором перечислены все допустимые названия служб, которые можно использовать.

решение1

SRVПервые веб-браузеры вообще не отслеживают записи, поэтому даже если вы сможете их разработать, они бесполезны.

Теперь рассмотрим общий процесс, чтобы узнать, что входит в любую запись, взяв SRVв качестве примера.

IANA является хранителем вещей, поэтому перейдите по ссылкеhttps://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4где вы можете увидеть, SRVчто это определено в RFC 2782

Там это определяется так:

Вот формат записи SRV RR, код типа DNS которой равен 33:

   _Service._Proto.Name TTL Class SRV Priority Weight Port Target

с тогда соответственно:

Услуга

   The symbolic name of the desired service, as defined in Assigned
   Numbers [STD 2] or locally.  An underscore (_) is prepended to
   the service identifier to avoid collisions with DNS labels that
   occur in nature.

и

Прото

   The symbolic name of the desired protocol, with an underscore
   (_) prepended to prevent collisions with DNS labels that occur
   in nature.  _TCP and _UDP are at present the most useful values
   for this field, though any name defined by Assigned Numbers or
   locally may be used (as for Service).  The Proto is case
   insensitive.

[STD 2] ссылка на RFC 1700, но RFC 3232 отменил ее, создав онлайн-базу данных возможных значений... которая снова администрируется IANA.

Теперь он там:https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtmlи обратите внимание, что это в основном то, что вы найдете в файле /etc/servicesв любой Unix-системе.

Итак, возвращаясь к вашим примерам (хотя в нескольких приведенных записях номера портов неверны SRV):

  • mysqlдействительно определен для порта 3306, поэтому он допустим в качестве имени службы и, следовательно, в SRVзаписи
  • для порта 27017имя службы — mongodb, а не mongo(но учитывают ли клиенты Mongo SRVзаписи?)
  • httpдействительно определен для порта 80, поэтому это допустимое имя службы (и httpsдля порта 443)
  • mqttопределяется как допустимое имя порта, для порта 1883. Но тот же вопрос, что и выше, используют ли клиенты SRVзаписи вообще?

Обратите внимание, что в дикой природе существуют различные SRVзаписи, не соответствующие вышеизложенному. Если их можно опубликовать, они "работают", то есть ничто не помешает их разрешению на уровне DNS, даже если они не используют зарегистрированное имя службы, как указано выше, пока какое-то приложение, конечно, читает их.

Например, вы можете найти множество примеров с _sip._tlsили _sipfederationtls._tcpв Интернете, которые оба неверны: tlsэто недопустимый протокол и sipfederantiontlsнедопустимое имя службы (и на самом деле слишком длинное, какhttps://www.rfc-editor.org/rfc/rfc6335.html#section-5.1указывает, что длина имени должна быть не более 15 символов). Поэтому некоторые инструменты/пользовательский интерфейс могут помешать созданию этих записей в файле зоны, а некоторые серверы имен могут отказаться загружать их, но в большинстве случаев они будут работать (если приложения их используют).

Связанный контент