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/locationments/dns-parameters/dns-parameters.xhtml#dns-parameters-4SRVRFC 2782에 정의되어 있음을 알 수 있습니다.

거기에는 다음과 같이 정의되어 있습니다.

다음은 DNS 유형 코드가 33인 SRV RR의 형식입니다.

   _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/locationments/service-names-port-numbers/service-names-port-numbers.xhtml그리고 그것은 기본적으로 /etc/services모든 Unix 상자에 있는 파일에서 찾을 수 있다는 점에 유의하십시오.

따라서 예제를 다시 살펴보겠습니다(그러나 묘사된 여러 레코드에서는 포트 번호가 잘못되었습니다 SRV).

  • mysql실제로 포트에 대해 정의되어 있으므로 3306서비스 이름으로 유효하므로 SRV레코드 에 있습니다.
  • port의 경우 27017서비스 이름 mongodb은 입니다. mongo(그러나 Mongo 클라이언트는 기록을 존중합니까 SRV?)
  • http실제로 포트에 대해 정의되었으므로 80유효한 서비스 이름입니다(및 https포트 443에 대해).
  • mqttport 에 대한 유효한 포트 이름으로 정의됩니다 1883. 하지만 위와 같은 질문입니다. 클라이언트는 SRV레코드를 전혀 사용합니까?

SRV또한 위의 내용을 따르지 않는 다양한 기록이 있다는 점에 유의하세요 . 게시할 수 있는 경우 "작동"합니다. 물론 일부 응용 프로그램에서 이를 읽는 한 위와 같이 등록된 서비스 이름을 사용하지 않더라도 DNS 수준에서 해결을 방해할 수는 없습니다.

_sip._tls예를 들어 or online 에서 많은 예제를 찾을 수 있는데 _sipfederationtls._tcp둘 다 잘못된 것입니다. tls유효한 프로토콜이 아니며 sipfederantiontls유효한 서비스 이름도 아닙니다(실제로 너무 깁니다.https://www.rfc-editor.org/rfc/rfc6335.html#section-5.1길이가 최대 15자여야 함을 지정합니다). 따라서 일부 도구/UI는 영역 파일에 해당 레코드를 생성하는 것을 방지할 수 있으며 일부 네임서버는 해당 레코드 로드를 거부할 수 있지만 대부분의 경우 작동합니다(애플리케이션이 해당 레코드를 사용하는 경우).

관련 정보