Home Server _ 생활코딩

라용·2022년 8월 9일
1

생활코딩 WEB2 - Home server 강의를 듣고 정리한 내용입니다.

1. 수업소개

공유기를 사용하는 환경에서 웹서버를 구동하는 방법을 알아보면서, 인터넷을 지배하는 핵심적인 지식과 경험을 알아봅니다. 전화기가 통신하기 위해 전화번호를 사용하듯, 인터넷 위의 컴퓨터들이 서로 통신하기 위해서는 ip address 가 필요합니다.

1980년대 초 인터넷 선구자들은 IPv4 라는 인터넷 통신 규칙을 만들었고, 이 규칙으로 42억개의 아이피 주소를 만들 수 있었습니다. (0,0,0,0 ~ 255,255,255,255) 하지만 웹, 스마트폰, 클라우딩 컴퓨팅 등 인터넷에 연결되는 컴퓨터가 기하급수적으로 증가했고, 42억개의 아이피주소로도 부족하다는 것을 알게 됩니다.

그래서 새로운 통신 규칙 IPv6 를 만들었지만, 기존의 주소를 모두 바꾸기 어려우니 기존 주소 체계인 IPv4 를 아껴서 사용하고 있습니다. 공유기(라우터)도 그 노력 중 하나입니다. 공유기는 하나의 아이피주소를 여러대의 컴퓨터가 나눠서 사용합니다.

공유기에 연결된 컴퓨터에 서버를 연결해서 운영하려면 아래 개념들을 알아야 합니다.

- Network Address Translation   
- Public VS Private IP Address // 공인 아이피 사설 아이피
- Port forwarding
- Dynamic VS Static IP address // 고정 아이피와 유동 아이피
- Dynamic DNS

2. 공유기 (router)

인터넷을 사용하기 위해서는 컴퓨터가 ip address 를 가지고 있어야 합니다. 클라이언트 컴퓨터의 브라우저에 무언가 입력했을 때 그 요청은 서버 컴퓨터에게 가고, 서버 컴퓨터가 응답을 하기 위해서는 요청한 클라이언트 컴퓨터의 아이피주소가 있어야 합니다.

현실에서 인터넷을 사용한다면, 우선 통신사과 계약을 맺고 집으로 통신 회선을 받습니다. 이렇게 인터넷에 연결되는 순간 아이피가 부여딥니다. 집에서 사용하는 기기가 많을수록 이 회선을 추가로 계약하진 않ㅅ브니다. 하나의 회선을 공유기에 연결해서 사용합니다.

공유기의 뒷면을 보면 혼자 떨어져 있는 WAN 포트와 따로 묶여있는 LAN 포트를 볼 수 있습니다.통신사 케이블을 WAN 에 꽂으면 그 아이피 주소는 공유기의 것이 됩니다. 그리고 각각의 디바이스는 LAN으로 연결하거나 무선으로 연결됩니다.이렇게 하나의 공유기를 중심으로 연결된 기기들을 같은 네트워크에 묶여있다고 해서 지역 네트워크라고 합니다. LANLocal Area Network 의 약자입니다. 공유기는 동시에 가장 거대한 네트워크, 인터넷이라는 광역 네트워크에 소속되어 있습니다. WANWide Area Network 의 약자입니다. 공유기는 WANLAN 사이의 교환원, 중계자 역할을 합니다.

각각의 컴퓨터들은 공유기에 연결되는 순간 각각의 아이피를 부여받는데(192...) 이를 private IP address라고 하고, 광역 네트워크에서 공유기에 접속할 수 있게 해주는 아이피를 public IP address Gateway address
Router address (59...)라고 합니다. 42억개의 아이피 주소 중 6만여개는 사설 아이피로 쓰자고 약속이 되어 있습니다.

3. NAT (Network address translation)

우리가 컴퓨터로 무언가 요청하면 그것을 내부에서 해결하지 못할 경우 WAN 을 통해 외부로 보냅니다. 이때 라우터는 어떤 사설 아이피를 가진 컴퓨터가 요청했는지 기억하고 그것을 퍼블릭 아이피로 변환해 외부 서버에 전달합니다. 이후 등답이 왔을 때도 해당 응답이 누구에게 가야하는지 확인하고 전달합니다. (컴퓨터를 클라이언트로만 쓰는 경우)

4. 내 컴퓨터의 IP 주소 알아내기

