본문 바로가기

개발공부/컴퓨터시스템관리

[컴퓨터시스템관리] 11주차 실습일지

● 실습 과제 결과

<라운드 로빈 방식의 네임 서버 구현>

• Server 에 “자신의영문이름.com” 네임 서버를 라운드 로빈 방식으로 구현

• 대체 ip 는 3개로 하며, 동작되는 웹 서버 중 아무거나 가져와도 됨

 

www.kyobobook.co.kr -> 211.189.37.30

www.tving.com  -> 13.225.134.38

www.watcha.com  -> 3.34.237.213

 

• 결과확인 : client 의 웹 브라우저에서 “자신의영문이름.com” 으로의 접속 장면과 “자신의영문이름.com” 으로 질의하여 입력된 ip 주소 확인

 

 

-> 설정한 세 개의 대체 IP 중 교보문고의 사이트로 접속되는 것을 볼 수 있다. 

 

● 새로 배운 내용

0. 원격접속 구축

▶ adduser linux 

▶ open ssh 설치 및 설정

apt update

apt install openssh-server

systemctl restart ssh       #openssh 서버의 서비스 재시작

systemctl enable ssh       #server(b)를 동작시킬 때 마다 openssh를 사용하도록 설정 

systemctl status ssh

active (running) 상태인지 확인 

ufw allow 22/tcp       #방화벽 설정 (ssh는 22번 포트를 사용)

ifconfig 

-> ip 주소는 192.168.234.129 임을 확인

 

▶ 클라이언트 프로그램 설치

Git - Downloading Package (git-scm.com) 

 

Git - Downloading Package

Downloading Git Now What? Now that you have downloaded Git, it's time to start using it.

git-scm.com

위 링크에서 Git-Bash 프로그램을 다운받을 수 있다. 

Git-Bash 설치 후 ssh linux@192.168.234.129 입력 (① 방법)

 

mkdir ~/.ssh

vim ~/.ssh/config 후 아래와 같이 입력 

ssh server-b 만 입력하면 접속 가능 (② 방법)

 

1. Domain Name System

▶ Domain Name System, DNS

• 도메인 네임 시스템, 네임 서버

• 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나, 그 반대의 변환을 수행

  (URL -> IP / IP -> URL)

en.wikipedia.org. : 뒤에서부터 읽음, 트리구조로 구성 . -> org -> wikipedia (여기까지는 이름을 나타냄, 물리적인 컴퓨터가 있지는 않음) -> en (실제 물리적인 서버가 있는 곳)

 

▶ Domain Name

• 네트워크 상에서 컴퓨터를 식별하는 호스트명. 좁은 의미로, 도메인 레지스트리에 등록된 이름

   Domain Name은 사람이 이해하기 쉽게 만든 일종의 체계, 컴퓨터는 IP 주소만 사용 

www.google.com -> 172.217.27.68

  ㄴ> 위 링크로 접속할 때, 컴퓨터는 이 URL에 해당하는 IP 주소를 변환하는 작업을 함 : DNS의 역할 

• 우분투는, BIND (Berkley Internet Naming Daemon) 를 사용

 

▶ Local Name Server

• /etc/resolv.conf 에서 nameserver IP 로 설정된 서버

   DNS는 외부에 있음. 반대로 컴퓨터 안에서 사용되는 것이 Local Name Server

웹브라우저에서 어떤 사이트 주소를 입력했을 때, 먼저 하는 것은 컴퓨터 상의 로컬 네임 서버 IP를 확인. 로컬 네임 서버가 해당 주소의 IP를 알고있으면 알려주고 알고있지 않으면 캐시 DB, ROOT 네임서버 등의 네임서버에 문의해서 IP 주소를 찾아냄.

 

▶ nslookup (name server lookup)

• query Internet name servers interactively

• 네트워크 관리 명령 줄 인터페이스 도구

 

1-1. Domain Name System 실습

nslookup

server :  로컬네임서버의 주소 -> 127.0.0.53

