안녕하세요. 이번 시간에는 DNS 서버 중에서도 마스터 DNS(Master DNS)서버를 구축하는 방법에 대해 알아보도록 하겠습니다. 저는 korea.com이라는 도메인을 통해 실습해보도록 하겠습니다. 우선 항상 해오던 방법대로 서버를 생성해줍니다.
여기는 로그인을 하고 난 후 기본화면입니다. 이제 필요한 패키지들을 설치하도록 하겠습니다. 저는 편의상 'vim' 'net-tools' 'dnsutils' 를 설치하였습니다.
※ 참고로 Debian 8버전에서 9버전으로 넘어오면서 여러 요소가 바뀐 관계로 'net-tools'와 'dnsutils'를 설치하지 않으면 'ifconfig'명령어와 'nslookup'명령어가 사용 불가능합니다.
설치를 모두 완료했으면 /etc/vim/vimrc 파일에서 필요한 설정을 하도록 하겠습니다. 저는 'syntax on'이라는 구문을 주석해제하고 'set nu'라는 구문을 추가하면서 앞에 번호가 새겨지도록 하였습니다.
설정을 했으면 파일을 나가서 DNS에 필요한 설정들을 하겠습니다. 우선 호스트이름과 로컬 hosts파일에 접속해 필요한 설정들을 해줍니다.
위의 화면은 로컬 hosts파일에 접속한 화면입니다. 기존의 127.0.1.1 DNS 밑에 '192.168.0.1 DNS.korea.com DNS'를 추가해줌으로써 192.168.0.1은 FQDN이 DNS.korea.com이고 호스트이름은 DNS라는 것을 명시하여주었습니다. (FQDN : Full Qualified Domain Name, 도메인의 전체 이름)
위의 화면은 /etc/hostname 파일에 자신의 호스트이름을 명시해 준 모습입니다. 다음으로 필수가 되는 IP를 설정하도록 하겠습니다.
위의 화면을 보시면 기존의 Debian 8과는 꽤 바뀐 모습을 확인할 수 있습니다. 우선 NIC(Network Interface Card)이름이 eth0, eth1 이런식에서 ens33, ens37 과 같은 식으로 바뀌었습니다. 또 번거롭게 netmask 255.255.255.0 할 필요 없이 IP뒤에 prefix 값만 적어주어도 되도록 편리해졌습니다. 게이트웨이는 현재의 토폴로지에서는 필요없기 때문에 적어주지 않았습니다.
IP를 설정해주었다면 'service network interface'명령어를 통해 네트워크를 재시작해줍니다. 그러면 위와 같이 제대로 된 설정이 보입니다. IP 설정까지 잘 되었다면 'bind9' 패키지를 깔아주도록 합니다. 'bind9'은 Debian에서 DNS를 실행하기 위해 사용하는 패키지입니다.
설치가 완료되면 /etc/bind/named.conf 파일로 접속해보도록 하겠습니다.
파일에 접속하면 위와 같은 화면을 보실 수 있습니다. 9~11 번 문장은 각 문장의 경로에 있는 파일을 참조한다는 구문입니다. 11번째 정상적인 서버라면 루트 DNS가 존재하고 해당 루트 서버로부터 정보를 받아야하기 때문에 필요하지만 현재의 토폴로지에서는 Master 서버 하나만 존재하기 때문에 주석처리 해주었습니다. 주석처리를 해준 후 /etc/bind/named.conf.local 파일에 접속해줍니다.
처음 접속하면 1~7번 줄 까지밖에 없는 공백의 화면을 보실 수 있습니다. 이제 위의 화면처럼 필요한 도메인에 대한 정보들을 기재해 주시면 됩니다. 아래는 기본 형식입니다.
zone "korea.com" { // 도메인에 대한 선언입니다. 저는 'korea.com'이라는 도메인을 선언했습니다.
type master; // 이 서버는 master 서버로 동작한다는 선언입니다.
file "/var/cache/bind/korea.com.zone"; // 해당 도메인에 대한 레코드는 /var/cache/bind/korea.com.zone에 있습니다.
※ 여기서 /var/cache/bind/까지의 경로는 무조건 같아야 합니다.
allow-query { ( any | A.B.C.D ) }; // 요청을 허락한다는 문구입니다. any로 하면 모든 IP로부터이고 A.B.C.D는 특정 IP로부터 입니다. 생략 가능
allow-update { ( any | A.B.C.D ) }; // 업데이트 요청을 허락한다는 문구입니다. DDNS 구축시에 사용합니다.
생략 가능
notify yes;
};
zone "0.168.192.in-addr.arpa" { // 위는 정방향에 대한 설정이고 아래는 역방향에 대한 설정입니다.
type master; // 내용은 정방향과 같습니다.
file "/var/cache/bind/korea.com.rev";
allow-query { ( any | A.B.C.D ) };
allow-update { ( any | A.B.C.D ) };
notify yes;
};
기본 형식은 위와 같습니다. 필요에 맞게 수정하여 설정해주시면 됩니다. 참고로 DNS에는 정방향과 역방향이라는 것이 존재하는데 역방향을 꼭 설정하지는 않아도 됩니다.
※ 정방향 : 도메인에 대한 IP를 물어보는 요청
역방향 : IP에 대한 도메인을 물어보는 요청
위와 같이 정방향과 역방향에 대한 설정이 끝났다면 이제 레코드를 수정해주도록 합니다. 위의 과정은 해당 도메인에 대한 정보가 어느 파일에 있고 어떻게 관리할 것인가에 대한 설정이었다면 이제부터는 해당 도메인에 대한 레코드(호스트와 IP를 매칭시켜놓은 정보)가 무엇이 있고 추가, 삭제할 때 접속하는 파일입니다. 우선 이 파일들을 생성하기 위해 복사를 해줍니다.
cp /etc/bind/db.local /var/cache/bind/korea.com.zone
cp /etc/bind/db.127 /var/cache/bind/korea.com.rev
처음 접속하면 위와 같은 화면을 볼 수 있습니다. 이제 :을 누르고 '%s:localhost:korea.com:g'를 입력해줍니다. 그러면 localhost라는 부분이 모두 korea.com으로 바뀌는 것을 볼 수 있습니다.
이제 필요한 레코드들을 기재해주면 됩니다. 우선 로컬 서버의 호스트인 DNS를 적어주도록 합시다.
호스트를 기재하기 전에 '@ IN A [ local IP ]'를 꼭 기재해주셔야 합니다. 그래야 DNS가 동작하면서 해당 서버의 IP를 확인할 수 있고 DNS 서버로 지정된 서버가 맞는지 확인할 수 있습니다.
위의 문구를 기재했다면 이제 필요한 설정들을 해줍니다. 로컬 서버인 DNS를 추가해보겠습니다. 아래의 문구만 적어주면 됩니다.
DNS IN A 192.168.0.1
여기서 알 수 있는 것은 DNS라는 호스트는 192.168.0.1이라는 IP와 매칭시킨다는 것을 알 수 있습니다. 정방향에 대한 설정이 끝났으면 역방향에 대한 설정도 해보도록 하겠습니다. 아까 복사했던 /var/cache/bind/korea.com.rev 파일로 들어가줍니다.
접속하면 위와 같은 화면을 볼 수 있습니다. 여기서도 아까와 같이 ':%s:localhost:korea.com:g'를 입력해줍니다. 그러면 'localhost'라고 써있던 부분들이 'korea.com'으로 바뀌는 것을 확인할 수 있습니다.
여기서는 정방향과 다르게 입력해주어야 합니다. 아까는 'host' IN A 'IP 순서였다면 이번에는 'IP' IN PTR 'host'순서대로 적어주어야 합니다. 또 IP를 적을때도 IP를 전체 다 적어주는 것이 아니라 위처럼 끝의 옥탯만 적어주면 됩니다. 위에서는 DNS라는 호스트의 IP가 192.168.0.1이기 때문에 1만 적어주었습니다.
설정이 모두 끝났으면 /etc/resolv.conf 파일로 접속해줍니다. 그 후 'nameserver 192.168.0.1'이라고 적어줌으로써 DNS 서버는 192.168.0.1이라는 것을 명시해줍니다. 이제 파일을 나간 후 'service bind9 restart'를 입력하고 'service bind9 status'를 통해 정상적으로 작동하는지 확인해줍니다.
Active : active(running)이라고 뜨는 것을 보아 정상적으로 작동하는 것을 확인할 수 있습니다. 이제 nslookup을 통해 조회를 해보도록 하겠습니다.
nslookup으로 조회환 결과 레코드에 작성했던 IP를 제대로 가져오는 것을 확인할 수 있습니다. 이상으로 Master DNS 서버에 대한 포스팅을 마치도록 하겠습니다.
'Server > Debian(Linux)' 카테고리의 다른 글
Debian - RAID (0) | 2019.03.06 |
---|---|
Debian 9 IP 설정 (0) | 2018.11.14 |
Debian 9.2 Install (0) | 2018.11.07 |