SRV 레코드는 VoIP와 같은 특수 서비스에 사용됩니다.
이 글을 읽은 후에 다음을 할 수 있습니다:
글 링크 복사
DNS "서비스"(SRV) 레코드는 Voice over IP(VoIP), 인스턴트 메시징 등의 특정 서비스에 대한 호스트 및 포트를 지정합니다.대부분의 다른 DNS 레코드는 서버 또는 IP 주소만 지정하지만, SRV 레코드에는 해당 IP 주소의 포트도 포함됩니다.일부 인터넷 프로토콜의 경우, 작동하려면 SRV 레코드를 사용해야 합니다.
네트워킹에서 포트는 컴퓨터 내에서 네트워크 트래픽이 이동하는 프로세스를 지정하는 가상 장소입니다. 포트를 사용하면 컴퓨터가 서로 다른 종류의 트래픽을 쉽게 구별할 수 있습니다. 예를 들어 VoIP 스트림과 이메일 메시지가 둘 다 동일한 인터넷 연결을 통해 컴퓨터에 도달하더라도 VoIP 스트림은 이메일 메시지와 다른 포트로 이동합니다. IP 주소와 흡사하게 모든 포트에는 번호가 할당됩니다.
IMAP, SIP, XMPP 등의 특정 인터넷 프로토콜은 특정 서버에 연결하는 것 외에도 특정 포트에 연결해야 합니다. SRV 레코드는 DNS 내에서 포트를 지정하는 방법입니다.
SRV 레코드에는 다음 정보가 포함됩니다. 여기에서, 각 필드에 대한 예제 값을 나열합니다.
서비스 | XMPP |
proto* | TCP |
name** | example.com |
TTL | 86400 |
class | IN |
유형 | SRV |
우선 순위 | 10 |
가중치 | 5 |
포트 | 5223 |
대상 | server.example.com |
*전송 프로토콜에서와 같이 "프로토콜"의 줄임말입니다.
**도메인 이름.
그러나 SRV 레코드는 실제로 다음과 같은 방식으로 형식이 지정됩니다.
_service._proto.name. 레코드 우선 순위 가중치 포트 대상의 TTL 클래스 유형입니다.
따라서 예제 SRV 레코드는 실제로는 다음과 같은 모습입니다.
_xmpp._tcp.example.com. 86400 IN SRV 10 5 5223 server.example.com.
위의 예에서 "_xmpp"는 서비스 유형(XMPP 프로토콜)을 나타내고 "_tcp"는 TCP 전송 프로토콜을 나타내며 "example.com"은 호스트 또는 도메인 이름입니다. "server.example.com"은 대상 서버이고 "5223"은 해당 서버 내의 포트를 나타냅니다.
SRV 레코드는 A 레코드(IPv4에서) 또는 AAAA 레코드(IPv6에서)를 가리켜야 합니다. SRV 레코드에서 나열하는 서버 이름은 CNAME일 수 없습니다. 그래서 "server.example.com"이 해당 이름으로 A 또는 AAAA 레코드로 직접 연결되어야 합니다.
SRV 레코드는 나열하는 다양한 서버의 "우선 순위" 및 "가중치"를 나타냅니다. SRV 레코드의 "우선 순위" 값을 사용하면 관리자가 지정된 서비스를 지원하는 서버의 우선 순위를 다른 서버보다 우선시할 수 있습니다. 우선 순위 값이 낮은 서버는 다른 서버보다 더 많은 트래픽을 수신합니다. 그러나 "가중치" 값은 비슷하므로 가중치가 높은 서버가 우선 순위가 같은 다른 서버보다 더 많은 트래픽을 수신합니다.
이들 서버 사이의 주요 차이점은 우선 순위가 먼저 고려된다는 사실입니다. 서버 A, 서버 B, 서버 C의 세 서버가 있고 각각의 우선 순위가 10, 20, 30인 경우 "가중치"는 중요하지 않습니다. 서비스는 항상 서버 A를 먼저 쿼리합니다.
그러나 서버 A, B, C의 우선 순위가 모두 10이라고 가정하면 서비스는 셋 중 하나를 어떻게 선택할까요? 서버 A의 "가중치" 값이 5이고 서버 B와 C의 "가중치" 값이 3과 2인 경우 서버 A가 가장 많은 트래픽을 수신하고 서버 B가 두 번째로 많은 트래픽을 수신하며 서버 C가 세 번째로 많은 트래픽을 수신합니다.