DNS(도메인 이름 시스템)는 google.com과 같이 사람이 읽을 수 있는 웹사이트의 도메인 이름을 172.217.3.206과 같이 컴퓨터가 읽을 수 있는 IP 주소로 변환합니다. 캐시 오염, DNS 스푸핑 등 도메인에 대한 위협을 방지하려면 DNS 보안 확장 프로그램(DNSSEC)을 설정하세요.
도메인에 DNSSEC 사용 설정
중요:
- 일부 최상위 도메인(TLD)은 위임 서명자(DS) 레코드 대신 DNS 공개 키(DNSKEY) 레코드를 허용합니다.
- 처음에 Google Domains에서 도메인 이름을 구입한 경우 DNSSEC가 이미 설정되어 있을 수도 있습니다.
- 도메인에 ALIAS 레코드가 있으면 DNSSEC를 사용 설정할 수 없습니다. ALIAS 레코드에 대해 자세히 알아보기
도메인에 DNSSEC를 설정하려면 DNS 또는 서명 영역에 특정 리소스 레코드를 추가하고 도메인에 게시해야 합니다. Google Domains의 자동 DNSSEC 설정을 사용하는 경우 두 단계가 모두 자동으로 처리됩니다. DNSSEC가 활성화되기 전에 인터넷에서 변경사항이 업데이트되는 데 최대 24시간이 소요될 수 있습니다.
- Google Domains에 로그인합니다.
- 도메인을 선택합니다.
- 왼쪽 상단에서 DNS를 클릭합니다.
- 기본 네임서버 또는 맞춤 네임서버를 선택합니다.
- 'DNSSEC' 카드 또는 상자로 스크롤합니다.
- 기본 네임서버의 경우: 사용 설정을 클릭합니다. 도움말: DNSSEC가 이미 사용 설정되어 있으면 'DNSSEC 사용 설정됨'이 표시됩니다.
- 맞춤 네임서버의 경우: DS 레코드 관리를 클릭하고 DNS 제공업체의 정보를 입력합니다.
- 타사 DNS 제공업체에서 맞춤 네임서버 DNSSEC 또는 DNSKEY에 지정한 값을 입력합니다.
- 여러 레코드를 동시에 추가하려면 새 레코드 만들기를 클릭합니다.
- 저장을 클릭합니다.
팁:
- DNSKEY 레코드가 게시될 때까지 기다리지 않으려면 'DNSSEC' 아래에서 DNSSEC 카드를 펼치고 지금 레코드 게시를 클릭합니다.
- DNSSEC를 사용 설정하면 Google Domains가 자동으로 내 DNS 영역에 서명하고 2시간 이내에 위임 서명자(DS) 레코드를 게시합니다.
맞춤 네임서버를 사용하는 경우 타사 DNS 제공업체와 협력하여 내 도메인의 DNS 영역에 서명해야 합니다. 각 DNSKEY에 대해 DNS 제공업체에서 다음 값을 가져옵니다.
- 키 태그: 기존 DNSKEY 레코드를 나타내는 숫자 값입니다.
- 알고리즘: DNSKEY 레코드의 보안 키를 만드는 데 사용하는 암호화 알고리즘입니다. 일반적으로 RSA/SHA1과 같은 해시 함수와 쌍을 이룹니다.
- 다이제스트 유형: DNSKEY 레코드의 다이제스트를 만드는 데 사용하는 알고리즘입니다. 다이제스트 알고리즘, 다이제스트 해시, 다이제스트 해시 함수라고도 합니다.
- 다이제스트: DNSKEY 레코드의 해시된 값으로 레코드를 고유하게 식별하며 키 값이 노출되지 않습니다. 길이는 다이제스트 유형에 따라 다음 중 하나일 수 있습니다.
- SHA1: 40자리 16진수
- SHA256: 64자리 16진수
- SHA384: 96자리 16진수
맞춤 네임서버를 사용하는 경우 타사 DNS 제공업체에 문의하여 도메인의 DNS 영역에 로그인하세요. 각 DNSKEY에 대해 DNS 제공업체에서 다음 값을 가져옵니다.
- 플래그: DNS 및 리졸버에 DNSKEY 레코드를 해석하는 방법을 알려주는 정보입니다. 기본적으로 이 값은 256 또는 257로 설정됩니다.
- 프로토콜: 사용된 DNSSEC의 버전을 나타냅니다. 이 값은 항상 3으로 설정됩니다.
- 알고리즘: 공개 또는 비공개 키 쌍에 사용된 암호화 알고리즘 유형을 나타냅니다.
- 공개 키: DNS 리졸버가 DNS 레코드의 변조 여부를 검증하는 데 사용하는 키입니다.
도메인에 DNSSEC 비활성화
- Google Domains에 로그인합니다.
- 도메인을 선택합니다.
- 메뉴 DNS를 선택합니다.
- 'DNSSEC' 카드 또는 상자로 스크롤합니다.
- 기본 네임서버의 경우: 사용 중지를 선택합니다.
- 맞춤 네임서버의 경우: 각 레코드 옆의 삭제 를 클릭합니다.
- 저장을 선택합니다.
팁:
- 맞춤 네임서버의 경우 영역에서 DNSSEC 관련 리소스 레코드를 삭제하려면 DNS 제공업체와 협력하면 됩니다.
- DNSSEC를 사용 중지하면 Google Domains에서 내 도메인의 DS 레코드를 즉시 게시 취소합니다. 해당 변경사항이 인터넷에서 업데이트된 후에는 내 도메인이 더 이상 DNSSEC로 보호되지 않습니다. 이 과정에는 최대 48시간이 소요될 수 있습니다. Google Domains에서 DNSSEC 비활성화를 완료하기 위해 DNS 영역을 서명 취소할 수도 있습니다.
동적 DNS 사용
중요: 동적 DNS는 IPv4 및 IPv6 주소 모두에서 작동하지만 동시 작동은 불가능합니다.
동적 DNS를 사용하면 도메인 또는 하위 도메인이 동적으로 할당된 IP 주소를 사용하는 게이트웨이 뒤의 리소스를 가리키도록 할 수 있습니다. 동적 DNS를 사용하려면 Google Domains의 기본 네임서버를 사용해야 합니다.
Google Domains로 동적 DNS를 설정하면 다음을 실행할 수 있습니다.
- Google 네임서버에서 동적 IP를 예상할 수 있도록 도메인 또는 하위 도메인의 A 또는 AAAA 레코드를 만듭니다.
- 호스트 또는 서버에서 새 IP 주소를 Google 네임서버에 전달하는 데 사용하는 사용자 이름과 비밀번호를 생성합니다.
동적 DNS를 설정한 후 호스트, 서버 또는 게이트웨이에 다음과 같은 역할을 하는 클라이언트 프로그램을 설치해야 합니다.
- IP 주소 변경 감지
- 생성된 사용자 이름과 비밀번호 사용
- Google 네임서버에 새 주소 전달
동적 DNS 설정
- 컴퓨터에서 Google Domains에 로그인합니다.
- 도메인을 선택합니다.
- 메뉴 DNS를 클릭합니다.
- 기본 네임서버 Google Domains(활성)를 선택합니다.
- '맞춤 네임서버(활성)'이 선택되어 있으면 이미 맞춤 네임서버가 있는 것이므로 Google Domains의 동적 DNS 서비스를 사용할 수 없습니다.
- 고급 설정 표시를 클릭합니다.
- 동적 DNS 관리 새 레코드 만들기를 클릭합니다.
- 동적 IP를 할당하려면 하위 도메인 또는 루트 도메인의 이름을 입력합니다.
- 저장을 클릭합니다.
다음은 동적 DNS를 관리하는 다른 옵션입니다.
- 레코드 값을 보려면 레코드 옆의 삼각형을 클릭합니다.
- 이 레코드에 대해 생성된 사용자 이름과 비밀번호를 보려면 사용자 인증 정보 보기를 클릭합니다.
- Google 네임서버에 연결될 게이트웨이 또는 클라이언트 소프트웨어를 구성하려면 해당 레코드에 대해 생성된 사용자 이름과 비밀번호를 사용합니다.
- 레코드를 삭제하려면 다음 단계를 따르세요.
- '리소스 레코드'로 이동합니다.
- '동적 DNS' 옆의 삼각형을 클릭합니다.
- 삭제를 선택합니다.
게이트웨이, 호스트 또는 서버에 클라이언트 프로그램 설치
DDclient, INADYN 등의 몇 가지 동적 DNS 클라이언트가 널리 사용되고 있습니다. 대부분의 라우터는 IP 변경을 감지하고 기본으로 제공되는 소프트웨어를 통해 네임서버에 전달할 수 있습니다.
다음과 같은 정보로 동적 DNS 클라이언트를 구성합니다.
- 제공업체, DNS 또는 서비스: DNS 제공업체의 이름입니다.
- 사용자 이름 또는 사용자 인증 정보: 동적 DNS 레코드에 생성된 사용자 이름입니다.
- 비밀번호 또는 사용자 인증 정보: 동적 DNS 레코드에 생성된 비밀번호입니다.
레코드를 만들고 클라이언트 소프트웨어를 구성한 후에는 레코드를 테스트합니다. 브라우저 또는 적절한 클라이언트에 하위 도메인과 도메인을 입력하여 올바른 리소스로 연결되는지 확인합니다.
팁: Google Domains는 dyndns2 프로토콜을 사용합니다.
예
이제 DDclient에서 Google Domains를 지원합니다.
Google Domains를 지원하는 DDclient |
ddclient.conf 항목:
|
일반적인 클라이언트 구성 예시
DDclient (Google Domains 지원 안함) |
INADYN |
샘플 ddclient.conf 항목:
|
inadyn.conf에 다음 항목 추가
|
API로 동적 DNS 레코드 업데이트
domains.google.com/nic/update
https://username:password@domains.google.com/nic/update?hostname=subdomain.yourdomain.com&myip=1.2.3.4
사용자 에이전트 설정
중요: 요청에 사용자 에이전트도 설정해야 합니다.
위의 URL(domains.google.com/nic/update
)로 직접 테스트하는 동안 일반적으로 웹브라우저에서는 사용자 에이전트를 추가합니다. Google 서버로 전송된 최종 HTTP 쿼리는 다음과 유사해야 합니다.
HTTP 쿼리 예:
POST /nic/update?hostname=subdomain.yourdomain.com&myip=1.2.3.4 HTTP/1.1
Host: domains.google.com
Authorization: Basic base64-encoded-auth-string
User-Agent: Chrome/41.0 your_email@yourdomain.com
요청 매개변수:
매개변수 | 필수 또는 선택사항 | 설명 |
username:password |
필수 | 업데이트할 호스트에 연결되도록 생성된 사용자 이름과 비밀번호입니다. |
hostname |
필수 | 업데이트할 호스트 이름입니다. |
myip |
|
호스트에 설정된 IP 주소입니다. 지정하지 않으면 요청을 보낸 에이전트의 IP가 사용됩니다.
중요: 에이전트에서 IPv6 주소를 사용하는 경우 |
offline |
선택사항 | 현재 호스트를 오프라인 상태로 설정합니다. 오프라인 호스트에서 업데이트 요청이 수행되면 호스트가 다시 온라인 상태가 됩니다. 허용되는 값은 다음과 같습니다.
|
요청이 처리되면 다음 응답 중 하나가 반환됩니다.
중요: 응답을 올바르게 해석하지 않으면 클라이언트가 Google 시스템에서 차단될 위험이 있으므로 주의하세요.
응답 | 상태 | 설명 |
good {사용자의 IP 주소} |
성공 | 업데이트에 성공했습니다. IP 주소가 변경될 때까지 업데이트를 더 시도해서는 안 됩니다. |
nochg {사용자의 IP 주소} |
성공 | 지정한 IP 주소가 이 호스트에 이미 설정되어 있습니다. IP 주소가 변경될 때까지 업데이트를 더 시도해서는 안 됩니다. |
nohost |
오류 | 호스트 이름이 없거나 동적 DNS가 사용 설정되지 않았습니다. |
badauth |
오류 | 지정한 호스트에서 사용자 이름과 비밀번호 조합이 유효하지 않습니다. |
notfqdn |
오류 | 지정한 호스트 이름이 올바른 정규화된 도메인 이름이 아닙니다. |
badagent |
오류 | 동적 DNS 클라이언트의 요청이 잘못되었습니다. 사용자 에이전트가 요청에 설정되어 있는지 확인하세요. |
abuse |
오류 | 이전 응답을 올바르게 해석하지 못하여 호스트 이름에 대한 동적 DNS 액세스가 차단되었습니다. |
911 |
오류 | Google 시스템에서 오류가 발생했습니다. 5분 후에 다시 시도하세요. |
conflict A |
오류 | 커스텀 A 또는 AAAA 리소스 레코드가 업데이트와 충돌합니다. DNS 설정 페이지에서 지정된 리소스 레코드를 삭제하고 업데이트를 다시 시도하세요. |