TIL - Home Server

한성봉·2021년 5월 1일
0

이 글은 유튜브 '생활코딩 WEB2-Home Server`강의를 토대로 작성하였습니다.

Home server

1. Router(라우터, 공유기)

컴퓨터 2대가 정보를 주고 받거나 통신을 하기 위해서는 각각의 컴퓨터가 IP address(Internet *Protocol address)가 필요하다. IP 주소를 부여받기 위해선 통신사에서 회선을 받아야한다. 가정 내에 컴퓨터가 1대일 경우는 상관없지만 여러개 또는 인터넷을 사용할 수 있는 기기가 여러개 있을 때 발생한다.(데스크탑, 스마트폰, 랩탑, 태블릿.. 등) 그럴 때 다른 기기를 사용하기 위해 회선을 하나 더 받아야하는 비효율적인 선택을 해야 할 수 있. 이러한 문제를 해결하기 위해 라우터(Router), 즉 공유기를 사용한다. 라우터를 사용하게 되면 메인 컴퓨터에 있던 주소를 라우터가 받게 되고(Public IP address) 라우터에서 Gateway address(Router address)라 불리는 새로운 IP 주소가 생성되고 나머지 기기에 할당되게 된다. 나머지 기기에서 사용하는 IP주소를 Private IP address(사적 IP 주소)라 한다.

  • Protocol(규약) : 통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다.

2. NAT(Network Address Translation)

NAT(Network Address Translation) 네트워크 주소 변환 기술을 뜻한다. 이 기술을 통해 사설IP(Private IP address)를 쓰고 있는 기기가 외부 인터넷에 연결 수 있다. NAT를 이용하는 이유는 대개 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함이다. 즉 라우터에 저장되어있는 Public IP address(1개)의 주소를 통해 외부 인터넷 (WAN)에 접속하기 위함이라는 말이다. 정리하자면 Private IP address를 가진 개인컴퓨터가 외부 인터넷의 정보를 요청할려면 먼저 라우터에 정보를 요청한 컴퓨터의 Private IP address주소를 저장하면 우선 라우터에서 NAT기술을 통해 Private IP address에서 Public IP address 변환하여 외부 인터넷 정보를 요청한다. 요청한 정보가 응답받을 때도 역순으로 개인컴퓨터에 도달한다.

3. 나의 IP 주소 알아내기

지금부터 나의 IP주소를 알아보자 어려가지 방법이 있으니 하나하나 살펴보자. 앞서 설명한 라우터에 있는 Public IP addressLAN에 연결된 개인컴퓨터와 기기의 Private IP address를 살펴보자. 나의 컴퓨터 환경은 MacOS이기 때문 MacOS 환경에서 살펴보겠다.

- 컴퓨터 내에 환경 설정에서 알아보기

시스템 환경설정 -> 네트워크 -> 현재 사용중인 네트워크 클릭 -> 고급 -> TCP/IP 순으로 들어간다. 현재 사용중인 IPv4 주소와 라우터 IP 주소를 확인할 수 있다.

- 라우터 관리자 화면에서 알아보기

네트워크에서 환경설정에서 확인한 라우터 IP주소를 인터넷 주소창에 입력하면 라우터 관리자 및 환경설정을 할 수 있는 사이트가 나온다 로그인 하고 들어가면 나의 IP주소 및 여러가지 라우터 정보를 확인할 수 있다.

- 인터넷에서 검색하기

간단하게 네이버나, 구글 등의 검색엔진을 통해 나의 IP주소를 검색하면 간단하게 현재 Public IP address 간단하게 알아볼 수 있다.

4. PORT

PORT(포트) : 인터넷 프로토콜 스위트에서 포트(port)는 운영 체제 통신의 종단점이다. 이 용어는 하드웨어 장치에도 사용되지만, 소프트웨어에서는 네트워크 서비스나 특정 프로세스를 식별하는 논리 단위이다. 주로 포트를 사용하는 프로토콜은 전송 계층 프로토콜이라 하며, 예를 들어 전송 제어 프로토콜(TCP)와 사용자 데이터그램 프로토콜(UDP)가 있다. 각 포트는 번호로 구별되며 이 번호를 포트 번호라고 한다. 포트 번호는 IP 주소와 함께 쓰여 해당하는 프로토콜에 의해 사용된다.
-위키백과 발췌-

  • 포트 표기 방법

http://000.000.000.000:80 에서 : 앞까지는 IP주소이고 :뒤에 숫자가 포트번호이다.
:80 포트 번호는 생략이 가능하다. 80번 포트는 WWW, HTTP 번호를 의미한다.

  • 포트 번호
    • 0번 ~ 1023번: 잘 알려진 포트 (well-known port)
    • 1024번 ~ 49151번: 등록된 포트 (registered port)
    • 49152번 ~ 65535번: 동적 포트 (dynamic port)

