출처 : https://www.youtube.com/watch?v=bJvA-JxhfKE
도메인 이름 체계
- 초창기 인터넷에서는 1대의 네임 서버만으로도 충분히 IP 주소와 이름의 관리가 가능
- 하지만 인터넷이 폭발적으로 확장되면서, 몇 대의 네임 서버로는 실시간으로 인터넷 상의 수많은 컴퓨터들을 관리할 수 없게 되었음
- 트리 구조와 같은 '도메인 이름 체계'를 고안함
- 제일 최상단의 네임 서버인 root domain name server가 하위에 1단계 네임 서버인 net, com, org 등의 네임 서버와 국가 도메인인 kr, fr, jp 네임 서버를 관리한다. 그리고 1단계 네임 서버가 그 아래의 2단계 네임 서버들을 관리한다. 예를 들어, com 네임 서버는 nate, google, naver 등의 2단계 도메인을 관리하는 네임 서버들만 관리한다.
- 위 그림에서 각 회사의 네임 서버들이 회사의 웹 서버, ftp 서버, mail 서버 등을 관리하고, 1단계 네임 서버들이 각 회사의 네임 서버를 관리하는 형식으로 이루어져있는 것이다.
로컬 네임 서버가 작동하는 순서
- PC가 사용하는 네임 서버가 /etc/resolv.conf 파일에 "nameserver IP주소" 로 설정되어 있는데, 이 네임 서버를 로컬 네임 서버라고 부른다.
- 그래서 www.nate.com의 IP 주소를 요구하면 이 로컬 네임 서버에 질문을 한다.
- 로컬 네임 서버는 의외로 아는 것이 별로 없다. 로컬 네임 서버가 혼자서 전 세계의 모든 컴퓨터의 도메인 이름을 관리할 수는 없기 때문에 위 그림과 같이 동작하게 된다.
- PC의 웹 브라이저 주소창에 www.nate.com을 입력한다.
- PC가 리눅스일 경우 /etc/resolv.conf 파일을 열어서 'nameserver 네임서버IP' 부분을 찾아 로컬 네임 서버 컴퓨터를 알아낸다.
- 로컬 네임 서버에 www.nate.com의 IP 주소를 묻는다.
- 로컬 네임 서버는 자신의 캐시 DB를 검색해 www.nate.com의 정보가 들어있는지를 확인한다. (만약 정보가 있다면 바로 응답하지만, 대개는 정보가 없다.)
- 로컬 네임 서버가 'ROOT 네임 서버'에 www.nate.com의 IP 주소를 묻는다.
- 'ROOT 네임 서버'도 www.nate.com의 주소를 모르면 'com 네임 서버'의 주소를 알려주며 'com 네임 서버'에게 물어보라고 한다.
- 로컬 네임 서버가 'com 네임 서버'에게 www.nate.com의 주소를 묻는다.
- 'com 네임 서버'도 www.nate.com의 주소를 모르면 'nate.com'을 관리하는 네임 서버의 주소를 알려주며 'nate.com 네임 서버'에게 물어보라고 한다.
- 로컬 네임 서버가 'nate.com 네임 서버'에게 www.nate.com의 주소를 묻는다.
- 'nate.com 네임 서버'는 네이트에서 구축한 네임 서버이므로 OOO.nate.com이라는 이름을 가진 컴퓨터를 모두 안다. IP 주소를 알려준다.
- 로컬 네임 서버는 www.nate.com의 IP 주소를 요구한 PC에게 IP 주소를 알려준다.
- PC는 획득한 IP 주소로 접속을 시도한다.
참고로 위 방법은 Iterated query 방식이다. recursive query 방식으로도 동작하기도 한다. 자세한 내용은 네트워크 항목 참고.
캐싱 전용 네임 서버
- PC에서 URL로 IP 주소를 얻고자 할 때, 자신이 관리하지는 않지만 외부에 나가서 해당하는 URL의 IP 주소를 알려주는 네임 서버를 의미한다. 위 예시에서는 로컬 네임 서버가 캐싱 전용 네임 서버가 되는 것이다. (우리가 저번 시간에 쓴 192.168.111.2)
- 이번에는 vmware에서 제공하는 네임 서버(192.168.111.2)를 쓰지 않고 우리의 server 가상 머신(192.168.111.100)을 캐싱 전용 네임 서버로 만들어보자.
캐싱 전용 네임 서버 구축
실습 목표
- Server 가상 머신을 캐싱 전용 네임 서버로 만든다.
- 네임 서버와 관련된 패키지를 설치하고, 설정 파일을 수정한다.
실습
Server 가상 머신을 초기화하고 부팅한 다음, root 사용자로 접속한다.
패키지 설치
네임 서버와 관련된 패키지를 설치한다.
dnf -y install bind bind-chroot
gedit 에디터로 named.conf 파일을 열고 수정한다.
gedit named.conf
11행 : listen-on port 53 { 127.0.0.1; }; -> listen-on port 53 { any; };
12행 : listen-on-v6 port 53 { ::1; }; -> listen-on-v6 port 53 { none; };
19행 : allow-query { localhost; }; -> allow-query { any; };
33행 : dnssec-validation yes; -> dnssec-validation no;
서비스(데몬)을 작동한다. 네임 서버의 서비스 이름은 'named' 이다. Active가 active (running) 상태로 잘 동작하고 있다.
systemctl restart named -> 재시작(stop + start)
systemctl enable named -> 네임 서버 상시 가동
systemctl status named -> 네임 서버 상태 확인
방화벽 설정
방화벽 설정으로 들어가 설정을 영구적으로 바꾼 다음, 서비스의 dns 를 체크해준다. 옵션 -> firewalld 다시 불러오기를 눌러서 저장을 해준다.
firewall-config
네임 서버가 잘 작동하는지 확인해보자. dig @네임서버IP 조회할URL 형식으로 명령을 입력하면 된다. 여기서는 네이트를 입력해 본 결과 잘 작동하는 것을 확인할 수 있다. www.nate.com 의 IP 주소 120.50.131.112를 웹 브라우저 주소창에 입력하면 네이트 홈페이지가 나타나게 된다.
dig @192.168.111.100 www.nate.com -> 192.168.111.100은 현재 server 가상 머신의 IP 주소
nslookup 명령을 실행해 작동 테스트를 할 수 있다.
nslookup
server 192.168.111.100
www.nate.com
exit
외부 클라이언트 X 윈도우 환경(Client 가상 머신)에서 동작하기
Client 가상 머신으로 방금 구축한 server 가상 머신에서 설정한 네임 서버를 사용하도록 변경해보자. Client 가상 머신을 초기화하고 부팅한다.
client 가상 머신에서 우리가 만든 server 가 네임 서버를 고정적으로 사용하도록 지정한다. gedit 에디터로 /etc/resolv.conf 파일을 열고 nameserver 뒤의 IP 주소를 server 가상 머신의 IP 주소인 192.168.111.100으로 변경한다.
su -c 'gedit /etc/resolv.conf'
파이어폭스를 실행하면 웹 사이트들이 잘 들어가진다. 우리가 만든 네임 서버가 Iterated query 방식으로 잘 작동하고 있음을 의미한다.
텍스트 모드 환경(server B 가상 머신)에서 확인하기
다음은 server(B) 가상 머신으로 텍스트 모드에서 server 가상 머신에 설정한 네임 서버를 사용하도록 만들어보자.
root 사용자로 접속해 nano 에디터로 /etc/resolv.conf 파일을 수정한다.
nameserver의 IP 주소를 server의 IP 주소인 192.168.111.100 으로 변경한다. nano 에디터를 저장하고 나가는 건 ctrl+x -> y -> enter 를 누르면 된다.
nslookup 명령을 입력해 네임 서버가 잘 작동하는지 확인할 수 있다. server를 입력하면 우리의 server 가상 머신이 네임서버로 동작하고 있고, 네이트닷컴의 IP 주소를 잘 알려주고 있다.
nslookup
server
www.nate.com
exit
Windows 환경(Winclient 가상 머신)에서 확인하기
Winclient 가상 머신을 초기화하고 부팅한다.
제어판 -> 네트워크 및 인터넷 -> 네트워크 및 공유센터 -> Ethernet0 상태 -> Ethernet0 속성 -> 인터넷 프로토콜 버전 4(TCP/IPv4) 속성에서 DNS 서버 주소를 우리의 server 가상 머신의 IP 주소를 입력한다.
네이트 홈페이지가 잘 접속된다.
'Study > 이것이 리눅스다 with Rocky Linux 9' 카테고리의 다른 글
9장. 네임 서버 설치 및 운영 (4) - 라운드 로빈 네임 서버 (0) | 2024.01.02 |
---|---|
9장. 네임 서버 설치 및 운영 (3) - 마스터 네임 서버 (1) | 2024.01.02 |
9장. 네임 서버 설치 및 운영 (1) - 네임 서버의 개념과 작동 (1) | 2023.12.31 |
8장. 원격지 시스템 관리 (3) - XRDP 서버 (1) | 2023.12.31 |
8장. 원격지 시스템 관리 (2) - OpenSSH 서버 (0) | 2023.12.30 |