Home Server & Domain name system [Wecode][210720]

Jungsoo kim·2021년 7월 20일
0

wecode

목록 보기
3/30
post-thumbnail

이번 주에는 우리 일상 생활에 엄청 밀접하게 사용되는 Server 개념과 Domain에 관한 정의와 실행 원리를 알 수 있는 강의를 수강하게 되었다.

여태까지 사용자로써 쓸 줄만 알았지 어떤 원리로 작동 되는지는 알지 못했던 것을 알게되는 기회여서 들었던 강의 중에 가장 재밌게 들었던 것 같다.

<목차>

  1. Home Server
  • Rauter
  • Network Address Translation
  • Port
  • DHCP(Dynamic Host Configuration Protocol)
  1. Domain name system
  • Hosts
  • DNS
  • Domain

1-1. Rauter(공유기)

가장 먼저 Rauter(공유기)에 대해 알아보자

위의 사진과 같이 공유기는 IP Address를 두개 갖는다. 하나는 Public IP Address 이며 다른 하나는 각 컴퓨터가 갖는 Private IP Address와 연결하는 IP Address 이다.

Public은 외부(ISP)와 연결되며, Private는 전화로 표현하면 내선 번호라고 생각하면 이해하기 쉽다.

보통 사설 IP (Private IP address)는 192.168.0.0 ~ 192.168.255.255 안에 있는 숫자로 하는 것으로 전 세계 적으로 통일 한다고 한다. 즉 (65536 개의 Private IP address 생성 가능)

여태까지 봐왔던 IP주소가 대부분 192.168.xxx.xxx로 되어 있던 이유를 이제야 알 수 있었다.

1-2. Network Address Translation

Private IP address 에서 요청한 정보를 어디에서(연결된 컴퓨터 중에 어떤 컴퓨터에서) 요청한 것인지 기록하고, Public IP address로 요청 정보를 전환하여 전달 한다.

Public IP Address에서 외부로 부터 요청 정보를 입수한 후에 위 과정과 마찬가지로 정보를 전환하여 Private IP address로 입수 정보 전달하는 과정을 거친다.

1-3. Port

전체 0번 부터 65535번 까지 Port 번호 중 0 ~ 1023번 까지의 Port는 이미 용도가 정해져 있어 우리가 마음대로 용도를 정할 수 없다. (Well-known port)
* 0번 부터 65535번 까지의 번호는 192.168.0.0 ~ 192.168.255.255 안에 있는 숫자의 개수이다.

Web server의 경우 보통 80 번 Port에 위치 하며 Web 서버를 하나를 추가 하려고 하면 관습적으로 8000 번 혹은 8080번 Port에 위치 시킨다고 한다.
* 참고로 Port에 위치시키는 것을 리스닝 한다고 표현 함.

1-4. Dynamic IP & Static IP

Dynamic IP는 유동적으로 IP Address가 계속 바뀌는 것을 말하며, Static IP는 반대로 IP Address가 고정되어 있는 것을 의미한다.

IP Address를 유동적으로 사용하는 이유는 일정 기간 사용하지 않는 IP Address가 발생하였을 때 해당 IP Address를 다른 컴퓨터에 할당하여 효율적으로 사용하기 위함이라고 한다. 다만 IP Address가 유동적으로 변경되다 보면 웹페이지를 IP Address로 접속할 경우 주소를 계속 변경해 줘야 한다는 단점이 있다.

* 통상 통신사에 일정 금액을 추가로 지불하면 Static IP를 사용할 수 있다고 한다.

1-5. DHCP(Dynamic Host Configuration Protocol)

공유기에 연결되는 컴퓨터가 공유기와 연결될 때 Private IP address를 자동 배정하는 기능이다. 따라서, 공유기에는 DHCP server가 설치되어 있고, 각 컴퓨터에는 DHCP Client가 설치되어 있다.

덧붙여, 이는 컴퓨터가 인터넷에 연결될 때 DNS Server의 IP Address를 가져오는 기능도 포함하고 있는 것으로 보인다.

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

2-1. Hosts

Hosts file은 호스트 이름에 대응하는 IP 주소가 저장되어 있어서 도메인 이름 시스템(DNS)에서 주소 정보를 제공받지 않고도 서버의 위치를 찾게 해주는 파일이다.
즉, 어떤 IP 주소를 일정한 주소 ex) example.com 라고 저장하면 해당 컴퓨터에서는 example.com으로 접속하면 저장되어 있는 IP 주소로 이동할 수 있다.

다만, 이 경우에는 모든 컴퓨터에 일일히 호스트 파일에 접속해서 등록을해줘야 하기 때문에 실제적으로 모든 컴퓨터에서 접속하게끔 하는데는 무리가 있다.
또한, 정보가 해킹되어 호스트의 주소가 해커에 의해 바뀌게 되면 피싱을 당하게 될 확률이 높다.(보안에 취약하다)

이에 따라, 모든 컴퓨터에서 하나의 주소(Domain)으로 일정 IP Address로 접속하기 위해 고안한 것이 다음 항목에서 설명하는 Domain이다.

* Hosts file 접근 방법 : 터미널을 통해 sudo nano /etc/hosts/로 접근 가능 하다.
* 접속 후 IP address 및 임시 도메인 주소 입력 후 나가(control+x) 하여 저장하면 임시 도메인 주소 할당 가능하다.

2-2. DNS(Domain Name System)

DNS 또는 Domain Name System은 사람이 읽을 수 있는 도메인 이름(예: www.amazon.com)을 머신이 읽을 수 있는 IP 주소(예: 192.0.2.44)로 변환한다.

이로 인해 사람들은 익숙하지 않은 숫자 조합을 외울 필요가 없어지는 장점이 있으며, IP Address가 변경된다고 하더라도 도메인 이름에 연동되어 있는 IP Address만 관리자가 변경해 주면 같은 도메인 이름으로 접속하는 것이 가능하다.

2-3. DNS 원리

우선 Domain Address의 구성은 아래의 그림과 같이 나타낼 수 있다.

DNS Server는 Root, Top-level, Second-level, sub에 따라 각각 존재한다.
또한 IP address와 도메인 주소를 매칭 시키는 방법은 한 번에 하는 것이 아니라, 각 DNS Server를 거쳐서 추리는 과정을 포함하는 것이며, 최종적으로 sub DNS server에서 IP address 값을 도출하여 요청한 컴퓨터에게 반환한다.

* Root DNS Server는 Top-level DNS Server의 IP 정보만 갖고 있으며, 모든 DNS Server는 하위 Server의 IP 정보만을 갖고 있다.

마지막으로, Domain Address를 생성하고 등록하는 전반의 과정은 아래의 그림과 같다.

Domain Address를 등록하기 위해서는 등록자가 직접 등록소에 등록하는 것이 아니라 등록대행자를 통해 대신하여 등록하게 된다. 이때, 등록자는authoritative name server를 직접 구축하거나 등록대행자가 구축한 것을 사용해야 한다.

위에서 설명했던 것과 같이, Client가 등록된 Domain으로 사이트에 접속할 경우 Root name server, Top-level domain server 등을 거쳐 요청 Domain이 갖는 IP Address를 추리는 과정을 갖는다. 그 후에 Client 컴퓨터는 해당 IP Address로 접속하는 것이다.

profile
어렵지만 꾸준히 차근차근 해 나가자~!

0개의 댓글