DNS서버의 용도에 따른 분리
View기능 이용
1. 분리할 네트워크 대역을 정의 예) internal / external
2. /etc/named.conf 내용 수정 acl 등록
Internal에 대한 zone 내용 정의
External에 대한 zone 내용 정의
3. /var/named 에 internal 용 zone file 생성 external용 zone file 생성
4. 체크 및 named 리스타트
[BIND 서버 설정]
이렇게 세팅할꺼다.
Internal 192.168.100.0/24 www mailx ns ftp --> 내부 recursion yes External 192.168.10.0/24 Mailx www ns --> 외부 recursion no [root@jo:/var/named]#cp /etc/named.conf /etc/named.conf.TSIG [root@jo:/var/named]#vi /etc/named.conf 19 recursion no; --> "yes" 에서 "no"로 변경 위에 zone transfer 작업때 했던 거 지운다. 10 key host1-host2. { 11 algorithm hmac-md5; 12 secret "ECo0RqbH9nq5aRmGGtudO0zBYue3iIPI83QIRI6UyH8="; 13 }; 14 15 server 192.168.100.100 { 16 keys {host1-host2.;}; 17 }; --> 이 부분 삭제
<다 추가삽입햇다.> 29 acl "internal-zone" {192.168.100.0/24;}; 30 31 view "internal" { 32 match-clients { "internal-zone"; }; 33 recursion yes; --> 추가 삽입 괄호는 밑에서 막을 것이다. 42 zone "cho.iss" IN { 43 type master; 44 file "cho.internal"; 45 allow-update { none;}; 46 allow-transfer { none;}; 47 }; 48 49 zone "100.168.192.in-addr.arpa" IN { 50 type master; 51 file "cho.internal.rev"; 52 allow-update { none;}; 53 allow-transfer { none;}; 54 }; 55 }; 57 view "external" { 58 match-clients { any;}; 59 recursion no; 60 61 zone "cho.iss" IN { 62 type master; 63 file "cho.external"; 64 allow-update { none;}; 65 allow-transfer { none;}; 66 }; 67 68 zone "10.168.192.in-addr.arpa" IN { 69 type master; 70 file "cho.external.rev"; 71 allow-update { none;}; 72 allow-transfer { none;}; 73 }; 74 }; Internal zone에 해당하는 애들만 보게 acl로 제한했다.
[root@jo:/var/named]#named-checkconf /etc/named.conf --> 작성한 "named.conf"에 에러 체크를 해보자. |
--
<zone 파일 생성: "cho.internal">:::::::: 내부 DNS설정
[root@jo:/var/named]#vi cho.internal $TTL 1D @ IN SOA ns.cho.iss. jo.cho.iss.( 1 21600 1800 1209600 86400 ) IN NS ns.cho.iss. IN MX 10 mail ns IN A 192.168.100.1 mail IN A 192.168.100.100 mailx IN A 192.168.100.1 www IN A 192.168.100.100 ftp IN A 192.168.100.100
[root@jo:/var/named]#named-checkzone master cho.internal zone master/IN: loaded serial 1 OK |
--
<rev 파일 생성: "cho.internal.rev">
[root@jo:/var/named]#vi cho.internal.rev $TTL 1D @ IN SOA ns.cho.iss. jo.cho.iss.( 1 21600 1800 1209600 86400 ) IN NS ns.cho.iss. 1 IN PTR ns.cho.iss. 1 IN PTR mailx.cho.iss. 100 IN PTR mail.cho.iss. 100 IN PTR www.cho.iss. 100 IN PTR ftp.cho.iss. [root@jo:/var/named]#named-checkzone master cho.internal.rev zone master/IN: loaded serial 1 OK |
--
<zone 파일 생성: "cho.external">:::::::: 외부 DNS설정
[root@jo:/var/named]#vi cho.external 나중에 NAT로 웹서버 서비스를 할 때 쓸 IP를 미리 삽입하자. $TTL 1D @ IN SOA ns.cho.iss. jo.cho.iss.( 1 6H 30M 14D 1D ) IN NS ns.cho.iss. IN MX 10 mailx
ns IN A 192.168.10.181 mailx IN A 192.168.10.181 www IN A 192.168.10.183 ftp IN A 192.168.10.181 |
--
rev 파일 생성: "cho.external.rev"
[root@jo:/var/named]#vi cho.external.rev $TTL 1D @ IN SOA ns.cho.iss. jo.cho.iss. ( 1 6H 30M 14D 1D ) IN NS ns.cho.iss. 183 IN PTR www.cho.iss. 181 IN PTR ns.cho.iss. 181 IN PTR mailx.cho.iss. |
--
<네임 리스타트 및 확인>
[root@jo:/var/named]#service named restart Stopping named: . [ OK ] Starting named: [ OK ] [root@jo:/var/named]#netstat -nlp |grep :53 tcp 0 0 192.168.100.1:53 0.0.0.0:* LISTEN 5634/named tcp 0 0 192.168.10.181:53 0.0.0.0:* LISTEN 5634/named tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 5634/named tcp 0 0 ::1:53 :::* LISTEN 5634/named udp 0 0 192.168.100.1:53 0.0.0.0:* 5634/named udp 0 0 192.168.10.181:53 0.0.0.0:* 5634/named udp 0 0 127.0.0.1:53 0.0.0.0:* 5634/named udp 0 0 0.0.0.0:5353 0.0.0.0:* 3281/avahi-daemon: udp 0 0 ::1:53 :::* 5634/named udp 0 0 :::5353 :::* 3281/avahi-daemon: |
--
<nslookup으로 DNS질의 테스트>
[root@jo:/var/named]#nslookup > server Default server: 192.168.10.181 Address: 192.168.10.181#53 > mailx.cho.iss Server: 192.168.10.181 Address: 192.168.10.181#53 Name: mailx.cho.iss Address: 192.168.100.181 > 192.168.10.181 Server: 192.168.10.181 Address: 192.168.10.181#53 181.10.168.192.in-addr.arpa name = ns.cho.iss. 181.10.168.192.in-addr.arpa name = mailx.cho.iss. > server 192.168.100.1 Default server: 192.168.100.1 Address: 192.168.100.1#53 > 192.168.100.1 Server: 192.168.100.1 Address: 192.168.100.1#53 1.100.168.192.in-addr.arpa name = ns.cho.iss. 1.100.168.192.in-addr.arpa name = mailx.cho.iss. > mailx.cho.iss Server: 192.168.100.1 Address: 192.168.100.1#53 Name: mailx.cho.iss Address: 192.168.100.1 > www.cho.iss Server: 192.168.100.1 Address: 192.168.100.1#53 Name: www.cho.iss Address: 192.168.100.100 > ftp.cho.iss Server: 192.168.100.1 Address: 192.168.100.1#53 Name: ftp.cho.iss Address: 192.168.100.100 > mail.cho.iss Server: 192.168.100.1 Address: 192.168.100.1#53 Name: mail.cho.iss Address: 192.168.100.100 > exit [root@jo:/var/named]#nslookup > server 192.168.10.181 Default server: 192.168.10.181 Address: 192.168.10.181#53 > mail.cho.iss Server: 192.168.10.181 Address: 192.168.10.181#53 ** server can't find mail.cho.iss: NXDOMAIN > |
--
--> 이제 윈도우xp 에서 dns를 192.168.10.181로 설정하고 nslookup을 테스트해본다.
외부에서는 절대로 쿼리를 날릴 수 없다.
"acl"에 등록되어 있기 때문에
#vi /etc/named.conf
29 acl "internal-zone" {192.168.100.0/24;};
-->
Windows xp에서 외부DNS에 dns 질의가 되게 하려면
"/etc/named.conf"에서 "acl" 부분을 수정해준다.
#vi /etc/named.conf
29 acl "internal-zone" {192.168.100.0/24; 192.168.10.26/24; localhost;};
이제는 acl에 넣어주니깐 서버도 되고 질의도 된다.