'FreeBSD'에 해당되는 글 35건
- 2007.01.03 ProFTPD 포트로 설치하기
- 2007.01.03 [포트설치]Apache 2.0 + mod_php4 + mysql-server
- 2007.01.03 윈도우 2000 에서 NSLOOKUP을 통한 DNS 동작 테스트
- 2007.01.03 한메일에서만 보내면 1시간후에 리턴 되어 옵니다...
- 2007.01.03 [포트설치]DNS 세팅 (djbdns)
ProFTPD 포트로 설치하기
| |||
|
[포트설치]Apache 2.0 + mod_php4 + mysql-server
윈도우 2000 에서 NSLOOKUP을 통한 DNS 동작 테스트
질문겸 윈도우 2000 에서 NSLOOKUP을 통한 DNS 동작 테스트에 대한 내용 입니다.
사내에서 DNS를 돌리고 있는데 간혹가다 특정사이트에 대해서 올바른 DNS 서비스가 안되어
접속이 안되는 경우가 있읍니다. DNS를 점검 해봐도 특별한 이상은 없고 그렇다고 계속 사용하자니
찜찜하고 DNS를 점검 해봐도 특별한 이상은 없고 그래서 새로 설치했읍니다.
서비스팩깔고 드라이버 잡고 불필요한 서비스 내리고 DNS 설정 새로하고 백신 설치하고 등등 그런데 백신을 최신걸로 업데이트 하려고 브라우저를 띄우면 이상한 영문 사이트로 접속이 되더군요 백신은
하우리건가 그렇읍니다. 분명 서버를 새로 설치하고 DNS 도 깨끗이 다시 설정 했는데...
이번에는 DNS를 KT DNS 로 설정하고 다시 브라우저를 띄우니 잘되더군요..
아마 윈도우2000 에서 DNS를 설정하면 DNS서버도 쿼리에 대한 정보가 없으면 Default로
설정된 상위DNS 서버로 질의를 하는데 하우리에 대한 정보를 잘못된 IP로 알려 주는것 같읍니다.
아니면 다른 문제라면 답변 바랍니다.
⊙ w2k DNS 동작 테스트
1. 시작 -> 프로그램 -> 관리도구 -> DNS를 클릭하고 등록정보를 누른다. 모니터링 탭의 단순쿼리
및 재귀커리 항목을 체크하고 테스트버튼을 눌러 로컬 DNS의 동작여부와 다른 DNS 에게
정상적으로 쿼리하는지 테스트 한다.
2. 관리도구 -> 이벤트표시기 -> DNS SERVER 항목이 있는지 점검한다.
3. 관리도구 -> 서비스 -> DNS Server 가 정상적으로 동작 하는지 확인 만약 이상이 있거나
중지되어 있다면 서비스를 정지 했다가 재시작한다.
C:> net stop dns
C:> net start dns
* DNS 서버 동작이 있을 경우 서비스를 중지 했다가 재시작 하는 것도 좋은 방법이다.
⊙ NSLOOKUP 유틸을 이용한 점검
1. 사용방법 a.Interactive(대화형) - 대화형식으로 nslookup 을 입력하고 엔터를 치면
" > " 표시로 나타난다.
c:> nslookup
> www.empas.com // 엠파스의 IP를 질의한다.
b. Non Interactive(비화대형) - nslookup 한칸띄고 질의할 주소를 적는다.
c:> nslookup www.empas.com
2. 원하는 레코드 타입별로 확인
a SOA 레코드 확인
c:> nslookup
> set type=soa
> mcp.com / mcp.com 도메인의 SOA 레코드 요청
b. Mail Server 레코드 확인
c:> nslookup
> set type=mx
> net.com / net.com 도메인의 MX 레코드 요청
c. 도메인에 대한 모든 레코드 요청
c:> nslookup
> set type=all
> mcp.com / mcp.com 도메인의 모든 레코드 요청
⊙ DNS Server Local Cache
1. 한번 쿼리를 해서 알아낸 특정 사이트의 정보는 특정시간(TTL)동안 DNS Server의 로컬 캐쉬에
저장된다.
2. nslookup 질의를 통해서 알아낸 주소에 대해 다시 nslookup 질의를 보내면 같은 정보를 보여주고
" Non-authoritative answer : " 이란 메시지도 같이 보여주는데 이 뜻은 로컬 캐쉬에 있는 정보
이므로 신뢰할 수 없는 응답이라는 표기를 하고 있다.
3. 간혹 실제 주소가 변경 되었는데 로컬 캐쉬에서 변경전 정보를 가지고 있어 문제를 발생할 수 있다.
그 이유는 TTL 이 만료되기 전까지는 Interactive Query가 아닌 로컬 캐쉬의 정보를 찾아서
클라이언트에게 응답하기 때문이다.
4. 만약 질의에 대한 정보를 가져오지 못한다면 DNS Server를 점검해야 한다.
c:> nslookup www.empas.com / 로컬 DNS 에 질의
*** net.com can't find www.empas.com : No response from server
c:> nslookup www.empas.com 164.124.101.31
/ empas 도메인에 대한 정보 요청을 로컬 dns가 아닌 164.124.101.31 dns 에 질의 결과값을
정상적으로 가져 왔다면 로컬 DNS를 점검한다.
c:> nslookup
> server 210.121.199.77
/ 아예 default DNS server를 수정해서 앞으로 query를 자신의 dns server 로 설정된 서버가
아닌 210.121.199.77 인 DNS서버 에게 요청을 하겠다는 뜻
c:> nslookup ls mcp.com
/ mcp.com의 모든 레코드 요청, 이명령은 호스트 이름이 기억나지 않을 때 등에 사용
⊙ DNS Client Local Cache 삭제 및 정보 확인
W2K는 클라이언트도 Resolution 해온 dns 레코드를 로컬 캐쉬에 저장하는데 간혹 이것때문에
문제를 일으킬 수도 있다. 로컬캐쉬 정보를 지우려면 c:> ipconfig/flushdns 를 입력한다.
로컬캐쉬의 저장된 DNS 정보를 보려면 c:>ipconfig/displaydns 를 입력한다.
한메일에서만 보내면 1시간후에 리턴 되어 옵니다...
|
[포트설치]DNS 세팅 (djbdns)
## daemontools 설치
cd /usr/ports/sysutils/daemontools
make install clean
## ucspi-tcp 설치
cd /usr/ports/sysutils/ucspi-tcp
make install clean
## djbdns 설치
cd /usr/ports/net/djbdns
make install clean
2. 설정하기
## daemontools 설정하기
다 설치 하셨으면..
daemontools가 자동 실행이 되도록 설정을 해줍니다.
cp /usr/ports/sysutils/daemontools/files/svscan.sh.sample /usr/local/etc/rc.d/svscan.sh
chmod a+x /usr/local/etc/rc.d/svscan.sh
## dns 설정하기
dns를 실행할 유저를 만들어줍니다.
pw groupadd -n djbdns
pw useradd -n dnslog -g djbdns -d /noexistent -s /sbin/nologin -c "dnslog" -w random
pw useradd -n dns -g djbdns -d /noexistent -s /sbin/nologin -c "dns" -w random
리눅스에서는 /servie 아래에 dns를 만들어주지만.. 프비는 메인테너의 권유대로..
/var/service 에 만들겠습니다.
mkdir /var/service
tinydns-conf dns dnslog /var/service/dns 1.2.3.4
1.2.3.4는 자기 해당 아이피입니다.
이제 var/service/dns 에 가보시면
root라는 디렉토리가 보일겁니다.
안에 들어가시면
add-childns
add-mx
add-alias
add-host
add-ns
등이 보일겁니다.
도메인설정을 하겠습니다.
예로 저의 아이피는 1.2.3.4이고
도메인은 domain.com 입니다.
./add-ns domain.com 1.2.3.4
./add-ns 3.2.1.in-addr.arpa 1.2.3.4
메일,웹,ftp 설정을 하겠습니다.
./add-host www.domain.com 1.2.3.4
./add-alias ns.domain.com 1.2.3.4
./add-alias domain.com 1.2.3.4
./add-alias ftp.domain.com 1.2.3.4
./add-mx domain.com 1.2.3.4
기타 alias 시킬것이 있으면... 해주시구요..
끝나셨으면
make
해주시구요..
만약 mx 레코드가 여러개라면..
@domain.com:1.2.3.4:a::86400
@mail.domain.com:1.2.3.5:b::86400
@mail2.domain.com:1.2.3.6:c::86400
@mail3.domain.com:1.2.3.7:d::86400
이런형태로 data파일을 수정해주시면 됩니다.
제대로 설정을 했는지 확인하실려면..
tinydns-get a domain.com
하시면 다음과 같이 나오게 됩니다.
1 domain.com:
77 bytes, 1+1+1+1 records, response, authoritative, noerror
query: 1 domain.com
answer: domain.com 86400 A 1.2.3.4
authority: domain.com 259200 NS a.ns.domain.com
additional: a.ns.domain.com 259200 A 1.2.3.4
다 끝났습니다. 리부팅 한번해주시면..
절대로 죽지 않는 dns가 작동되게 될겁니다.
기본세팅 이외에 추가 도메인이 있을땐..
./add-ns test.com 111.222.333.444
./add-alias test.com 111.222.333.444
./add-mx test.com 111.222.333.444 (mx(mail server)사용할 경우에만)
등만 추가로 설정해주시고
make 하시면 적용이 된답니다.
현재 나의 data 내용이다...
도메인을 여러개 사용중이고 각각 가상메일을 사용중이다.
즉, domain.com을 도메인 등록업체에 등록하였고, 이 도메인을 가지고
네임서버 호스트 등록을 ns.domain.com 으로 한상태이다.
domain1.com, domain2.com .... 여러개 추가되엇을 때의 상황이다.
xxx.xx.xxx.xxx 는 서버 아이피 이다.
vi /var/service/dns/root/data
------------------------------------------------------------
.domain.com:xxx.xx.xxx.xxx:a:259200
.144.77.220.in-addr.arpa:xxx.xx.xxx.xxx:a:259200
=www.domain.com:xxx.xx.xxx.xxx:86400
+ns.domain.com:xxx.xx.xxx.xxx:86400
+domain.com:xxx.xx.xxx.xxx:86400
+ftp.domain.com:xxx.xx.xxx.xxx:86400
+qmail.domain.com:xxx.xx.xxx.xxx:86400
+mrtg.domain.com:xxx.xx.xxx.xxx:86400
+jungkiri.domain.com:xxx.xx.xxx.xxx:86400
@domain.com:xxx.xx.xxx.xxx:a::86400
.domain1.com:xxx.xx.xxx.xxx:a:259200
+www.domain1.com:xxx.xx.xxx.xxx:86400
+domain1.comr:xxx.xx.xxx.xxx:86400
+mail.domain1.com:xxx.xx.xxx.xxx:86400
@domain1.com:xxx.xx.xxx.xxx:a:86400
.domain2.com:xxx.xx.xxx.xxx:a:259200
+domain2.com:xxx.xx.xxx.xxx:86400
+www.domain2.com:xxx.xx.xxx.xxx:86400
@domain2.com:xxx.xx.xxx.xxx:a::86400
-----------------------------------------------------------------
위의 진하게 보이는 부분이 추가되는 도메인에 대한 한 묶음이다.. 유심히, 살펴보면 유형을 알 수 있을것이다.
1. /var/service/dns/root/data에 이상이 없는지 확인
2. tinydns-get을 이용하여 data.cdb의 이상이 없는지 확인
tinydns-get a 도메인이름
3. 현재 컴퓨터의 IP 확인
cat /var/service/dns/env/IP
netstat -n -i
4. tinydns가 동작중인지 확인
svstat /var/service/dns
5. tinydns에 DNS 쿼리를
dnsq a 도메인이름 IP주소
6. DNS cache에 쿼리
dnsq a 도메인이름
※컴퓨터의 설정이 올바르다면 5번까지는 바로 동작할 것이다. 6번은 상위 name server에까지 설정이 완전히 미쳐야 올바로 동작한다.
3.참고한 글
- D.J 번스타인의 djbdns 웹사이트 ( http://cr.yp/to/djbdns.html)
- 임은재님의 은재의 리눅스 페이지 ( http://kldp.org/~eunjea/)
- ienfant님의 djbdns를 이용한 dnscache 설정 ( http://club.shinbiro.com/clb/bbs/sbrClbBbs_View.jsp?bbsid=66828&method=TITLE&keyword=djbdns&pg=1&artno=534)
- 디망쉬님의 qmail, djbdns 의 매력 ( http://club.shinbiro.com/clb/bbs/sbrClbBbs_View.jsp?bbsid=66828&method=TITLE&keyword=djbdns&pg=1&artno=532)