DNS 소개
DNS 체계
DNS(Domain Name System)은 도메인이름을 사용하는 거대한 영역의 수직적인 체계를 말합니다.아래의 그림은 도메인 체계를 보여주고 있습니다.예컨대, kr도메인에는 or영역을 표현하는 or.kr 도메인이 포함되어 있고 or.kr 도메인에는 kisa.or.kr 도메인이 포함되어 있습니다.일반적으로 도메인관리자는 해당 도메인이 포함하는 영역을 관리할 수 있습니다.kisa.or.kr 도메인의 관리자는 kisa.or.kr 하위에 www.kisa.or.kr 혹은 domain.kisa.or.kr 등 여러 개의 호스트를 생성하는 등 kisa.or.kr 도메인을 관리할 수 있습니다.DNS(Domain Name Server)는 DNS(Domain Name System)이 작동할 수 있도록 도메인이름에 대한 설정을 한 서버를 말합니다.
DNS 구조
- 1단계, 최상위도메인, 일반최상위도메인, 국가코드최상위도메인
- 2단계, 2단계 도메인 자리에 희망문자열 선택, 예 naver.kr
- 3단계, 3단계 도메인 자리에 희망문자열 선택, 예, samsung.kr
DNS 설정 방법
- 네임서버 설정방법 일반적으로 네임서버는 도메인이름과 IP주소를 연결시켜주는 기능을 하는 서버입니다.네임서버는 리눅스/유닉스 계열에서는 주로 BIND를 사용하며 윈도우 서버 계열에서는 관리 도구의 DNS에서 설정할 수 있습니다.
BIND 설정 파일은 크게 아래의 세 가지로 나뉩니다.- 네임서버의 환경 설정 (named.conf)
- 도메인이름을 IP주소를 연결하기 위한 존파일 설정(xxx.zone)
- IP주소로 도메인이름을 찾기 위한 역방향 조회 영역 설정(xxx.in-addr.arpa)
- 존파일은 도메인을 설정하고 원하는 IP주소로 연결될 수 있도록 하는 정보를 보유하고 있습니다. 리버스 존파일은 IP주소로 도메인이름을 찾을 수 있도록 하는 정보를 보유하고 있습니다. 존파일 설정 시 사용되는 대표적인 레코드
레코드유형 | 역할 |
---|---|
SOA | 현재영역에대한권한을나타낸다.하나의존파일에는반드시하나만있어야한다. |
NS | 네임서버를지정한다. |
A | 호스트이름을IP주소로매핑할때사용 |
PTR | IP주소를호스트이름으로매핑할때사용 |
MX | 메일을MX레코드로지정한호스트로전송 |
CNAME | 호스트에별칭을연결해줄때사용 |

