BIND DNS에서 TSIG를 설정하는 방법
DNS 역할 | 아이피 주소 | 도메인 | 비고 |
Master | 192.168.56.51 | ns1.bind.sangchul.kr | |
Slave | 192.168.56.52 | ns2.bind.sangchul.kr |
도메인 위임
1. TSIG 키 생성 (마스터 - node1)
Kexample.cohttp://m.+165+12345.key 및 Kexample.com.+165+12345.private와 같은 두 파일을 생성합니다.
2. 생성된 TSIG 키 확인 (마스터 - node1)
3. 마스터 BIND 구성 파일 편집 (node1)
다음과 같이 TSIG 키를 추가합니다.
4. BIND 서버 재시작 (마스터 - node1)
5. 슬레이브 BIND 구성 파일 편집 (node2)
다음과 같이 TSIG 키를 추가하고 슬레이브 설정을 추가합니다.
여기서 node1_ip는 마스터 노드의 IP 주소로 대체되어야 합니다.
6. BIND 서버 재시작 (슬레이브 - node2)
이제 마스터(node1)와 슬레이브(node2) 간에 TSIG를 사용하여 DNS 데이터 전송이 설정되었습니다. 마스터와 슬레이브 간에 설정된 TSIG 키 정보를 정확하게 일치시켜야 합니다. 키 정보를 잘 보호하고 관리하는 것이 중요합니다.
[1차 DNS]
dnssec Key 파일 생성
[root@NS1 named]# dnssec-keygen -a HMAC-MD5 -b 128 -n Host my-domain.re.kr.
Kmy-domain.re.kr.+157+32789
[root@NS1 named]# ls -l Kmy*
-rw------- 1 root root 59 2013-07-04 09:58 Kmy-domain.re.kr.+157+32789.key
-rw------- 1 root root 165 2013-07-04 09:58 Kmy-domain.re.kr.+157+32789.private
[root@NS1 named]# cat Kmy-domain.re.kr.+157+32789.key
my-domain.re.kr. IN KEY 512 3 157 WUqP/du3BIcjhAN87/iZ+A==
[root@NS1 named]# cat Kmy-domain.re.kr.+157+32789.private
Private-key-format: v1.3
Algorithm: 157 (HMAC_MD5)
Key: WUqP/du3BIcjhAN87/iZ+A==
Bits: AAA=
Created: 20130704005732
Publish: 20130704005732
Activate: 20130704005732
my-domain.key.conf 파일 생성
[root@NS1 named]# vi /etc/my-domain.key.conf
[root@NS1 named]# cat /etc/my-domain.key.conf
key my-domain.re.kr. {
Algorithm hmac-md5;
secret "WUqP/du3BIcjhAN87/iZ+A==";
};
named.conf에 my-domain.key.conf 파일 추가
[root@NS1 named]# vi /etc/named.conf
...
zone "my-domain.re.kr" {
type master;
file "my-domain.re.kr-zone";
allow-update { key my-domain.re.kr.; };
};
include "/etc/my-domain.key.conf";
[2차 DNS]
my-domain.key.conf 생성
[root@NS2 named]# vi /etc/my-domain.key.conf
[root@NS2 named]# cat /etc/my-domain.key.conf
key my-domain.re.kr. {
Algorithm hmac-md5;
secret "WUqP/du3BIcjhAN87/iZ+A==";
};
ns1에서 키 파일 가져오기
[root@NS2 named]# scp 10.0.0.11:/var/named/K* /var/named/.
[root@NS2 named]# nsupdate -k Kmy-domain.re.kr.+157+32789.key
> server 10.0.0.11
> update add book.my-domain.re.kr. 300 IN A 10.0.0.55
> show
Outgoing update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: 0
;; flags:; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
;; UPDATE SECTION:
book.my-domain.re.kr. 300 IN A 10.0.0.55
> send
>
> quit
key 파일 없이 nsupdate 시도
[root@NS2 named]# nsupdate
> server 10.0.0.11
> update add book.my-domain.re.kr. 300 IN A 10.0.0.55
> show
Outgoing update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: 0
;; flags:; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
;; UPDATE SECTION:
book.my-domain.re.kr. 300 IN A 10.0.0.55
> send
update failed: REFUSED
[다른 서버에서 nsupdate 실행하기]
key 파일 가져오기
[root@resursive named]# scp 10.0.0.11:/var/named/K* /var/named/.
The authenticity of host '10.0.0.11 (10.0.0.11)' can't be established.
RSA key fingerprint is 43:08:da:18:32:3c:19:fd:1b:2b:3e:21:ad:50:d1:7f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.11' (RSA) to the list of known hosts.
root@10.0.0.11's password:
Kmy-domain.re.kr.+157+32789.key 100% 59 0.1KB/s 00:00
Kmy-domain.re.kr.+157+32789.private 100% 165 0.2KB/s 00:00
nsupdate으로 car.my-domain.re.kr 도메인 추가
[root@resursive named]# nsupdate -k Kmy-domain.re.kr.+157+32789.key
> server 10.0.0.11
> update add car.my-domain.re.kr. 7200 IN A 127.0.0.1
> show
Outgoing update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: 0
;; flags:; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
;; UPDATE SECTION:
car.my-domain.re.kr. 7200 IN A 127.0.0.1
> send
> quit
질의 테스트
[root@resursive named]# dig @10.0.0.11 car.my-domain.re.kr +short
127.0.0.1
'네임서버' 카테고리의 다른 글
[BIND] bind-9.9.3rc2 소스 컴파일 (0) | 2013.07.04 |
---|---|
BIND에서 .jnl 파일 데이터를 존 파일로 가져오는 방법 (0) | 2013.07.04 |
CentOS 7에서 BIND를 사용하여 DNS 포워딩을 설정하는 방법 (0) | 2013.07.03 |
[네임서버] bind를 사용한 마스터-슬레이브 dns 구성하기 (0) | 2013.07.03 |
DNS 캐싱(caching) 유형 (0) | 2013.07.02 |