named.conf와 zone 파일 입니다. 기존의 ns.client.co.kr의 ip를 nsupdate로 변경해 보는 테스트를 해보려고 하는데,
쿼리는 날라가도 막상 zone 파일의 내용은 수정되지 않습니다. 무엇이 문제 인지요?
아니면 혹시 nsupdate가 정확히 되는 예제를 얻을 수 있을런지요? 국-외 아무리 찾아봐도 확실한 예제는 없는 듯 합니다.
(예제는 static ip를 사용하여 내부에서 테스트가 가능한 것이면 좋구 그게 아니라면 그냥 집에서 할 수 있는 예제 부탁드립니다.)
key "key" {
algorithm HMAC-MD5;
secret "P7QiYTq0SBmyvo8ClXzbofMRgPgxfZnyC8A5mZ/7BdfjnOxtw8diDXWoeUBc0CcT3EsRIeI3RfoJE2kJu0b5oQ==";
};
zone "client.co.kr" {
type master;
file "/etc/bind/client.zone";
//allow-update { key "key"; };
//allow-query { any; };
};
/////////////////////////////////////////////////////////
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA ns.client.co.kr. root.client.co.kr. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.client.co.kr.
@ IN A 10.200.0.215
ns IN A 10.200.0.215
해보진 못했지만…
대부분의 데몬 설정이 그렇듯이 데몬 로그를 전부 켜시고
로그를 보시면 쉽게 해결할 수 있지 않을까 추측해봅니다.
이 예제로 테스트 다시 시도 해보았는데 이것도 뭐가 잘못된건지 모르겠습니다.
/etc/bind/named.conf 파일
zone "example.com." {
type master;
file "example.com.zone";
allow-update { 0.0.0.0/0; };
};
/etc/bind/example.com.zone 파일
$ORIGIN .
$TTL 3600 ; 1 hour
example.com IN SOA ns1.example.com. admin.example.com. (
2010090204 ; serial
3600 ; refresh (1 hour)
3600 ; retry (1 hour)
3600 ; expire (1 hour)
3600 ; minimum (1 hour)
)
NS ns1.example.com.
NS ns2.example.com.
$ORIGIN example.com.
host1 A 192.168.1.1
host10 A 192.168.1.10
host2 A 192.168.1.2
host3 A 192.168.1.3
host4 A 192.168.1.4
host5 A 192.168.1.5
host6 A 192.168.1.6
host7 A 192.168.1.7
host8 A 192.168.1.8
host9 A 192.168.1.9
ns1 A 10.0.0.1
ns2 A 10.0.0.2
이 상태에서 nslookup host1.example.com하면 정상적으로 192.168.1.1 ip로 쿼리 결과가 나옵니다.
다른 hostx도 마찬가지 이면 ns1, ns2 역시 그렇구요.
wchoule@wchoule-desktop:~$ nslookup ns1.example.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: ns1.example.com
Address: 10.0.0.1
wchoule@wchoule-desktop:~$ nslookup ns2.example.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: ns2.example.com
Address: 10.0.0.2
그런데 이상태에서 nsupdate를 시도하면
nsupdate
> server localhost
> update add aa.example.com. 300 a 2.2.2.2
> send
update failed: REFUSED <==이게 발생합니다.
현재 bind9 설치 후 named.conf에 들어가는 위의 내용 이외 named.conf.local 그리고 named.conf.default-zones 파일을 비롯하여 존파일들은 전혀 손을 대지 않았습니다.
또한 랜선을 뽑은 상태로 인터페이스에 ip address는 들어가 있지 않으며(eth0에는 ip 정보 없고 lo는 그냥 127.0.0.1 디폴트 상태), /etc/resolv.conf 역시 네임서버 아이피가 설정되어 있지 않는 상태 입니다. server {ip} 설정이 잘못도니 것인지요? 아니면 allow-update 설정이 잘못 된건지요? 고수님들의 많은 총알을~~~
위 댓글 테스트 환경에서 디버그 모드로 하고 해당 zone을 지정해 주면 아래와 같은 결과가 나옵니다.
root@wchoule-desktop:/etc/bind# nsupdate -d
> server localhost
> zone example.com.zone
> update add aa.example.com 300 a 2.2.2.2
> send
Sending update to ::1#53
Outgoing update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: 56155
;; flags:; ZONE: 1, PREREQ: 0, UPDATE: 1, ADDITIONAL: 0
;; ZONE SECTION:
;example.com.zone. IN SOA
;; UPDATE SECTION:
aa.example.com. 300 IN A 2.2.2.2
Reply from update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOTAUTH, id: 56155
;; flags: qr ra; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
뭔가 설정상에 더 추가해줘야 할것인 있는거 같은데 뭔지 모르겠습니다. 엉엉~
[quote="wchoule":152e5kwh]
Reply from update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOTAUTH, id: 56155
;; flags: qr ra; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
[/quote:152e5kwh]
먼저 다시 말씀 드리면 전 이 설정 해보지 않고 로그만 보고 판단해서 조언드리는거니
참고만 하시기 바랍니다.
위 로그중 status: NOTAUTH가 있는데 그 부분이 인증없이 업데이트를 시도했다는건지
인증되지 않아서 업데이트 못했다는건지 감이 안옵니다.
결과적으로 업데이트에 실패했다면 아마도 인증 문제가 아닐까 추측해봅니다.
서버쪽 로그도(bind 서버 로그) 볼수있으면 좋겠군요