2개의 DNS 서버(BIND9)(기본, 보조)와 1개의 도메인이 있습니다. 동적 IP를 사용하는 웹서버가 있습니다. 따라서 내 IP가 변경되면 도메인을 통해 내 사이트에 연결할 수 없습니다. DNS 서버에서 도메인 영역 IP 주소가 변경되었기 때문입니다.
내 질문은: x번마다 내 공용 IP 주소로 내 서버에서 내 영역을 어떻게 업데이트할 수 있습니까? 누군가 Linux(Debian 9)에 대한 업데이트 스크립트를 제공할 수 있나요?
감사해요
답변1
nsupdate
도구를 스크립팅하거나 호환되는 타사 클라이언트를 사용하여 RFC 2136 "DNS UPDATE"를 사용할 수 있습니다 .
공유 비밀 키(TSIG)
업데이트 인증을 위한 비밀 키를 생성합니다.
$ tsig-keygen -r /dev/urandom | tee tsig-key.private key "tsig-key" { algorithm hmac-sha256; secret "7P6HbRZRJCmtauo/lV0jwN9wkMgBTUikhf9JuaTvYT4="; };
이 키는 서버와 클라이언트에만 알려져 있으며 다른 누구에게도 알려지지 않습니다.
인쇄된 텍스트를
named.conf
. (다른 호스트에 대해 여러 키를 가질 수 있으며 각각key "…"
필드에 고유한 이름이 있습니다.)영역 구성에서 동적 업데이트를 활성화합니다.
zone … { … update-policy { /* grant <key_name> <policy> <record_types> */ grant "tsig-key" name myserver.example.com ANY; }; };
다양한 정책을 사용할 수 있습니다. 예를 들어
zonesub
업데이트를 허용합니다.전체영역이며subdomain dyn.example.com
분명한 의미가 있습니다.업데이트 수행:
$ nsupdate -k tsig-key.private > zone example.com > del myserver.example.com > add myserver.example.com 3600 A 100.64.1.1 > send
자동 업데이트가 가능한 다양한 클라이언트가 있습니다.
공개/개인 키(SIG(0))
키 쌍을 생성합니다.
$ dnssec-keygen -r /dev/urandom -T KEY -n USER myclient.example.com $ ls K* Kmyclient.example.com.+005+07399.key Kmyclient.example.com.+005+07399.private
파일
*.key
에는 공개 키가 포함되어 있습니다. 이를 DNS 영역에 추가하세요.파일
*.private
에는 개인 키가 포함되어 있습니다. 이를 클라이언트 컴퓨터에 복사하세요. (실제로 복사둘 다파일을 클라이언트 컴퓨터에 저장합니다.)update-policy { }
TSIG와 동일한 방식으로 설정합니다 .를 사용하여 동일한 방법으로 업데이트도 수행합니다
nsupdate -k <filename>.private
.
(참고: TSIG 키 이름은 임의적이지만 SIG(0) 키는 DNS에 저장되므로 항상 호스트 이름/하위 도메인과 같은 이름이 지정됩니다. 키 이름하지 않습니다단, 업데이트하는 호스트 이름과 일치해야 합니다.)
Kerberos(GSS-TSIG)
범위를 약간 벗어났지만 BIND9는 이를 지원합니다(주로 Active Directory와 함께 사용).