동적 DNS(DDNS)
DDNS는 도메인의 DNS 레코드를 현재 공인 주소로 업데이트하는 역할만 합니다. 포트를 열거나, 터널을 구성하거나, 인증서를 발급하거나, 서비스 트래픽을 게이트웨이로 전달하지는 않습니다.
DDNS가 필요한 경우
- 공인 IPv4 또는 IPv6가 바뀌고 외부에서 게이트웨이에 직접 접속하는 경우
- 서브도메인 모드에서 인증 Host, 서비스 Host 또는 와일드카드 레코드가 같은 엔드포인트를 가리켜야 하는 경우
- Edge CDN이 오리진에 연결하지만 오리진 주소가 바뀌는 경우
Cloudflare Tunnel을 사용하면 일반적으로 Tunnel의 Public Hostname에서 DNS를 관리합니다. 같은 도메인에 서로 충돌하는 DDNS 레코드를 따로 만들지 않습니다.
레코드 설정
DDNS 관리에서 제공자를 선택하고 자격 증명, 도메인, 레코드 유형 및 업데이트 범위를 입력합니다. 특히 다음 항목을 확인합니다.
| 항목 | 핵심 사항 |
|---|---|
| 도메인 | 전체 URL, 경로 또는 포트가 아니라 업데이트할 레코드 이름 입력 |
| 업데이트 범위 | 실제로 사용할 수 있는 네트워크에 맞춰 IPv4, IPv6 또는 듀얼 스택 선택 |
| 주소 출처 | 공인 IP 감지, 지정한 인터페이스, 고정 IP 또는 다른 도메인 조회 사용. Docker에서는 호스트 주소가 감지되는지 확인 |
| 송신 인터페이스 | 인터페이스가 여러 개인 기기에서는 제공자 API에 접속할 수 있는 인터페이스 선택 |
| 와일드카드 레코드 | 서브도메인 게이트웨이에는 일반적으로 *.example.com이 필요하며 인증 Host도 해석되어야 함 |
저장한 뒤 페이지에서 테스트 또는 수동 업데이트를 먼저 실행하고 dig, nslookup 또는 DNS 관리 패널에서 레코드 값을 확인합니다. DNS가 올바르게 해석된다는 것은 레코드가 업데이트되었다는 뜻일 뿐입니다. 외부 네트워크에서 포트, 인증서 및 게이트웨이 라우트도 계속 검증합니다.
현재 제공자 목록에는 Alibaba Cloud DNS, Baidu Cloud DNS, Cloudflare, DNSPod, DuckDNS, Dynu, dynv6, Tencent Cloud EdgeOne CNAME, Tencent Cloud EdgeOne, Alibaba Cloud ESA, GoDaddy, Huawei Cloud DNS, No-IP, Porkbun 및 Tencent Cloud DNSPod가 포함됩니다. 페이지에는 제공자에 따라 필요한 필드가 표시됩니다. 다른 제공자의 Zone ID, 토큰 또는 루트 도메인 필드를 그대로 적용하면 안 됩니다.
기본 도메인과 추가 도메인
기본 도메인 설정은 기본 업데이트 대상이며 상태 카드에는 현재 IPv4, IPv6, 마지막 확인 및 마지막으로 성공한 업데이트 시각이 표시됩니다. 추가 도메인에서는 서로 독립적인 대상을 추가할 수 있으며 각 레코드에 별도의 제공자, 자격 증명, 주소 출처, 업데이트 범위 및 활성화 상태를 설정할 수 있습니다.
추가 도메인은 기본 도메인의 도메인 이름이나 제공자 설정을 상속하지 않습니다. 다만 페이지에서 다른 모듈이나 대상에 저장된 같은 제공자의 자격 증명을 찾아 현재 비어 있는 필드만 채울 수 있습니다. 채운 뒤에도 Zone, 루트 도메인 및 최소 권한을 다시 확인합니다.
추가 도메인별로 즉시 업데이트, 비활성화, 활성화, 편집 또는 삭제할 수 있습니다. 비활성화는 해당 대상만 일시 중지합니다. 삭제하면 런타임 상태도 함께 제거됩니다. 기본 도메인 설정을 지워도 추가 도메인은 삭제되지 않지만, 기본 도메인은 다시 설정하기 전까지 자동 업데이트에 참여할 수 없습니다.
도메인과 와일드카드 레코드 조합
두 도메인을 지원하는 제공자는 같은 도메인 필드에 와일드카드와 해당 기본 도메인을 함께 입력할 수 있습니다. 예:
*.r.example.com, r.example.com두 항목을 와일드카드와 기본 도메인의 한 쌍으로 구성합니다. 기본 도메인에는 제공자의 Zone / 루트 도메인과 같거나 그 하위인 도메인을 입력합니다. 페이지는 반각 쉼표, 전각 쉼표 또는 공백을 허용하며 입력란에서 포커스가 벗어나면 형식을 정리합니다. EdgeOne CNAME처럼 주소나 도메인 하나만 지원하는 제공자에는 이 조합을 사용할 수 없습니다. 페이지의 기능 안내를 기준으로 판단합니다.
인터페이스에서 주소 선택
인터페이스를 직접 사용을 선택하면 인터페이스 하나를 명확히 지정합니다. 페이지에는 명백한 사설 주소와 아직 주소 확인 중이거나 충돌 검사에 실패했거나 사용 중단된 주소를 제외한 후보만 표시됩니다. 임시 / 프라이버시 IPv6 주소도 기본적으로 제외됩니다. 후보가 없다면 다른 인터페이스를 선택하거나 공인 IP 감지, 고정 IP 또는 도메인 조회 방식으로 바꿉니다.
주소 선택은 더 이상 인터페이스가 반환한 목록의 순번에 의존하지 않습니다. 선호 주소를 직접 설정하면 해당 주소가 필터 규칙을 계속 충족하는 동안 시스템이 가장 먼저 사용합니다. 직접 지정한 선호 주소가 없거나 사용할 수 없을 때만 현재 사용 가능한 주소를 유지하고, 마지막으로 나머지 후보 중에서 안정적으로 선택합니다. 따라서 직접 지정한 주소가 시스템 추천보다 우선하면서도, 지정하지 않았을 때 후보 순서 변화로 레코드가 불필요하게 바뀌는 것을 방지합니다. 이전 버전에서 저장한 주소 순번은 페이지에서 안정적인 선택 규칙으로 변환되며 저장 후 적용됩니다. 이전 설정에 선택 규칙이 없거나 기존 순번이 무효가 되어도 백엔드는 자동 안정 선택 규칙으로 후보를 선택하므로 순번이 없다는 이유만으로 무인 업데이트가 중단되지는 않습니다.
자동 동기화 중 현재 게시된 주소를 계속 사용할 수 있고 이전 선호 IPv6 주소가 막 다시 나타났다면 시스템은 3회 연속 감지될 때까지 전환을 기다립니다. 일시적인 복구로 DNS가 반복 전환되는 것을 막기 위한 동작입니다. 수동 즉시 업데이트에는 이 안정화 대기를 적용하지 않으므로 바로 되돌릴 때는 경로가 안정적인지 먼저 확인합니다.
다른 인터페이스로 전환하면 이전 인터페이스의 선호 주소, CIDR, IPv6 인터페이스 ID 등의 선택 규칙이 지워집니다. 이전 규칙이 새 인터페이스에 잘못 적용되는 것을 막기 위한 동작입니다. 전환 후에는 미리보기를 다시 확인하고 필요에 따라 규칙을 설정합니다.
선호 주소는 자동 모드와 사용자 지정 모드에서 모두 설정할 수 있습니다. 네트워크 대역이나 IPv6 인터페이스 ID로 더 세밀하게 제한하려면 사용자 지정 일치 규칙으로 전환합니다.
| 설정 | 역할 |
|---|---|
선호 주소 | 후보에 해당 주소가 있으면 현재 주소와 시스템 정렬보다 먼저 사용하며 주소가 무효가 되어도 다른 일치 항목 선택 가능 |
포함할 CIDR | 지정한 IPv4 또는 IPv6 네트워크에서만 선택 |
제외할 CIDR | DNS에 기록하면 안 되는 네트워크 제외 |
IPv6 인터페이스 ID(하위 64비트) | 바뀌는 접두사를 무시하고 같은 인터페이스 ID의 새 IPv6 주소 선택 |
임시/프라이버시 IPv6 주소 허용 | 기본적으로 끄며 프라이버시 주소 교체로 인한 잦은 업데이트 방지 |
페이지에서 최종 선택될 주소를 실시간으로 미리 볼 수 있습니다. 규칙에 여러 후보가 일치하면 미리보기에 후보 수가 표시되고 안정성을 기준으로 하나를 선택합니다. 인터페이스 목록의 우연한 순서로 선택하지 않습니다. 일치하는 후보가 없다면 해당 설정에 의존해 업데이트할 수 없습니다. IPv6 접두사는 바뀌지만 기기의 인터페이스 ID가 안정적이라면 현재 선호 주소를 선택하고 자동으로 추출된 하위 64비트 인터페이스 ID를 유지할 수 있습니다. 임시 프라이버시 주소를 사용하지 않으려면 기본 설정을 그대로 끕니다.
공인 주소 감지 설정
DDNS의 공인 주소 감지는 내장 HTTP(기본값) 또는 시스템 curl을 사용할 수 있습니다. 내장 HTTP는 송신 인터페이스를 선택하면 해당 로컬 주소에 바인딩하므로 인터페이스가 여러 개인 기기에서 감지 트래픽이 나가는 경로를 명확히 제어하기에 적합합니다. 시스템 curl은 호스트에 설치된 명령과 네트워크 환경에 의존합니다.
감지 설정에서는 공용 DNS도 선택할 수 있습니다. 사용 안 함, Alibaba Cloud, Tencent Cloud, Cloudflare 또는 Google 중에서 선택하며 기본값은 Alibaba Cloud입니다. 이 공용 DNS는 공인 주소 감지 서비스의 도메인을 해석할 때만 사용합니다. DDNS 제공자나 업데이트할 레코드를 변경하지 않으며 서비스 도메인의 DNS도 대신 수정하지 않습니다.
IPv4와 IPv6에 감지 주소를 여러 개씩 별도로 설정할 수 있습니다. 순수 IP를 반환하는 HTTP(S) URL 또는 해석 가능한 도메인만 허용합니다. 변경하기 전에 주소 테스트를 눌러 각 항목의 상태 코드, 응답 미리보기 및 해석된 IP를 확인합니다. 출고 기본 주소 복원은 대화상자의 초안만 덮어쓰며 저장해야 적용됩니다.
자동 동기화 및 로그
자동 동기화 간격은 5분에서 1440분까지 설정할 수 있으며 기본값은 10분입니다. 새 간격을 저장하면 다음 동기화부터 적용됩니다. 지금 새로고침이나 개별 추가 도메인의 지금 업데이트를 수동으로 실행할 때는 주기를 기다릴 필요가 없습니다.
로그를 보면 다음 네 종류의 문제를 구분할 수 있습니다.
| 로그 단계 | 자주 발생하는 문제 |
|---|---|
| 주소 가져오기 | 감지 서비스에 접속할 수 없음, 인터페이스 후보 없음, 고정 IP 또는 출처 도메인이 잘못됨 |
| 제공자 인증 | 토큰, 시크릿, 권한 또는 시스템 시간이 잘못됨 |
| Zone / 레코드 검색 | 루트 도메인, Zone ID, 사이트 이름 또는 전체 도메인이 일치하지 않음 |
| 생성 / 업데이트 | API 속도 제한, 레코드 유형 충돌, TTL 또는 프록시 상태 미지원 |
로그를 지워도 설정과 런타임 상태는 지워지지 않습니다. 문제를 해결할 때는 마지막 실패 기록과 그 전후 레코드를 남겨 두고, 공유하기 전에는 토큰, 시크릿, Zone ID 및 공인 주소를 가립니다.
서브도메인 환경의 최소 구성
example.com을 예로 들면 auth.example.com과 서비스 서브도메인이 같은 게이트웨이 엔드포인트에 도달하도록 구성할 수 있습니다. 일반적으로 인증 Host와 와일드카드 레코드를 관리합니다. A, AAAA 또는 CNAME 중 무엇을 사용할지는 DNS 제공자와 네트워크 토폴로지에 따라 결정합니다.
IPv6는 IPv4를 자동으로 대체하지 않습니다. IPv6만 구성한다면 클라이언트, 라우터 및 CDN에서 IPv6 경로를 정상적으로 사용할 수 있는지 확인합니다. 듀얼 스택에서는 두 레코드를 각각 테스트합니다.
문제 해결
- DDNS 로그에서 인증, 검색 및 업데이트 결과를 확인합니다.
- 인터페이스 선택기 미리보기에 표시된 주소가 Docker 또는 LAN 주소가 아니라 외부에서 라우팅 가능한 주소인지 확인합니다.
- 즉시 업데이트한 뒤 상태 카드의 ‘마지막으로 성공한 업데이트’가 바뀌었는지 확인합니다. ‘마지막 확인’만 바뀌었다면 이번 작업에서 레코드를 쓰지 못한 것입니다.
- DNS 레코드 이름, Zone / 루트 도메인 및 접속 Host가 정확히 일치하는지 확인합니다.
- 권한 있는 DNS 서버 또는 제공자 콘솔에서 레코드 값을 확인하여 로컬 캐시만 보고 판단하지 않도록 합니다.
- 외부 네트워크에서 DNS, TLS, 게이트웨이 포트 및 실제 서비스를 계층별로 테스트합니다.
