실습 과제
이번에는 실습과제로 라운드 로빈 방식의 네임 서버를 구현해 보았다.
우선 Server(b)에 Round Robin DNS를 설정한다. vi에디터로 /etc/bind/named.conf.local 파일을 아래와 같이 편집한다.

다음으로, vi에디터로 /etc/bind/(네임서버이름).com.db 파일을 아래와 같이 생성한다. 이때, webserver 옆의 3개의 IP주소는 본인이 자유롭게 입력하면 된다. 나의 경우 수업 시간에 실습할 때 사용하였던 교보문고, 알라딘, yes24의 IP주소를 그대로 다시 사용하였다.
파일을 저장한 후 named-checkconf 명령을 입력하면 생성한 파일 내용 중에 문법적인 오류가 없는지 검사할 수 있다.

이후 systemctl restart named 명령을 입력하고 Client(Kubuntu)에 접속하여 nslookup 명령으로 새로 생성한 네임서버의 IP주소를 확인하였다. 이때, server의 IP주소를 Server(b)로 변경한 상태에서 확인해야 한다!

다음으로 웹브라우저에서 네임서버가 제대로 작동하는지 확인하였다. 우선, vi에디터로 /etc/resolv.conf파일을 열어 기존의 네임서버를 주석 처리하고 nameserver (Server(b)의 IP주소)를 입력하여 저장한다.

그 후 파이어폭스에서 주소창에 새로 생성한 네임서버의 주소를 입력해보았다. 아래 영상을 확인해보면 네임서버에 저장해놓은 3개의 사이트 주소 중 교보문고 사이트에 접속되는 것을 확인할 수 있다.
새로 배운 내용
이번 수업에서는 Git-Bash를 이용한 원격접속, name server system, 캐싱 전용 네임서버, Round Robin DNS에 대해 공부하였다. 우선 Git-Bash를 사용한 우분투 Server(b) 원격접속 방법은 다음과 같다.
우선 Server(b)에 adduser명령으로 원격접속 사용자를 생성한다. 다음으로 apt 명령으로 openssh-server를 설치한 후 systemctl 명령으로 openssh가 동작될 수 있도록한다.

ufw 명령으로 22번 포트를 허용해주고(이는 openssh가 22번 포트를 사용하기 때문이다!) 아래 링크에서 본인 노트북의 OS에 맞는 Git-Bash를 설치한다.
Git - Downloads
Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp
git-scm.com
이후 이것을 실행시켜 ssh (사용자ID)@(IP주소)를 입력하고 해당 사용자의 password를 입력하면 linux Server(b)에 원격 접속할 수 있다.

이렇게 긴 명령을 입력하는 것이 귀찮다 싶으면, .ssh config 설정을 변경하여 좀 더 간편하게 접속할 수도 있다. 우선 vim ~/.ssh/config 명령을 입력한 후 다음과 같이 입력하고 저장한다.

이 다음부터는 긴 명령을 입력할 필요 없이 ssh server-b를 입력하고 password를 입력하면 바로 원격 접속이 가능하다.

다음으로, DNS(Domain Name System)이란 도메인 이름을 IP주소로 변환하거나 IP주소를 도메인 이름으로 변환하는 작업을 수행하는 시스템이다. 우분투의 경우 이를 관리하는 프로그램으로 BIND를 사용한다. 우분투 Server나 데스크톱 버전의 터미널에서 nslookup명령을 사용하면 server나 도메인 이름의 IP주소를 조회해볼 수 있다.

또한 ping 명령으로 해단 도메인으로 접속이 잘 되는지 확인해 볼 수도 있다.

vi에디터로 /etc/resolv.conf 파일에 들어가보면 nameserver내용을 확인할 수 있는데, 이를 주석 처리할 경우 도메인 네임을 통한 접속이 불가능해진다. 도메인 이름의 IP주소를 확인할 수 있는 네임서버의 주소를 지워버렸으니 당연하게도 도메인 이름을 통한 접속이 안되는 것이다. 하지만 IP주소를 통한 접속은 가능하다. 아래 사진은 /etc/resolv.conf 파일에서 nameserver의 내용을 주석 처리한 뒤 ping명령을 통해 도메인 이름과 IP주소로 각각 신호를 보내본 것이다.

하지만 아래와 같이 vi에디터로 /etc/hosts 파일에 IP주소와 도메인 이름을 입력해놓으면 해당 도메인 이름으로는 계속 접속이 가능하다.


