Last Updated on 10월 26, 2021 by Jade(정현호)
DNS(Domain Name Service) 란
도메인 네임 시스템(DNS) 는 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행하는 시스템 입니다.
특정 컴퓨터(서버)의 IP주소를 찾기 위해, 사람이 이해하기 쉬운 도메인 이름을 숫자로 된 식별 번호(IP 주소)로 반환 해주는 일을 하고 IP를 반환 받은 후 IP를 통해 접속 하고자 하는 컴퓨터(서버)에 접속을 하게 됩니다.
DNS 는 이런 역활과 서비스 제공을 하는 시스템 입니다.
작업 환경
OS: Centos 7.8
작업 수행은 root 로 진행 하였습니다.
DNS - Bind 설치 및 설정
BIND(berkeley internet name domain)는 DNS를 구현한 소프트웨어의 하나로 가장 오래된 도메인 서비스 시스템 으로 유닉스(unix) 및 리눅스(linux), 윈도우 등 거의 모든 플랫폼을 지원하는 DNS의 모든 기능을 갖춘 소프트웨어 입니다.
설치 -Bind
[root]# yum -y install bind bind-libs bind-utils bind-chroot
/etc/named.conf 설정
네임 서버 데이터 베이스, root zone파일 위치, root 파일, 키 파일, 접속 제어 관련 된 내용을 설정하는 파일로 bind 설정 파일 중에서 중요한 역할을 하는 파일 입니다.
// (슬러쉬) 2개는 주석를 의미 합니다.
[root]# vi /etc/named.conf options { version "Unknown"; listen-on port 53 { any; }; //listen-on port 53 { 127.0.0.1; } listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; //allow-query { localhost; }; allow-query { any; };
간단 설명
version "Unknown"; 보안을 위해 Unknown 으로 설정
listen-on port 53 { any; }; 53번 포트 외부 접근 허용
allow-transfer { none; }; DNS서버를 1대만 운영할 경우 none
directory "/var/named"; 도메인의 zone파일의 위치 지정
dump-file "/var/named/data/cache_dump.db"; 정보가 갱신될 때 저장되는 파일
statistics-file "/var/named/data/named_stats.txt"; 통계파일이 생성되는 절대경로와 파일이름 지정
memstatistics-file "/var/named/data/named_mem_stats.txt"; 메모리 관련 통계 파일
allow-query { any; }; 외부에서 오는 query를 허용할 IP 혹은 IP대역 설정
named.rfc1912.zones 파일 설정
named.rfc1912.zones 파일을 새로운 도메인에 대한 Zone을 추가 하면 됩니다.
여기에서 추가할 zone 도메인은 hoing.io 으로 진행 하겠습니다.
그리고 zone 영역에 해당하는 설정 파일은 /var/named 아래에 위치 하게 됩니다
[root]# vi /etc/named.rfc1912.zones
zone "hoing.io" IN {
type master;
file "hoing.io.zone";
allow-update { none; };
};
zone 파일 생성
/var/named 위치에서 아래의 내용대로 zone 파일을 생성 하도록 하겠습니다.
[root]# cd /var/named [root]# vi hoing.io.zone $TTL 3600 @ IN SOA ns.hoing.io. ( 1 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum IN NS ns.hoing.io. IN A 192.168.56.104 ns IN A 192.168.56.104 www IN A 192.168.56.104
파일 소유권 변경
[root]# chown root:named /var/named/hoing.io.zone
설정이 잘 되었는지 확인
named-checkconf 와 named-checkzone 을 통해 설정을 체크 합니다.
named-checkconf는 문제가 없다면 메세지가 나오지 않으며 named-checkzone 는 OK 메세지가 리턴 됩니다
[root]# named-checkconf /etc/named.rfc1912.zones [root]# named-checkconf /etc/named.conf [root]# named-checkzone hoing.io /var/named/hoing.io.zone zone hoing.io/IN: loaded serial 1 OK -> named-checkzone 는 결과가 나옴
Bind 재시작 및 확인
[root]# systemctl restart named
[root]# systemctl status named
방화벽에서 80, 53번 포트 오픈 및 확인
[root]# firewall-cmd --permanent --zone=public --add-service=dns
[root]]# firewall-cmd --permanent --add-port=80/tcp
[root]# firewall-cmd --reload
[root]# firewall-cmd --list-all
접속 테스트 및 확인
먼저 apache 기본 페이지를 만들도록 하겠습니다.
파일이 있다면 이 과정을 생략 합니다.
[root]cd /var/www/html [root]# vi index.html ## 아래 내용으로 파일을 생성 합니다. <html><body><h1>It works!</h1> <p>This is the default web page for this server.</p> <p>The web server software is running but no content has been added, yet.</p> </body></html>
OS에서 아래와 같이 DNS 주소를 위에서 설정한 서버로 변경합니다
그리고 웹브라우저와 ping 을 통해서 설정한 도메인에 해당하는 내부 IP 정보로 접속이 가능한 것을 확인 할 수 있습니다.
도메인 구입 시 설정 방법
외부에서 접속이 가능한 서버에서 DNS(Bind)를 설치 및 구성을 완료 하였을 경우 구입한 도메인을 구축한 DNS 로 관리하기 위해서는 도메인 구입 사이트에서 Name Server 변경을 진행 하면 됩니다.
구매한 서비스 사이트에 접속하여 메뉴 등의 항목을 통해 아래와 같이 네임서버 정보 변경을 할 수 있는 페이지에 접속 할수 있습니다.
아래와 같이 자체 구축한 DNS 정보를 도메인 구입 사이트에서 설정/변경 하면 됩니다.
실제 도메인을 통해 DNS 에 대한 구성에 관한 테스트가 필요 할 경우에는 freenome 을 통해 도메인을 무료로 발급 받은 후 테스트도 해볼수 있습니다.
이어지는 글
연관된 다른 글
Principal DBA(MySQL, AWS Aurora, Oracle)
핀테크 서비스인 핀다에서 데이터베이스를 운영하고 있어요(at finda.co.kr)
Previous - 당근마켓, 위메프, Oracle Korea ACS / Fedora Kor UserGroup 운영중
Database 외에도 NoSQL , Linux , Python, Cloud, Http/PHP CGI 등에도 관심이 있습니다
purityboy83@gmail.com / admin@hoing.io