맥에서는 시스템 환경설정 - 네트워크 - 현재 연결된 통신 - 고급을 누르면 TCP/IP 에서 IPv4로 지정된 내 컴퓨터의 사설 아이피주소를 확인할 수 있습니다. 라우터 아이피주소를 인터넷 주소창에 입력하면 공유기에 접속할 수 있습니다. 검색 엔진에서 My ip 검색해서 확인할 수도 있습니다.

5. 포트 (port)

내가 쓰고 있는 컴퓨터를 서버로 사용하려면 외부에서 라우터의 퍼블릭 아이피로 접속했을 때 누가 그 요청에 응답할지 연결해주어야 합니다. 이때 port forwarding 이란 기능을 사용합니다.

특정 컴퓨터의 서버를 알려주기 위해 포트 번호를 사용합니다. 6만개의 포트넘버 중 80-http 는 웹용 번호인데, 0번부터 1023번까지 포트는 well-known port 로 따로 예약된 포트로 웹 서버를 설치한다면 80번 포트로 연결되도록 약속되어 있습니다. 이렇게 포트가 연결되어 있는 것으 Listening 한다. 서버가 듣고 있다고 이야기합니다. 웹서버를 2개 설치한다면 관습적으로 808080 을 사용합니다.

127.0.~~:80/index.html
127.0.~~:8080/index.html

6. 포트 포워딩 (port forwarding)

내 컴퓨터에 웹서버를 설치했을 경우 외부에서 접속한다면 일단 퍼블릭 아이피 주소를 알려주어야 합니다. 그리고 그 주소로 접속하면 공유기가 내 컴퓨터 서버로 연결을 해주는 데 이를 포트 포워딩이라고 합니다. 공유기 관리자 고급설정에서 외부포트와 내부포트를 연결해서 설정할 수 있습니다. 단 아이피 주소를 알려주는 것은 보안상 좋지 않습니다.

7. 유동 아이피와 고정 아이피

부족한 아이피 주소를 효율적으로 사용하기 위한 방법 중 하나가 유동 아이피입니다. 인터넷을 한동안 안 쓰는 집이 있다면 ISP 가 아이피 주소를 회수해서 새로운 가입자에게 줍니다. 이후 다시 접속할 경우 새로운 아이피를 부여합니다. 아이피 주소가 동적으로 바뀌어서 dynamic ip address 라고 부릅니다.

내 컴퓨터에 웹서버를 설치할 경우 이렇게 아이피주소가 바뀌면 접속할 수 없습니다. 그럴 때는 통신사에 추가 비용을 내고 고정 아이피를 받아서 사용할 수 있습니다.

8. DHCP

DHCP(Dynamic Host Configuration Protocol)은 네트워크에 접속한 장치의 ip subnet mask gateway address DNS와 같은 정보를 자동으로 설정해주는 기술입니다.

라우터에는 DHCP 서버가 깔려 있고 우리 기기에도 DHCP 클라이언트가 깔려 있습니다. 우리가 사용하는 통신 부품마다 공장에서 부여한 고유한 식별자가 있습니다. 이것을 바탕으로 컴퓨터를 공유기에 연결하면 DHCP 클리이언트가 DHCP 서버에게 자동으로 아이피 주소를 요청하고, 서버는 응답합니다.

9. 수업을 마치며

인터넷은 실제로 매우 복잡하게 동작하지만, 누구나 쉽게 사용할 수 있게 되었습니다. 그 안의 많은 장단점들이 있으므로 잘 알고 사용하는 게 좋습니다. 이후 추가로 공부할만한 지식을 소개합니다.

  1. 공유기 - 네트워크 관련 많은 기능을 가진 고급장비, 관리자로 들어가서 메뉴를 잘 살펴보기
  2. NAS - Network Attached Storage 약자. 드롭박스나 구글드라이브 같은 서비스를 집에서 직접 운영하고 싶다면 알아보기
  3. DNS - 아이피가 아닌 도메인을 통해 사용자가 접속한다면 아이피가 변동되어서 도메인으로 접속할 수 있다. DDNS 알아보기.
  4. https - 보안을 고려한다면 알아보기. Let's encript 같은 곳에서 무료 인증서도 발급해준다.
  5. web hosting, server hosting, cloud computing - 직접 서버를 운영하기 보다는 이런 서버와 네크워크 환경을 제공하는 서비스를 이용해보기.
profile
Today I Learned

0개의 댓글