업데이트로 돌아가기
New releaseAug 19, 2026

dnscontrol v5.0.0-rc9

DNS를 위한 코드형 인프라!

공유

DNSControl

DNSControl/dnscontrol/build Google Group PkgGoDev

DNSControl은 DNS를 위한 Infrastructure as Code입니다. 여기에는 완전한 기능을 갖춘 구성 언어(Javascript 호환)와 AWS Route 53, Cloudflare, Gandi와 같은 DNS 공급자 API와 통신하는 "플러그인"이 포함되어 있습니다. 동일한 DNS 레코드를 여러 공급자에게 전송할 수 있습니다. Go가 실행되는 모든 곳(Linux, macOS, Windows)에서 실행됩니다. 공급자 모델은 확장 가능하므로 더 많은 공급자를 추가할 수 있습니다.

예제

dnsconfig.js:

// define our registrar and providers
var REG_NAMECOM = NewRegistrar("ndc_main");
var DSP_ROUTE53 = NewDnsProvider("r53_main");

D("example.com", REG_NAMECOM, DnsProvider(DSP_ROUTE53),
  A("@", "1.2.3.4"),
  CNAME("www","@"),
  MX("@",5,"mail.myserver.com."),
  A("test", "5.6.7.8")
)

dnscontrol preview를 실행하면 공급자(여기서는 registrar로 name.com, dns host로 route 53)와 통신하여 어떤 변경이 필요한지 판단합니다.

dnscontrol push를 실행하면 공급자와 함께 해당 변경 사항을 적용하고 내 DNS 레코드가 올바르게 업데이트됩니다.

DNSControl을 실행하는 가장 쉬운 방법은 Docker 컨테이너를 사용하는 것입니다:

docker run --rm -it -v "$(pwd):/dns"  ghcr.io/dnscontrol/dnscontrol preview

시작하기

가장 빠르게 시작하는 방법은 dnscontrol init입니다. 대화형 마법사가 DNS 공급자와 registrar를 묻고, 자격 증명을 확인한 후 작동하는 creds.json과 dnsconfig.js를 작성하며, 여기에는 이미 영역에 존재하는 레코드도 포함됩니다.

전체 안내는 문서 사이트의 시작하기 페이지를 참조하세요.

DNS 데이터에 대한 완전한 "GitOps" 제어를 원하시나요? dns-config 스타터 저장소를 복제하여 시작하세요!

지원되는 공급자

DNSControl은 68개의 DNS 공급자와 registrar를 지원합니다:

AdGuard HomeAkamai Edge DNSAlibaba Cloud DNSAutoDNSAWS Route 53¹
AXFR+DDNSAzure DNSAzure Private DNSBINDBunny DNS
CentralNic Reseller¹CloudflareClouDNSCSC Global¹deSEC
DigitalOceanDNS Made EasyDNSOVERHTTPS²DNScaleDNSimple¹
DomainnameshopDynadot²easyname²ExoscaleFortigate
Gandi¹GcoreGidinet¹Google DNSHetzner
hosting.de¹Huawei Cloud DNSHurricane Electric DNSInfomaniakInternet.bs²
INWX¹JokerLinodeLoopia¹LuaDNS
Windows Server DNSMikroTik RouterOSMythic BeastsName.com¹Namecheap¹
NetcupNetlifyNetnodNexDNSNS1
OpenproviderOpenSRS²Oracle CloudOVH¹Packetframe
Porkbun¹PowerDNSRealtime Register¹RWTH DNS-AdminSakura Cloud
SoftLayerTencent Cloud DNS¹TransIPUniFi NetworkVercel
VultrNetbirdWebSupportSpaceship¹mittwald

¹registrar 기능도 지원 ²registrar 전용

장점

  • BIND zone 파일을 편집하는 것보다 오류 발생 가능성이 적습니다.
  • 웹 포털에서 버튼을 클릭하는 것보다 재현성이 뛰어납니다.
  • DNS 공급자 간 손쉬운 전환: DNSControl 언어는 공급자에 구애받지 않습니다. 이 언어를 사용하여 DNS 영역 레코드를 유지 관리하면 DNS 공급자 간에 쉽게 전환할 수 있습니다. 실제로 DNSControl은 DNS 레코드를 여러 공급자에 업로드하므로 한 공급자를 테스트하면서 다른 공급자로 전환할 수 있습니다. 우리는 3년 동안 3번 공급자를 전환했지만 DNS 레코드를 한 번도 잃지 않았습니다.
  • DNS에 CI/CD 원칙을 적용하세요! StackOverflow는 DNSControl 구성을 Git에 유지 관리하고 CI 시스템을 사용하여 변경 사항을 배포합니다. DNS 정보를 VCS에 보관하면 전체 기록을 확보할 수 있습니다. CI를 사용하면 단위 테스트와 시스템 테스트를 포함할 수 있습니다. MX 레코드 끝에 "."을 포함하는 것을 잊었던 때를 기억하시나요? Tom이 그 실수를 다시 하지 않도록 하는 테스트를 포함한 이후로 그런 문제는 없었습니다.
  • (GitOps) PR 기반 업데이트 채택. 개발자가 PR로 업데이트를 보내도록 허용하고, 승인하기 전에 검토할 수 있습니다.
  • 변수로 시간 절약! IP 주소를 상수에 할당하고 파일 전체에서 변수 이름을 사용하세요. IP 주소를 전역적으로 변경해야 하나요? 변수만 변경하고 "재컴파일"하면 됩니다.
  • 매크로! SPF 레코드, MX 레코드 또는 기타 반복되는 데이터를 한 번 정의하고 모든 도메인에서 재사용하세요.
  • 단일 진실 공급원에서 Cloudflare 제어. DNSControl 파일에서 직접 Cloudflare 프록시("주황색 구름" 버튼)를 활성화/비활성화할 수 있습니다.
  • 변환 및 기타 기능으로 유사한 도메인을 동기화 상태로 유지. 한 도메인이 다른 도메인의 필터링된 버전이어야 하는 경우 쉽게 설정할 수 있습니다.
  • 확장 가능합니다! 모든 DNS 공급자는 플러그인으로 작성됩니다. 새 플러그인을 작성하는 것은 매우 쉽습니다.

설치

DNSControl은 macOS, Linux 및 Windows용 패키지로 설치하거나 소스 코드에서 설치할 수 있습니다. 공식 지침을 참조하세요.

GitHub Actions (GHA) 사용

공식 GitHub Action은 github.com/dnscontrol/dnscontrol-action입니다.

다음과 같이 다른 것들도 만들어졌습니다:

지원 중단 경고 (2026-08-17 업데이트)

카테고리