(#OO : 포트 번호)

IP 주소로 접속이 되는지 안되는지 확인하는 가장 간단한 방법은 핑을 날려보는 것 

-> 이 때 주소는 172.217.174.100 (할 때마다 바뀜)

 

* 네임서버가 잘 작동하는지 확인하기 

vi /etc/resolv.conf 에서 nameserver~ 부분을 주석처리

-> www.google.com으로 접속했더니 IP 주소를 확인할 수 없다고 오류

-> IP 주소를 입력했더니 핑이 보내짐. 

 

네임서버가 문제가 생겼다고 해서 해당 웹 서버가 멈추었다는 의미는 아님. 이름을 변환해주는 곳에 문제 발생

 

* 컴퓨터에 www.google.com의 IP 주소를 설정하면 도메인 네임 서버에 요청하지 않더라도 컴퓨터 내에서 동작할 수 있음.

vi /etc/hosts에 www.google.com의 IP 주소 입력
핑이 보내짐.

 

2. Caching only Name Server

ㄴ> VM ware에서 자동으로 만들어준 네임서버 이외에 별도로 네임서버를 만들 수 있음. 네임서버에 IP 주소와 URL 주소를 입력하면 거기에 맞는 주소로 변환.

외부의 이미 만들어진 네임서버보다 훨씬 속도가 빠름. (컴퓨터 내부, 가까운 곳에 네임 서버가 있기 떄문에 응답, 접속 속도가 빠름)

 

• Caching only name server 캐싱 전용 네임서버

• PC 에서 URL 로 IP 주소를 얻고자 할 때, 해당하는 URL 의 IP 주소를 알려주는 네임 서버

 

2-2. Caching only Name Server 실습

apt install bind9 bind9utils

네임서버에 대한 설정 파일에서 21~24 줄을 다음과 같이 변경 (set number을 통해 줄 확인)

vi /etc/bind/named.conf.options 
동작되고 있는 것을 확인

방화벽 설정 (네임 서버의 포트는 53번 사용)

 

3. Round Robin DNS

▶ Master Name Server 마스터 네임 서버

john.com 과 같은 도메인에 속해 있는 컴퓨터들 의 이름을 관리하고, 외부에서 www.john.com 이 나 ftp.john.com 등의 컴퓨터 ip주소를 알기 원할 때 해당 컴퓨터의 IP 주소를 알려주는 네임 서버

ftp - 192.168.1.1 / www - 192.168.1.2 => 이런식으로 설정을 해놓음. 요청이 들어오면 1.1, 1.2라고 알려줌 

 

▶ Round Robin 라운드 로빈

• 여러 대의 웹 서버를 운영하여 웹 클라이언트가 서비스를 요청할 경우 교대로 서비스를 실행하여, 웹 서버의 부하를 공평하게 나누는 방식 

www.google.com  / www.youtube.com 실습 시에 IP 주소가 여러 개 나옴. 여러 개의 주소로 분산 

-> 물리적인 웹 서버가 여러 개 있음. 요청이 여러 개 왔을 때 한 곳에 몰리지 않도록. 

 

3-1. Round Robin DNS 실습

www.kyobobook.co.kr -> 211.189.37.30

www.aladin.co.kr -> 211.111.219.12

www.yes24.com -> 61.111.13.51

-> www.sslinux.com  이라는 주소로 들어오면 나눠서 분산 접속할 수 있도록 나눠주는 실습 

 

vi /etc/bind/named.conf

-> If you are just adding zones, please do that in /etc/bind/named.conf.local

 

vi /etc/bind/sslinux.com.db

www로 들어오면 CNAME (별칭 부여) -> webserver.sslinux.com

webserver로 들어오면 대응하는 IP 주소를 3개 설정해준 것 (100, 200, 300이 순서의 역할)

server에서 확인한 결과

 

● 문제 발생 및 해결 과정

오류 1)

