SRV 레코드 설정 - RFC 2782 SRV(Service locator record) 레코드는 서비스 로케이터 레코드로도 불리우며, 도메인 이름에 특정 서비스 또는 서버를 매핑합니다.SIP(Session Initiation Protocol)과 XMPP(Extensible Messaging And Presence Protocol)등이 SRV레코드를 사용하며, 그 밖에 HTTP, FTP등의 서비스에 로드밸런싱과 백업 서비스 기능을 구현할 수 있게 합니다.
클라우드DNS 서비스에서는 서비스 제공업체 별로 SRV 레코드 설정 방식을 선택하여 자동 설정하시거나, 직접 입력하여 SRV 레코드설정을 하실 수 있습니다, ▶ 레코드 추가 : SRV 레코드설정의 첫 순서인 설정방식선택의 기본값은 "SRV 레코드 사용자 설정"으로 되어있습니다. SRV 레코드 값을 직접 입력하여 SRV 레코드를 만드신다면 아래의 형식과 예제를 참조하여 만드십시오. ① 설정방식선택은 선택 없이 그대로 "SRV 레코드 설정 사용자 설정"에 두십시오. ② 도메인 선택란에 서비스를 위한 도메인 명을 선택하십시오. 만약 선택란에 없는 도메인이 필요하시다면 이전 페이지로 이동하여 호스트를 추가한 후 본 과정을 다시 진행하십시오.. ③ Service란에 서비스의 심볼 이름을 선택하십시오.만약 선택 항목에 지원서비스가 없다면 1:1친절상담에 서비스 추가를 요청하십시오.
④
Protocol란에는 서비스가 사용하는 전송 프로토콜을 선택하십시오.
⑤
설정할 SRV 레코드 정보의 유지 시간을 정하는 TTL 은 선택없이 자동으로 두시거나, 필요한 값을 선택하십시오.
⑥ Priority란에는 호스트의 우선순위를 입력하십시오.(0 ~ 65535까지 입력, 낮은 값이 우선순위가 더 높음)
⑦
Weight란에는 호스트의 중요도를 입력하십시오.(1 ~ 65535까지 입력, 큰 값이 중요도가 더 높음)
⑧
Port란에는 서비스를 찾기 위한 UDP 혹은 TCP 포트 번호를 입력하십시오.
⑨
Target 주소란에는 기 등록된 호스트 중에 서비스를 찾기 위한 호스트 명을 입력하고 설정을 누르시면 모든 설정이 완료됩니다. 정상적으로 설정되셨다면 메인 설정 페이지로 이동되며, 설정 값은 실시간 적용되어 사용이 가능하게 됩니다. 실제 테스트는 5분 후 확인하시면 됩니다..
![](/image/sdffdxcvgg.png)
▶ 레코드 삭제 : 등록된 레코드 삭제가 필요하시다면 도메인 설정 메인 페이지로 이동하여 삭제할 레코드를 체크한 후, 삭제 버튼을 클릭하여 삭제하실 수 있습니다. 그 외에 다른 설정 방식이 필요하시다면 아래의 리스트를 참조하여 용도에 맞게 설정하여 사용하시면 됩니다.
존 파일 등록 예시
$TTL 120 @ IN SOA ns2.codns.net. manager.live.com. (1000010101 3600 900 604800 900); _ftp._tcp.domain.com. 120 IN SRV 0 1 21 b.domain.com.; |
SRV 레코드 설정 리스트
|
설정 방식 |
지원 구분 |
|
내용 |
|
SRV 레코드 사용자 설정 |
- |
|
SRV 레코드 직접 수동 설정 |
|
구글 G Suite SRV 1 |
- |
|
구글 G Suite서비스용 SRV 레코드 자동 설정 |
|
구글 G Suite SRV 2 |
- |
|
구글 G Suite서비스용 SRV 레코드 자동 설정 |
|
구글 G Suite SRV 3 |
- |
|
구글 G Suite서비스용 SRV 레코드 자동 설정 |
|
구글 G Suite SRV 4 |
- |
|
구글 G Suite서비스용 SRV 레코드 자동 설정 |
|
구글 G Suite SRV 5 |
- |
|
구글 G Suite서비스용 SRV 레코드 자동 설정 |
|
MS Office 365 SRV 1 |
- |
|
MS Office 365서비스용 SRV 레코드 자동 설정 |
|
MS Office 365 SRV 2 |
- |
|
MS Office 365서비스용 SRV 레코드 자동 설정 |
SRV 레코드의 속성과 설명
SRV(Service locator record) 레코드는 도메인 이름에 특정 서비스 또는 서버를 매핑합니다. 서비스가 실행되는 호스트를 모르더라도 SRV 레코드를 통해 서비스를 찾을 수 있습니다.
SRV 레코드를 이용하시면 잘 알려진 서버 포트 및 전송 프로토콜 종류에 대한 서버 목록을 DNS 도메인 이름의 우선 순위로 정렬하여 관리할 수 있으며, TCP/IP 서비스를 담당하는 서버의 위치를 지정함으로써, priority와 weight를 이용한 로드밸런싱과 백업 서비스 기능을 구현할 수 있습니다.
SRV Record 형식 : [_service].[_protocol].[hostname]. [TTL] [class] SRV [priority] [weight] [port] [target]
번호 |
속성 |
설명 |
1 |
service |
원하는 서비스의 심볼 이름입니다. 잘 알려진 서비스의 경우 RFC 1700에 "_telnet" 또는 "_smtp"와 같은 예약된 유니버설 심볼 이름이 정의되어 있습니다. 잘 알려진 서비스 이름이 RFC 1700에 정의되어 있지 않으면 대신 로컬 또는 사용자 기본 설정 이름을 사용할 수 있습니다. 널리 사용되는 일부 TCP/IP 서비스, 특히 POP(Post Office Protocol)에는 단일 유니버설 심볼 이름이 없습니다. RFC 1700에서 이 필드에 표시된 서비스의 이름을 할당하면 RFC 정의 이름만을 사용할 수 있습니다. 로컬로 정의된 서비스만 로컬로 이름을 지정할 수 있습니다. |
2 |
protocol |
전송 프로토콜 종류를 나타냅니다. RFC 1700에서 이름을 지정한 모든 전송 프로토콜을 사용할 수 있지만 주로 TCP나 UDP가 됩니다. |
3 |
name |
이 리소스 레코드에서 참조하는 DNS 도메인 이름입니다. SRV 리소스 레코드는 검색이나 쿼리를 수행하는 데 사용되지 않는다는 점에서 다른 DNS 레코드 종류와 다릅니다. |
4 |
priority |
target 필드에 지정된 호스트의 우선 순위를 지정합니다. SRV 리소스 레코드를 쿼리하는 DNS 클라이언트는 여기에 나열된 가장 낮은 번호로 우선 순위가 지정된 호스트 중 연결 가능한 첫째 호스트에 접속을 시도합니다. target 호스트의 우선 순위 값이 같은 수준인 경우에도 임의 순서로 접속을 시도할 수 있습니다. 우선 순위 값 범위는 0에서 65535입니다. |
5 |
weight |
target 필드에 여러 서버가 지정되어 있고 모두 같은 우선 순위 수준으로 지정되어 있는 경우 로드 균형 조정 메커니즘을 제공하기 위해 기본 설정 이외에도 이 필드가 사용됩니다. 동일한 우선 순위 수준 중에서 대상 서버 호스트를 선택하는 경우 이 값을 사용하여 응답을 받은 SRV 쿼리에 사용되는 대상 호스트의 정확한 순서와 선택 균형 조정을 결정하는 데 사용할 수 있는 추가된 우선 순위 수준을 설정할 수 있습니다. 0이 아닌 값이 사용되면 이 값의 크기에 비례하여 이 값과 우선 순위가 같은 서버가 시도됩니다. 값 범위는 1에서 65535입니다. 로드 균형 조정이 필요하지 않으면 이 필드에 0을 사용하여 레코드를 읽기 쉽게 합니다. |
6 |
port |
service 필드에 표시된 서비스를 제공하는 target 호스트의 서버 포트입니다. 서버 포트 번호에는 흔히 잘 알려진 할당된 서비스 포트 번호가 사용되지만 포트 번호의 범위는 RFC 1700에서 지정한 대로 0에서 65535입니다. 필요에 따라 할당되지 않은 포트를 사용할 수 있습니다. |
7 |
target |
요청된 서비스 종류를 제공하는 호스트의 DNS 도메인 이름을 지정합니다. 사용된 호스트 이름 각각에 해당하는 호스트 주소(A) 리소스 레코드가 DNS 네임스페이스에 있어야 합니다. 이 필드에 마침표(.) 하나를 사용하여 이 DNS 도메인 이름에서 이 SRV 리소스 레코드에서 지정한 요청된 서비스가 가능하지 않음을 명백하게 나타낼 수 있습니다. |
SRV 레코드 설정 예제 ▶ FTP 로드밸런싱 : FTP 로드밸런싱(서버 부하 분산) 용도로 a.domain.com과 b.domain.com 각각 1대 3의 비율로 접속하게 하려면 아래와 같이 SRV 레코드를 설정합니다.
_ftp._tcp.domain.com.120 IN SRV 0 1 21 a.domain.com. _ftp._tcp.domain.com. 120 IN SRV 0 3 21b.domain.com. | -
▶ 백업구성1 : 접속 가능한 서버 (백업 혹은 대체 서버)로 FTP 우회 연결 용도로 아래 예와 같이 설정하시면, a.domain.com로 접속할 수 없을 때 b.domain.com의 9021 포트로 접속이 가능하게 됩니다.
_ftp._tcp.domain.com.120 IN SRV 0 0 21 a.domain.com. _ftp._tcp.domain.com. 120 IN SRV 1 0 9021b.domain.com. | -
▶ 백업구성2 : 접속 가능한 서버 (백업 혹은 대체 서버)로 http 우회 연결 용도로 아래 예와 같이 설정하시면, domain.com로 접속할 수 없을 때 www3.domain.com의 8080 포트로 접속이 가능하게 됩니다.
_http._tcp.domain.com.120 IN SRV 0 100 8080 www3.domain.com. | -
▶고 가용성 서비스 구성 : 고 가용성 서비스 구성을 위해 priority와 weight를 이용한 로드밸런싱 및 백업 서비스 기능을 구현하려면 아래와 같이 SRV 레코드를 설정합니다.
아래의 설정은 4개의 레코드의 priority 는 모두 10으로 클라이언트는 weight 값에 따라서 연결할 서비스를 선택을 하게 됩니다.Weight의총합이 100이므로 a.domain.com을 대략 60%의 확률로 연결을 하게 되고, b.domain.com와c.domain.com가 나머지 요청을 20%씩 나눠서 처리하게 됩니다.
만약 a.domain.com이 접속불능이 된다면 b.domain.com과c.domain.com가 50%씩 나누어서 요청을 처리하게 되며,a.domain.com와 b.domain.com,c.domain.com 모두 접속 불능이 된다면, d.domain.com이 요청을 처리토록하는 설정입니다.
_http._tcp.domain.com.120 IN SRV 10 60 8080 a.domain.com. _http._tcp.domain.com. 120 IN SRV 10 20 8080b.domain.com. _http._tcp.domain.com. 120 IN SRV 10 10 8080c.domain.com. _http._tcp.domain.com. 120 IN SRV 10 10 8080c.domain.com. _http._tcp.domain.com. 120 IN SRV 20 0 8080d.domain.com. |
SRV를 사용하는 애플리케이션들 NginX(reverse proxy server), HAProxy(reverse proxy server),CalDAV(CardDAV),DANE, DNS Service Discovery (DNS-SD),Kerberos,LDAP, SMTP submission, POP, IMAP, XMPP, Puppet,IMPS, Minecraft,SIP,Teamspeak 3, XMPP
SRV 레코드 유의사항 SRV를 이용한 로드밸런싱 혹은 백업구성 기능은 SRV레코드 기능을 지원하는 브라우저 혹은 응용프로그램을 통해서만 이용이 제한 될 수도 있습니다.
▶ 설정을 마치셨다면, 코디엔에스 진단 도구로 이동하여 SRV 설정상태를 직접 확인해 보실 수 있습니다. 홈페이지 ▷ 진단 도구 ▷ 도메인 조회 진단을 통해 각 캐싱서버 별 반영 상태를 확인하실 수 있습니다
![](/image/srv_dig.png) |