- 네임서버는 도메인이름과 IP주소를 매핑 시켜주며 e-mail 주소를 참조하여 정확히 전달될 수 있도록 하는 등 인터넷에서 아주 중요한 역할을 합니다.
- 이런 이유로 가급적이면 2대 이상의 네임서버 운영을 권장합니다.
- 보통 Master/Slave의 2대를 운영하는 경우가 많습니다.Master 네임서버는 주된 네임서버이며 Slave 네임서버는 2차 네임서버입니다.
주로 Master와 Slave로 설정하여 사용하는 이유는 안정성 및 네트워크 부하 분산 등의 이유로 네임서버를 2대 따로 사용하는 것보다 관리상 편리하며 존 파일을 따로 설정하여 발생하는 영역 데이타의 불일치 오류를 피할 수 있기 때문입니다. - Slave 네임서버는 Master 네임서버에서 존파일을 자동으로 받아와서 사용하기 때문에 Slave 네임서버 로만 설정해 주면 됩니다.
- Master 네임서버와 Slave 네임서버는 관리상의 차이만 있을 뿐 네임서버로서 아무런 차이가 없습니다. 1차 2차 네임서버로도 불리지만 Slave 네임서버는 백업용 서버가 아닙니다.
- Master 네임서버와 동일한 기능을 수행합니다. 레코드유형 역할
유닉스계열 BIND를 사용한 네임서버 설정방법
- Master 네임서버 named.conf 파일 설정 예제 option directory "/var/named"; //존파일, 역방향 조회영역 설정파일들 및 기타 설정파일들이 위치할 디렉토리 지정};zone "kisa.or.kr" in { type master; file "kisa.or.kr.zone"; // kisa.or.kr 도메인에 대한 영역 설정 파일 지정};zone "50.30.202.in-addr.arpa" in { type master; file "db.50.30.202"; //202.30.50.24 네트워크에 대한 역방향 설정 파일 지정};zone "localhost" in { type master; file "localhost.zone"; // 루프백 주소에 대한 파일 지정};zone "0.0.127.in-addr.arpa" in { type master; file "db.127.0.0"; // 루프백 주소에 대한 파일 지정};zone "." in { type hint; file "db.cache"; // 루트 힌트 파일 지정};
- Slave 네임서버 named.conf 파일 설정 예제 option { directory "/var/named";};zone "kisa.or.kr" in { type slave; // slave 네임서버임을 설정 file "slave-kisa.or.kr.zone"; //존파일 지정 masters { 202.30.50.100 }; // 존파일을 받아올 Master 네임서버의 IP를 설정};zone "50.30.202.in-addr.arpa" in { type slave; // slave 네임서버임을 설정 file "slave-db.50.30.202"; masters { 202.30.50.100 }; // 존파일을 받아올 Master 네임서버의 IP를 설정};zone "localhost" in { type master; file "localhost.zone";};zone "0.0.127.in-addr.arpa" in { type master; file "db.127.0.0";};zone "." in { type hint; file "db.cache";}
- [존파일 설정] ※ 존파일 설정시 '.' 점으로 끝나지 않는 경우 호스트명으로 처리하므로 도메인 입력시 주의해야합니다. 즉, 'kisa.or.kr'로 kr뒤에 점을 안찍으면 'kisa.or.kr.kisa.or.kr.'으로 인식됩니다.
- 존파일 예제(kisa.or.kr.zone) $TTL 86400;(1일) $ORIGIN kisa.or.kr. @ IN SOA ns1.kisa.or.kr. admin.kisa.or.kr. ( 2004082722 ; serial 28800 ; refresh (8시간) 7200 ; retry (2시간) 604800 ; expire (1주) 3600 ) ; negative TTL (1시간) IN NS ns1.kisa.or.kr. IN NS ns2.kisa.or.kr. ns1.kisa.or.kr. IN A 202.30.50.100 ns2.kisa.or.kr. IN A 202.40.60.200 kisa.or.kr. IN A 202.30.50.101 www
- 리버스 도메인을 위한 예제 (30.50.202.in-addr.arpa) $TTL 86400;(1일) $ORIGIN kisa.or.kr. @ IN SOA ns1.kisa.or.kr. admin.kisa.or.kr. ( 2004082722 ; serial 28800 ; refresh (8시간) 7200 ; retry (2시간) 604800 ; expire (1주) 3600 ) ; negative TTL (1시간) IN NS ns1.kisa.or.kr. IN NS ns2.kisa.or.kr. ns1.kisa.or.kr. IN A 202.30.50.100 ns2.kisa.or.kr. IN A 202.40.60.200 kisa.or.kr. IN A 202.30.50.101 www
윈도우즈 계열 설정 : http://dns.kisa.or.kr/DN/dns/dnsSetting.jsp#setting3
- DNS 점검 : http://dns.kisa.or.kr/kor/dns/dnsIntro03A.jsp
- NSLOOKUP : http://dns.kisa.or.kr/kor/dns/dnsIntro04.jsp
- kr DNS 현황 : http://dns.kisa.or.kr/kor/dns/dnsIntro05.jsp
서버 | 운영기관 | 위치 | IPv4/IPv6 지원 |
---|---|---|---|
b.dns.kr | 한국통신(KT) | 서울혜화 | IPv4 |
c.dns.kr | LG데이콤(LGDacom) | 서서울안양 | IPv4 |
d.dns.kr | ISC | 미국레드우드 | IPv4 |
한국인터넷연동센타(KINX) | 서울도곡 | ||
e.dns.kr | 한국과학기술정보연구원(KISTI) | 대전 | IPv4/IPv6 |
CNNIC | 중국 | ||
Registro.br | 브라질 | ||
f.dns.kr | 하나로텔레콤(HanaroTelecom) | 서울동작 | IPv4 |
g.dns.kr | 한국인터넷진흥원(kisa) | 서울서초 | IPv4/IPv6 |
베리사인사(Verisign) | 서울서초 | IPv4 | |
DENIC | 독일 | IPv4/IPv6 |
DNS SW 정보 사이트
- ISC(Internet Systems Consortium) BIND DNS
- DNS Software Lists
BIND DNS 관련 자료
- BIND DNS 관련 총괄 참고 자료
DNS FAQs & References
- Ask Mr. DNS
- DNS Resources Directory
- DNSSEC - Securing the Domain Name System
한글도메인
- 한국인터넷진흥원(kisa) 도메인
DNS 운영기술 연구기관
- ISC OARC
- US센디에고 대학의 CAIDA
DNS 표준화
- IETF
- IETF Working Group : DNSEXT (DNS extensions)
- IETF Working Group : DNSOP (Domain Name Operation)
관련기관
- 한국인터넷진흥원(kisa)
SANS, DNS 보안 이슈 관련 화이트 페이퍼
- SANS InfoSec Reading Room - DNS Issues
2005년 DNS 캐시 포이즈닝 사례
- SANS, "March 2005 DNS Poisoning Summary"
- Windows Server에서의 DNS 캐시 오염(cache pollution) 방지기능 활성화 설정 방법 Microsoft, "How to prevent DNS cache pollution”
RSA 서명 위조 취약점 (2006년 9월)
- "RSA Signature Forgery (CVE-2006-4339)”, OpenSSL Security Advisory (2006-09-05) dnssec-keygen 사용, 키 생성 시 "-e” 옵션 지정하여 ‘large exponent’ 사용 권고
2006년 발생 Reflector Attack의 분석 보고 자료
- VeriSign, "Anatomy of Recent DNS Reflector Attacks from the Victim and Reflector Point of View”
Reflector Attack에 의한 악용을 방지하기 위한 리커시브 네임서버 설정
- IETF Draft, "Preventing Use of Recursive Nameservers in Reflector Attacks"
ISC BIND 버전별 주요 취약점 정보
- BIND Vulnerabilities

-------------------------------------------------------
국방부, 경찰청특수팀 보안교육담당, 해커, 정보보안학원분야 1위 선정.
시스템보안, 넷보안, 침해대응, 해커대학 실무교육 책임자.
(주)아이티뱅크 김태희 학과장 입니다.
시스템보안, 넷보안, 침해대응, 해커대학 실무교육 책임자.
(주)아이티뱅크 김태희 학과장 입니다.
(02) 3676 - 9504
네이트온 : teriusk@nate.com
댓글 없음:
댓글 쓰기