ping을 보냈는데 강의 영상에서는 몇 개 보내다가 멈추었는데 나는 멈추지 않고 계속 핑이 보내져서 조금 당황했다. 검색을 통해 Ctrl+C를 누르면 멈출 수 있다는 것을 알게되었다. 

https://m.blog.naver.com/PostView.nhn?blogId=ope8411&logNo=221372860276&proxyReferer=https:%2F%2Fwww.google.com%2F 

 

20181007 [pc] 핑 테스트(ping test) 하는 법

1. 내pc~공유기까지의 핑 테스트 - cmd /kipconfig 로 ip주소 확인 - 실행창에 'ping 10.211.5*.*' 입력 2....

blog.naver.com

위 링크를 참고하였다.

((강의 영상을 조금 더 재생해보니 교수님이 ctrl+c를 이용해 종료하면 된다고 언급하셨다.))

 

오류 2)

/etc/bind/named.conf에 들어갔을 때 원래의 설정 파일이 존재해야하는데 아예 새로운 파일로 만들어졌다. 

그래서 확인해봤더니 아에 bind라는 디렉터리 자체가 만들어져있지 않았다.

 

검색해보니 bind9를 설치하지 않아서 그런 것 같다는 생각이 들어 설치했더니 정상적으로 실습할 수 있었다. server(b)에서는 apt install bind9 bind9utils를 하고 시작했는데 server에서 실습을 시작하면서 설치하지 않아서 발생한 오류인 것 같다.

 

오류 해결에 참고한 링크이다.

https://somoly.tistory.com/30

 

우분투 서버 - DNS 구축 (bind 설치)

DNS 서비스를 위한 수동 설치를 해 보겠습니다. 1. 우선은 DNS 서비스를 위해 bind9 를 설치해야 합니다. windpyj@ubuntu:~$ sudo apt-get install bind9 2. 설치가 끝나면 자동으로 DNS 데몬이 실행이 됩니다. DN..

somoly.tistory.com

 

● 참고할 만한 내용

apt update를 하면 97 packages can be upgreaded Run 'apt list --upgradable' to see them. 이라고 나온다. apt list --upgradable이라고 했더니 업그레이드 대상이 되는 많은 리스트들을 확인할 수 있었다. 

apt list --upgradable

https://elfinlas.github.io/2017/12/20/ubuntu-update/

 

우분투에서 XX packages can be updated. 처리하기

우분투 업데이트?간만에 집에서 개발용으로 쓰는 서버 컴퓨터에 콘솔로 접근하니 아래와 같은 메세지가 뜨더군요. 저번 업데이트 이후 오랜만에 켜서 그런지 업데이트가 좀 있더라구요.예전에

elfinlas.github.io

위 링크를 참고해보니

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

이렇게 입력하면 전부 업데이트할 수 있다고 한다. 

 

● 회고

좋았던 점(+) 

익숙하지만 잘 알지 못했던 IP 주소들에 관해서 자세히 알아보고 실습할 수 있었던 수업이어서 좋았다. 들어만보고 자세히 알지 못했던 DNS에 관한 내용이 흥미로웠다. 실습을 위해 여러 사이트의 IP 주소를 확인해보았는데, 유명하고 사용자가 많을수록 IP 주소가 많은 걸 확인할 수 있어서 신기했다.

 

아쉬웠던 점(-) 

수업을 듣고 정리하면서는 완벽히 이해했다고 생각했는데 실습 과제를 수행하다보니 어떤 IP가 있었는지, 어떤 상황에서 어떤 IP 주소를 입력해야 했던 것인지 헷갈려서 조금 어려움을 겪었다. 그래도 실습을 수행하면서 조금 더 완벽히 이해할 수 있어서 좋았다. 

 

새로 알게된 점(!)

DNS 네임서버와 캐싱 전용 네임서버, DNS 라운드 로빈 네임서버에 대해 새로 배웠다. 우리가 항상 사용하는 웹페이지들이 어떤 방식으로 IP 주소를 사용하는지 알 수 있어서 재미있었던 주차였다.