728x90
DNS 란?
Ip 주소를 도메인 형식(문자열 형식) 으로 변환해주는 서비스이다.
Domain Name 이란?
- 네트워크에 연결되어 있는 모든 시스템에는 숫자의 조합으로 구성되는 주소를 가지고 있다. 하지만 이런 주소를 모두 다 외우기는 불가능 하므로 알파벳으로 이루어지는 도메인 이름을 사용한다.
- 도메인 이름은 영문자 (a-z), 숫자 (0-9), 특수기호 ( - ) 를 합쳐 총 37개의 글자 조합으로 나타낼 수 있다.
DNS 구조
- 클라이언트에서 어떤 IP 주소에 대해 질문을 날렸으면 /etc/resolv.conf 에 저장된 로컬 도메인 서버에서 먼저 검색을 한다.
- 로컬 도메인 서버가 주소를 알지 못한다면 .(루트) 도메인 서버에 질문 날린다. 루트 도메인 서버는 www.naver.com 에 대한 주소를 갖는 com 도메인 서버 주소를 알려준다.
- com 도메인 서버가 naver 를 담당하는 서버의 주소를 알려준다.
- naver 도메인 서버가 www.naver.com 의 주소를 로컬 도메인 서버에 알려준다.
- 로컬 도메인 서버는 해당 주소를 클라이언트에게 전달해준다.
정방향 DNS 구성 과정
- $ yum install -y bind bind-utils
- $ ip route 명령어를 사용하여 enp0s3 에 연결된 default via 를 통해 enp0s3 의 게이트웨이를 확인할 수 있다. 여기선 enp0s3 의 게이트웨이가 10.0.2.2 로 세팅되어 있다고 가정한다.
- $ nmcli con add con-name static3 ifname enp0s3 type ethernet ip4 10.0.2.10/24 gw4 10.0.2.2 => enp0s3 는 내부용 인터페이스이고 고정 IP 로 세팅한다.
- $ nmcli con mod static3 ivp4.dns 10.0.2.10 => static3 의 dns 를 10.0.2.10 으로 세팅한다.
- $ nmcli con up static3
- $ ip addr show enp0s3 => inet 이 10.0.2.10/24 로 설정됐는지 확인한다.
- $ vi /etc/named.conf
- options 에서 listen-on port 53 { any; }; 로 listen-on v6 port 53 { none; }; 으로 allow-query-cache { any; }; 로 수정
- 맨 아래에 zone 을 추가해준다.
zone "도메인 이름" IN { type master; file “도메인 이름.zone"; };
- $ cp named.empty 호스트 이름.zone
- $ vi 호스트 이름.zone 아래처럼 수정한다. test.example.com.zone 과 test.example.com 은 호스트 이름으로 치환해주면 된다. 그리고 아래에 dns, www, ftp, mail, blog 로 시작하는 XXX.test.example.com 에 대한 ip 주소들을 세팅해준 것이다. (dns.test.example.com, www.test.example.com, ftp.test.example.com, mail.test.example.com, blog.test.example.com)
- $ chmod 660 호스트 이름.zone, $ chown :named 호스트 이름.zone 으로 파일의 권한과 소유권을 변경
- $ systemctl start named
- $ firewall-cmd --add-service=dns --permanent
- $ firewall-cmd --reload
- $ vi 호스트 이름.zone 아래처럼 수정한다. test.example.com.zone 과 test.example.com 은 호스트 이름으로 치환해주면 된다. 그리고 아래에 dns, www, ftp, mail, blog 로 시작하는 XXX.test.example.com 에 대한 ip 주소들을 세팅해준 것이다. (dns.test.example.com, www.test.example.com, ftp.test.example.com, mail.test.example.com, blog.test.example.com)
- $ host www.test.example.com 을 치면 named.conf 에 입력해놓은 ip 주소인 10.0.2.20 을 리턴받는다.
역방향 DNS 구성 과정
- $ yum install -y bind bind-utils
- $ nmcli con add con-name static3 ifname enp0s3 type ethernet
- $ nmcli con mod static3 ipv4.method manual ipv4.address 10.0.2.10/24 ivp4.dns 10.0.2.10 ipv4.gateway 10.0.2.2
- $ nmcli con up static3
- $ ip addr show enp0s3 => inet 이 10.0.2.10/24 로 설정됐는지 확인한다.
- $ vi /etc/named.conf
- options 에서 listen-on port 53 { any; }; 로 listen-on v6 port 53 { none; }; 으로 allow-query-cache { any; }; 로 수정
- 맨 아래에 zone 을 추가해준다.
# dns ip주소 3번째 자리까지 역순.in-addr.arpa # 10.0.2 의 역순.in-addr.arpa zone "2.0.10.in-addr.arpa" IN { type master; # 파일명은 보기 쉽게 정하면 된다. file “10.0.2.0.zone"; };
- $ cp named.empty 10.0.2.0.zone
- $ vi 10.0.2.0.zone 아래처럼 수정한다. test.example.com 은 호스트 이름으로 치환해주면 된다. 그리고 아래에 dns, www, ftp, mail, blog 로 시작하는 test.example.com 에 대한 ip 주소들을 세팅해준 것이다. (dns.test.example.com, www.test.example.com, ftp.test.example.com, mail.test.example.com, blog.test.example.com)
- $ chmod 660 10.0.2.0.zone, $ chown :named 10.0.2.0.zone 으로 권한과 소유권을 변경
- $ systemctl start named
- $ firewall-cmd --add-service=dns --permanent
- $ firewall-cmd --reload
- $ vi 10.0.2.0.zone 아래처럼 수정한다. test.example.com 은 호스트 이름으로 치환해주면 된다. 그리고 아래에 dns, www, ftp, mail, blog 로 시작하는 test.example.com 에 대한 ip 주소들을 세팅해준 것이다. (dns.test.example.com, www.test.example.com, ftp.test.example.com, mail.test.example.com, blog.test.example.com)
- $ host -t PTR 10.0.2.20 을 치면 named.conf 에 입력해놓은 도메인 주소인 www.test.example.com 을 리턴받는다.
새로운 가상 머신에서 DNS 서버를 통해 test.exampl.com 의 IP 주소 받기
새로운 가상 머신을 하나 만들고 네트워크 설정을 해준다.
$ nmcli con add con-name static3 ifname enp0s3 type ethernet
$ nmcli con mod static3 ipv4.method manual ipv4.address 10.0.2.200/24 ipv4.gateway 10.0.2.2 ipv4.dns 10.0.2.10
$ nmcli con up static3
$ host dns.test.example.com
$ cat /etc/resolv.conf 로 dns 서버가 10.0.2.10 으로 변경됐는지 확인한다.
$ hostnamectl set-hostname blog.test.example.com
$ ping dns.test.example.com 해당 명령어를 실행했을 때 핑이 제대로 나간다면 dns 서버에 연결이 잘 된 것이다.
$ host dns.test.example.com host 명령어를 사용하여 해당 도메인이 dns 서버의 .zone 파일에 입력됐다면 IP 주소를 반환해준다.
728x90