DNS 서버구축및운용 BIND (Berkeley Internet Name Domain) Doo-ok Seo clickseo@kw.ac.kr http://
Contents 도메인이란? DNS 서버설치및설정 2
도메인이란? 도메인이란? 도메인이름원칙 도메인이름체계 DNS 역할및작동과정 DNS 서버설치및설정 3
도메인이란? 도메인 (Domain) IP 주소를대신하는문자화된별칭 DNS 서버 ( 또는네임서버 ) 도메인이름을 IP 주소로변환해주는매체 인터넷초창기 인터넷의모든컴퓨터에 FTP를통해복사된 host.txt 파일을사용 지금도대부분의유닉스시스템에서는 /etc/hosts 파일지원 4
도메인이름 (Domain name) 인터넷주소중에서문자로이루어진주소 숫자 (0~9), 영문자 (A~Z) 의조합 대소문자를구별하지않음 첫글자는영어나숫자로시작 콤마, 언더바 (_) 등기호사용불가 단, 대시 (-) 는사용가능 최소 2 자에서최대길이는 256 자 출현배경 도메인이름원칙 숫자로구성된 IP 주소를사용자들이일일이외울수없다는한계를극복하기위함 5
도메인이름의구성 7 개의일반도메인 (gtld) 과 190 여개의국가도메인 (ntld) 국가도메인은 ISO 3166 에의거각국의약자사용 도메인관리는미국의 InterNIC, IANA, 미국방성 NIC, 각국의망관리 센터에서관리 도메인이름체계 한국의경우 KRNIC 에서관리 일반기업및개인이사용하고자할때는 InterNIC 에신청 6
도메인이름체계 (cont d) 도메인이름의구성 (cont d) 루트서버 (root server) TLD (Top Level Domain) SLD (Second Level Domain) 7
도메인이름체계 (cont d) 도메인이름의구성 (cont d) 대표적인 Top Level 도메인 ntld : national Top Level Domain 국가코드에의한국가별도메인 (.kr,.jp,.tw 등 ) itld : international Top Level Domain 국제기구등에서사용할수있는도메인 (.int) gtld : generic Top Level Domain 전세계누구나등록가능한도메인 (.com,.net,.org) stld : special Top Level Domain 미국내특정기관만이사용가능한도메인 (.edu,.gov,.mil) 8
도메인이름체계 (cont d) KRNIC 에서부여하는도메인 우리나라의도메인관리센터 사업자의경우사업자등록증 1 개에하나의도메인부여 개인에게는원칙적으로발급이되지않으며, 사업자등록증을첨부할때에만부여 [ 예 ] www.kw.ac.kr (1) (2)(3)(4) (1) 사용하는서버의종류 (2) 해당기관의명칭 (3) 기관의성격 (4) 국가표시 9
도메인이름체계 (cont d) KRNIC 에서부여하는도메인 (cont d) 기관의성격 (KRNIC) 6 개기관과 16 개지역도메인 co 기업 ac 대학 re 연구기관 go 정부기관 or 비영리단체 ne 네트워크 지역도메인 (seoul, kwangju, pusan 등 ) 10
DNS 역할및작동과정 DNS 역할및작동과정 11
DNS 서버설치및설정 도메인이란? DNS 서버설치및설정 BIND 설치 DNS 클라이언트설정 BIND 설정파일 12
ISC (Internet Software Consortium) http://www.isc.org BIND 설치 13
BIND 설치 (cont d) BIND 구하기 http://www.isc.org ftp://ftp.isc.org/isc/bind9/ 현재 Bind 9.3.2 Bind 8.x 는 bind-contrib.tar.gz, bind-doc.tar.gz과 bind-src.tar.gz의세개의파일로배포된다. Bind 9.x 는 bind-9.3.2.tar.gz 으로배포한다. 14
BIND 설치 RPM 설치 BIND 설치 (cont d) Fedora 에서는기본적으로제공 (Fedora Core 5 : Bind-9.3.2-4.1) 소스컴파일설치 # /usr/local/src 디렉토리에서... # tar xvzf bind-9.3.2.tar.gz # cd bind-9.3.2 #./configure # make # make install 15
Resolver DNS 클라이언트설정 리눅스에서 DNS 클라이언트부분은 resolver 에서처리된다. /etc/host.conf 해석 (Resolution) 방법및순서를지정하는파일 /etc/resolv.conf 네임서버의위치를지정하는파일 /etc/nsswitch.conf 설정정보 ( 서비스 ) 를어디서찾아야할지를알려주는것 16
DNS 클라이언트설정 (cont d) /etc/host.conf 해석 (Resolution) 방법및순서를지정하는파일 host.conf 설정옵션 hosts order bind on multi off on alert off trim nospoof /etc/hosts 파일로 resolving 할것인지 (hosts) 네임서버로 resolving(bind) 할것인지의해석순서를지정 /etc/hosts 파일에서하나의호스트가여러개의 IP 를가질수있는지여부를설정 (DNS 엔전혀영향을주지않는다.) 스푸핑 (spoofing) 시도를로그에기록할것인지여부결정 도메인이름을인자로취하여호스트검색시기본도메인으로지정 호스트이름과 IP 가일치할때호스트이름을 resolving 시켜준다. 만일일치하지않은경우에러를보낸다. 17
DNS 클라이언트설정 (cont d) /etc/resolv.conf 네임서버의위치를지정하는파일 # /etc/resolv.conf 파일의형식 search domainname nameserver IP-address resolv.conf 설정옵션 domain : 호스트의로컬도메인이름을넣어준다. search : 자동으로찾을도메인주소를입력한다. nameserver : 네임서버로사용할호스트의 IP 주소를입력한다. 네임서버를최대 3 개까지지정할수있다. 네임서버는반드시 IP 주소로만적어야한다. 18
DNS 클라이언트설정 (cont d) /etc/nsswitch.conf 설정정보 ( 서비스 ) 를어디서찾아야할지를알려주는것 # /etc/nsswitch.conf 파일의형식 서비스이름 : 가능한위치항목의값 항목의값 : files, nis, dns, [NOTFOUND], NISPLUS [NOTFOUND] 는시스템이이전엔트리에서정보를찾는데실패하면검색을중단시키는특별한지시자 # hosts 의간단한예 hosts: files dns nis 19
/etc/named.conf BIND 를위한주설정파일 BIND 설정파일 네임서버데몬프로그램인 bind 가시작하면서참조하는설정파일 Bind 4.x 에서는 /etc/named.boot 파일로제공 # /etc/named.conf 파일의일반적인형식 statement { }; options; // 주석문 statement 키워드는 BIND에게그수행의특정부분을기술한다는것을알려주고, options는그 statement에적용되는명령들이다. 모든 option 뒤에는세미콜론이와야하고, 마지막브레이스뒤에도세미콜론이온다. 20
BIND 설정파일 (cont d) /etc/named.conf (cont d) statement 키워드 키워드 acl include logging options controls server zone 어떤정보를로깅하고어떤것은무시해야하는지지정한다. 또한로깅데이터가기록되는위치를지정할수있다. ( 디폴트로그파일은 /var/log/message 파일 ) 전역적인서버설정내용을지정한다. ndc 유틸리티에서사용할수있는제어채널을지정한다. 서버에관련된설정옵션을세팅한다. DNS zone 을정의한다. 설명 접근제어리스트 (Access Control List) 다른파일을포함할수있게하고, 그것을 named.conf 파일의일부분으로취급할수있게한다. 21
/etc/named.conf (cont d) directory 디렉터리 네임서버의정보를가진데이터파일들이위치하는디렉터리를지정 options { BIND 설정파일 (cont d) directory /var/naemd ;... 22
BIND 설정파일 (cont d) /etc/named.conf (cont d) zone 엔트리의기본문법 zone 파일은 Forward 와 Reverse 두가지데이터베이스값을가진다. Forward Zone 은도메인에대한 IP 정보를가지고있는데이터베이스 Reverse Zone 은 IP 에대한도메인정보를가지고있는데이터베이스 zone domain-name { }; type master; file path-name; file 파일명 file은네임서버가관리하는지역도메인과그정보를가진데이터파일을저장 type master/slave master 는 1 차네임서버이고 slave 는 2 차네임서버 23
BIND 설정파일 (cont d) /etc/named.conf (cont d) zone 엔트리의기본문법 (cont d) 루트네임서버들에대한정보를가지고있는파일을지정 zone. IN { }; type hint; file named.ca ; named.ca 는루트네임서버들에대한캐쉬파일 type hint 라인은캐싱 zone 엔트리임을나타낸다. 가장최신파일은 ftp://rs.internic.net/ 에서찾을수있다. 24
BIND 설정파일 (cont d) /etc/named.conf (cont d) zone 엔트리의기본문법 (cont d) 루트네임서버들에대한정보를가지고있는파일을지정 zone localhost IN{ }; type master; file localhost.zone ; allow-update { none; }; 서버자신인 localhost에대한정보를가지고있는 localhost.zone에대한설정파일에대한내용이다. allow-update는 BIND-8.x 부터지원되는기능이며, none 부분에 IP 주소를입력하면해당컴퓨터로부터실시간으로레코드가변경, 갱신될수있다. 25
BIND 설정파일 (cont d) /etc/named.conf (cont d) zone 엔트리의기본문법 (cont d) 루트네임서버들에대한정보를가지고있는파일을지정 zone 0.0.127.in-addr.arpa IN{ }; type master; file named.local ; 서버자신의 IP인 127.0.0.x 대의정보를가지고있는설정파일에관한내용이다. 26
BIND 설정파일 (cont d) /etc/named.conf (cont d) clickseo.com 설정예제 clickseo.com 이관리하는도메인과그정보를가지고있는파일 zone clickseo.com IN{ }; type master; file clickseo.zone ; clickseo.zone 파일은 Forward Zone 으로써도메인에대한 IP 정보를 가지고있는파일이다. 해당도메인네임을 IP 로바꿔주는역할을한다. 27
BIND 설정파일 (cont d) /etc/named.conf (cont d) clickseo.com 설정예제 (cont d) 서버가관리하는 IP 와그정보를담당하는파일 zone 64.134.128.in-addr.arpa IN{ }; type master; file clickseo.rev ; clickseo.rev 파일은 Reverse Zone 으로써이서버가관리하는 IP 와그 정보를담당하는파일이다. IP 주소로도메인네임을찾아주는역할을담당한다. 28
BIND 설정파일 (cont d) /var/named/named.local named.local 파일의내용 29
DNS 레코드유형 BIND 설정파일 (cont d) SOA : Start of Authority 해당도메인에대해네임서버가모든리소스레코드권리를가지고있음을알려주는레코드이다. 모든존파일은항상 SOA 레코드로시작되며, 첫줄은항상다음과같은구조를취한다. @ IN SOA localhost. root.localhost. ( @ 표시는 Origin 도메인을뜻하는것으로 localhost. 를나타낸다. @ 표시대신에 localhost. 를사용할수도있다. IN은네임서버에게이것이인터넷레코드라는것을알려준다. SOA 다음에는네임서버주소와관리자의이메일주소가따른다. 30
DNS 레코드유형 (cont d) SOA : Start of Authority Serial 이정보의버전 ( 일련번호 ) 을나타낸다. 파일이언제수정되었는지를네임서버에게알리는역할을한다. Refresh Retry Expire BIND 설정파일 (cont d) 갱신율 (refresh rate) 이며단위는초 (10800 == 3 시간 ) 재시도율이며단위는초 (1800 == 30 분 ) 만료시간으로단위는초 (1209600 == 2 주 ) Minimum (TTL, Time to Live) 최소시간으로단위는초 (604800 == 1 주 ) 다른서버에서자신의정보를가져갔을때상대서버의캐시에그정보가얼마나오랫동안머물것인지 ( 캐시활성시간 ) 를결정한다. 31
BIND 설정파일 (cont d) DNS 레코드유형 (cont d) NS : Name Server 어떤네임서버들이이 zone 의레코드를관리하는지를지정한다. 원하는만큼백업네임서버를가질수있으며적어도두개이상은있는것이좋다. IN NS localhost. A : Address Record 호스트이름을 IP 주소로대응시키기위해사용하는레코드 host-name IN A IP-Address 32
BIND 설정파일 (cont d) DNS 레코드유형 (cont d) PTR : Pointer Record 역방향풀이 (reverse resolution) 를위한것이다. IP 주소를사용하여이에대응하는호스트이름을찾고자할때사용 IP-Address IN PTR host-name. MX : Mail Exchanger 해당도메인으로오는메일을처리할메일서버를지정해준다. domain_name. IN MX weight host-name 만일메일서버가여러개라면작은숫자를가진것이우선권을가진다. clickseo.com. IN MX 10 mail.clikseo.com IN MX 20 mail2.clickseo.com 33
BIND 설정파일 (cont d) DNS 레코드유형 (cont d) CNAME : Canonical Name 호스트이름의별명 (alias) 을만들수있게해준다. new-host-name IN CNAME old-host-name. 34
BIND 설정파일 (cont d) 완전한설정파일예 1. /etc/named.conf (1/2) options { directory /var/named ; allow-transfer { 128.134.70.1; // ns1.clickseo.com 128.134.70.2; // ns2.clickseo.com }; }; zone. IN { type hint; file named.ca ; }; zone 0.0.127.in-addr.arpa { type master; file named.local ; 35
BIND 설정파일 (cont d) 완전한설정파일예 (cont d) 1. /etc/named.conf (2/2) zone clickse.com IN { type hint; file named.clickseo.com ; }; zone 64.134.128.in-addr.arpa { type master; file named.rev ; 36
BIND 설정파일 (cont d) 완전한설정파일예 (cont d) 2. /var/named/named.local $TTL 86400 @ IN SOA localhost. root.localhost. ( 1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minumum 1 IN PTR localhost. 37
BIND 설정파일 (cont d) 완전한설정파일예 (cont d) 3. /var/named/named.clickseo.com $TTL 86400 @ IN SOA clickseo.com. clickseo.clickseo.com. ( 1999051500 ; 일련번호 10800 ; 갱신주기 (3시간) 1800 ; 재시도주기 (30분) 1209600 ; 만료시기 (2주후) 604800 ) ; 최소시간 (1주) IN NS ns.clickseo.com. IN MX 10 mail.clickseo.com. imp IN A 128.134.64.1 ; 인터넷게이트웨이 mail IN A 128.134.64.2 ; 메일서버 technics IN A 128.134.64.3 ; 웹서버 www IN CNAME technics ns IN A 128.134.64.4 ; 네임서버 peanutbutter IN A 128.134.64.5 ; 방화벽 38
BIND 설정파일 (cont d) 완전한설정파일예 (cont d) 4. /var/named/named.rev $TTL 604800 @ IN SOA 64.134.128.in-addr.arpa. clickseo.clickseo.com.( 1999051500 ; 일련번호 10800 ; 갱신주기 (3시간) 1800 ; 재시도주기 (30분) 1209600 ; 만료시기 (2주후) 604800 ) ; 최소시간 (1주) IN NS ns.clickseo.com. 1 IN PTR imp.clickseo.com. 2 IN PTR mail.clickseo.com. 3 IN PTR technics.clickseo.com. 4 IN PTR ns.clickseo.com 5 IN PTR peanutbutter.clickseo.com 39
실행결과 BIND 설정파일 (cont d) 40
참고문헌 [1] 이종우, 류연승, LINUX 관리자가이드 3/e, 사이텍미디어, pp. 230 275 [2] ISC(Internet Software Consortim, http://www.isc.org 41