bind 에서는 nsupdate 로 zone 파일을 동적으로 변경할 수 있다.
ddns , dynamic dns 라고 한다.

1. 키값 만들기
 아무나 변경하면 안되니까, 보안을 위해 키값을 만든다.
 dnssec-keygen -a HMAC-MD5 -b 512 -n USER  mail.domain.com.
USER 대신에 ZONE , HOST 등으로 할 수 있다.
    -n <nametype>: ZONE | HOST | ENTITY | USER | OTHER
         (DNSKEY generation defaults to ZONE)
각각의 정확한 의미는?

위 명령을 내리면
Kmail.domain.com.+157+43746.key
Kmail.domain.com.+157+43746.private
두개의 파일이 생긴다. 보안키에서 흔히 볼 수 있는 public key , private key 라고 보면 된다.

2. named.conf 설정바꾸기.
  centos / chroot named 에서는  설정파일은
 /var/named/chroot/etc 에 있다.
rndc.key 에 다음을 추가한다. 별도 파일을 만들고 include 시켜도 된다.
key "mail.domain.com." {
   algorithm  hmac-md5;
   secret     "wTd1YkCIdFtpa4ncsdfsdfwMiGB789p8xR1fixWqDAW8fO9urKmdbalkjdsklfjAQqPA==";
};
Kmail.domain.com.+157+43746.key  값의 뒤 부분을 복사해서 넣으면 된다.
( 설정의 }; -> ; 를 빼먹지 않게 주의한다. )

 그리고, 변경하려는 도메인의 zone 을 업데이트 허용해야 한다.
zone "domain.com" {
  type master;
  file "domain.com.zone";
  allow-update { key "mail.domain.com."; };
};
위와 같이 allow-update 에 key "keyname" 형태로 넣어준다.

여기까지 하면 기본 준비는 끝난다.  named 재시작.

3. 외부에서 nsupdate 로 zone 변경해보기.

생성한 키쌍에서 private 키를 외부에 복사한다(로컬에서도 해도 되지만, 외부에서 해보자)
그리고 다음 명령으로 접속해 변경할 수 있다.
nsupdate -v -k Kmail.domain.com.+157+43746.private
접속하면 다음 처럼.
> server ns.domain.com
> zone domain.com
> update add some.domain.com. 86400 A 192.168.10.10
> show
> send
위 명령들을 파일로 만들어서 일괄처리할 수 있다.

DDNS 는 IP 가 동적으로 변경하는 환경 또는 서버의 Failover 처리등을 위해 사용하면 편리하다.
nsupdate 로 변경된 zone 파일은 직접 수정하지 않는것이 좋다.
named 에서 {zone file}.jnl 에 해당하는 임시파일을 만들고 추후 실제 zone 파일을 업데이트하기 때문에
zone 파일을 직접수정하면 수정한 부분이 사라질 수 있다.
직접 수정하려면 다음 방법중 하나를 사용한다.
# 방법1 - 9.3 이전버전
        rndc stop
        remove the journal file (.jnl)
        edit the zone
        start named
# 방법2 - 새버전 9.3
        rndc freeze zone
        edit the zone
        rndc unfreeze zone


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,