다음으로 캐싱 전용 네임 서버에 대한 실습을 해보았다. 캐싱 전용 네임서버란 사설 네트워크 내에서, URL을 통한 IP주소를 얻고자할 때 사용할 수 있는 네임 서버이다. 굳이 외부의 네임 서버에 접속할 필요가 없다는 장점이 있다.
이를 사용하기 위해서는 우선 Server(b)에 apt명령어로 bind9와 bind9utils가 설치되어야 한다. 설치가 되었으면 vi에디터로 /etc/bind/named.conf.options에 들어가 dnssec-validation 옆의 글자를 no로 바꾸고 그 아래에 다음과 같이 2줄의 내용을 추가한다.

그 후 systemctl명령으로 named를 동작시키고 방화벽에서 53번 포트를 허용한다. 그 후 nslookup명령에서 server의 IP주소를 Server(b)로 변경하면된다. 도메인 이름을 입력하였을 때 IP주소가 잘 조회되는 것을 확인할 수 있다.

이를 우분투 Server(데스크톱 버전)에서도 사용할 수가 있는데, Server의 터미널에서 nslookup명령을 입력하고 server의 IP주소를 Server(b)로 변경한 후 도메인 이름을 검색하던지, 아니면 /etc/resolv.conf 파일에서 기존의 네임 서버 내용을 주석 처리하고 Server(b)의 IP주소를 저장한 후 도메인 이름을 입력하여도 된다. 아래 두 장의 사진 중 첫번째는 nslookup에서 바로 server의 IP주소를 변경하여 도메인 이름을 검색한 것이고, 두번째는 /etc/resolv.conf 파일에 Server(b)의 IP주소를 등록하고 구글의 도메인 주소로 신호를 보내본 것이다.


마지막으로 Round Robin DNS란 여러 대의 웹 서버의 IP주소를 등록해놓고 클라이언트가 서비스를 요청할 경우 등록되어 있는 IP주소로 각각 분산하여 서비스를 제공해 줌으로써 웹 서버의 부하를 줄이는 방식이다. 이것을 설정하는 방법은 위의 '실습과제'에 잘 나와 있으니 생략하도록 하겠다.
문제가 발생하거나 고민한 내용
이번 실습 중, 캐싱 전용 네임 서버를 구축하고 이를 우분투 Server에서 사용해보는 과정에서 약간의 어려움이 있었다. 처음에 모르고 Server(b)를 종료한 상태에서 Server에 접속해 nslookup명령을 입력하고 server의 IP주소를 server(b)로 변경한 뒤 도메인 이름을 검색하였는데 계속 검색이 되지 않았다. 혹시나하는 마음에 Server(b)를 다시 동작시킨 후 다시 Server에서 도메인 이름을 검색해보았더니 정상적으로 IP주소가 조회되는 것을 확인할 수 있었다. Server(b)에 캐싱 전용 네임 서버를 구축해놓고 이를 종료해버리니 Server에서 IP주소를 검색하려 해도 되지 않았던 것 같다.
참고할 만한 내용
아래 사이트는 내가 BIND에 관한 추가적인 내용을 알아보고 싶어 찾아본 사이트이다.
https://www.inetdaemon.com/tutorials/internet/dns/configuration/BIND/
Berkely Internet Name Daemon (BIND) - InetDaemon's IT Tutorials
The Berkeley Internet Name Daemon (BIND) is the de facto standard for DNS servers. Development of BIND is funded and supported by Sun, HP, IBM, SGI, the US DISA and USENIX, all of whom contribute funding or code (or both) to support DNS. BIND stands for Be
www.inetdaemon.com
회고
이번 실습은 네임 서버를 직접 구축해보고 사용해보아 굉장히 흥미로웠다. 도메인 이름을 IP주소로 변경하여 인터넷이 접속을 하게 된다는 것은 알고 있었는데, 캐싱 전용 네임 서버를 통해 외부의 네임서버를 통하지 않고도 IP주소에 접속할 수 있다는 내용은 새로웠다. 또한 Round Robin DNS를 통해 웹 서버의 부하를 조절할 수 있다는 것 또한 새로운 내용이었고, 네임 서버를 구축하는 것이 생각보다 간단하다는 것도 알 수 있었다. 다음주에 배우게 될 메일 서버 구축을 통해서 또 어떠한 새로운 내용을 접하게 될지, 기대하는 중이다.
'Linux 실습일지' 카테고리의 다른 글
Linux 실습일지(13) - Web Server (0) | 2023.02.02 |
---|---|
Linux 실습일지(12) - Mail Server (0) | 2023.02.02 |
Linux 실습일지(10) - VNC Server (1) | 2023.02.02 |
04 프로그램 개발 환경 구축 (0) | 2023.02.02 |
03 백업 자동화 (0) | 2023.02.02 |