잘 알려진 포트 번호는 대표적으로 다음의 것들이 있다.

  • 20 : FTP(data)
  • 21 : FTP(제어)
  • 22 : SSH
  • 23 : 텔넷
  • 53 : DNS
  • 80 : 월드 와이드 웹 HTTP
  • 119 : NNTP
  • 443 : TLS/SSL 방식의 HTTP

포트 번호 목록에 대해 더 자세히 공부하고 싶다면 다음 자료를 참고하자.

<참고 자료>
https://ko.wikipedia.org/wiki/TCP/UDP%EC%9D%98_%ED%8F%AC%ED%8A%B8_%EB%AA%A9%EB%A1%9D

- PORT forwarding

포트 포워딩(영어: port forwarding) 또는 포트 매핑(영어: port mapping)은 컴퓨터 네트워크에서 패킷이 라우터나 방화벽과 같은 네트워크 게이트웨이를 가로지르는 동안 하나의 IP 주소와 포트 번호 결합의 통신 요청을 다른 곳으로 넘겨주는 네트워크 주소 변환(NAT)의 응용이다. 이 기법은 게이트웨이(외부망)의 반대쪽에 위치한 보호/내부망에 상주하는 호스트에 대한 서비스를 생성하기 위해 흔히 사용되며, 통신하는 목적지 IP 주소와 포트 번호를 내부 호스트에 다시 매핑함으로써 이루어진다.
-위키백과 발췌-

PORT forwarding 은 위에서 공부했던 Private IP를 통해 라우터를 거쳐 NAT 기술을 활용하여 Public IP를 통해 외부 인터넷에 접속하는 방법의 반대로 생각하면 쉽다.

앞서 본 사례는 Private IP를 사용하는 개인컴퓨터가 client입장에서 본 경우였지만, PORT forwarding 은 만약 Private IP 를 사용하는 개인컴퓨터가 3대가 존재하고 server 컴퓨터로 사용한다고 생각하면 외부에서 요청을 하였을 때 어느 컴퓨터로 정보를 요청하게 만드는가에 대한 기술이 PORT forwarding 이다.

  • PORT forwarding 방법
    우선에 라우터 IP 주소로 접속했던 라우터 관리자 페이지에서 설정할 수 있다.

라우터마다 UI는 다르지만 대개 비슷한 설정들을 가지고 있다. 여기에서 PORT forwarding 설정을 할 수 있다.
외부에서 라우터로 Public IP address 로 정보를 요청했다면 우리가 설정한 Private IP address 로 정보를 요청하게 설정할 수 있다.

5. Dynamic IP addres & Static IP address

우리는 기본적으로 ISP(Internet Service Provider) 비용을 지불하고 IP를 부여받습니다.
이렇게 ISP에서 제공하는 IP는 개인IP기업IP로 나뉩니다. 개인IP는 기본적으로 동적IP(Dynamic IP addres)를 부여받게 되고 기업IP는 정적IP(Static IP address)을 할당받는다.

  • 동적IP란 DHCP(Dynamic Host Configuration Protocol)라고도 불리는 서비스로, 사용자가 PC를 껐다 켜거나, 인터넷이 재설정될 경우, 사용가능한 IP를 자동으로 새롭게 부여하는 방식을 말합니다.

DHCP(Dynamic Hosts Configuration Protocol)는 주어진 IP 주소가 일정한 시간동안만 그 컴퓨터에 유효하도록 하는 "임대" 개념을 사용한다. 임대시간은 사용자가 특정한 장소에서 얼마나 오랫동안 인터넷 접속이 필요할 것인지에 따라 달라질 수 있다. DHCP는 사용자들이 자주 바뀌는 학교와 같은 환경에서 특히 유용하다. DHCP는 사용 가능한 IP 주소의 개수보다 더 많은 컴퓨터가 있는 경우에도 IP 주소의 임대시간을 짧게 함으로써 네트워크를 동적으로 재구성할 수 있다. 영구적인 IP 주소를 필요로 하는 웹서버에 대해서는 정적인 주소를 제공한다.

  • DHCP(Dynamic Hosts Configuration Protocol):동적 호스트 구성 프로토콜(Dynamic Host Configuration Protocol, DHCP)은 호스트 IP 구성 관리를 단순화하는 IP 표준이다. 동적 호스트 구성 프로토콜 표준에서는 DHCP 서버를 사용하여 IP 주소 및 관련된 기타 구성 세부 정보를 네트워크의 DHCP 사용 클라이언트에게 동적으로 할당하는 방법을 제공한다.

임대의 개념으로 동적IP를 할당하는 이유는 IP부족 현상 때문이다.

- 동적IP vs 정적IP 장단점

  • 동적IP

    • 장점: 상대적으로 보안에 유리하다. IP자체가 유동적이기 때문에 정적IP보다는 상대적으로 보안에 유리하다는 장점이 있다.
    • 단점: 연결의 안정성은 떨어질 수 있다.
  • 정적IP

    • 장점: 상대적으로 보안에 취약하다.
    • 단점: 연결의 안정성이 보장된다.

0개의 댓글