집에서 서버를 운영하는 방법

wonsik·2022년 5월 31일
2

컴퓨터 네트워크

목록 보기
8/9

본 포스트는 Home server - 생활코딩을 공부하며 배운 내용을 정리하는 글입니다.

IPv4 & IPv6

IPv4는 IP주소 체계를 나타내는 규약으로써 32bit의 IP주소를 8bit씩 끊어 10진수로 표기하고 '.'으로 구분하는 것이다. 이를 통해 약 42억 개의 주소를 표현할 수 있지만 기술의 발전으로 인하여 이 주소체계는 턱 없이 부족한 양이 된다. 따라서 IPv6로 주소를 담을 수 있는 주소록을 늘리게 되었다. 이는 128bit로 기존에 비해 4배가 넘는 bit를 통해 주소를 표현한다. IPv6의 128비트 주소공간은 다음과 같이 16비트(2옥텟)를 16진수로 표현하여 8자리로 나타낸다.

2001:0db8:85a3:08d3:1319:8a2e:0370:7334

이렇듯 IPv6는 매우 간단한 해결책이지만 현재 이미 사용되고 있는 IPv4 주소를 바로 옮기는 것은 쉽지 않기 때문에 현재는 두 주소 체계를 병행하며, 기존 IPv4를 아껴쓰는 중이다. IPv4를 아껴쓸 수 있는 방법 중 하나는 라우터 즉, 흔히 말하는 공유기를 이용하는 방법이다.

라우터에는 WANLAN 으로 두 종류의 포트로 이루어져 있다.

위 사진을 보면 왼쪽 포트가 WAN 오른쪽 포트가 LAN 포트임을 알 수 있다. WAN은 wide area network로 다른 네트워크와의 통신을 위해 사용하는 주소이고 LAN은 local area network로 동일한 네트워크내에서 통신을 위해 사용되는 주소이다. 이렇게 되면 위에서 핸드폰, 노트북, pc는 모두 같은 라우터에 연결되어 같은 public IP address를 갖게 된다. 이것이 IP 주소를 아낄 수 있는 방법이다. 왼쪽 위의 테이블을 보면 사설 IP주소의 범위가 적혀있다. 본인이 사용하는 네트워크의 크기에 따라 알맞은 주소의 범위를 사용하여 효율적인 인프라를 구성한다.

NAT(network address translation)

위 사진에서 노트북을 사용하고 있는 클라이언트가 외부 네트워크에 접속하려면 어떻게 해야할까? 본인은 사설 IP주소를 사용하고 있기에 공인 IP주소에서 접근할 수 없기에 통신이 불가능한건가?

이는 NAT를 이용하여 해결가능하다.
노트북에서 인터넷으로 통신을 할 때 라우터를 먼저 거치게 된다. 이 때 라우터의 NAT 테이블에 사설 IP주소를 저장하고 NAT를 통해 라우터의 공인 IP주소로 변경하여 인터넷과 통신한다. 이러면 반대로 응답이 오면 라우터에서 테이블을 조회하여 노트북의 사설 IP주소에 데이터를 전송한다.

이는 사설 IP주소가 클라이언트로 사용되었을 때이다. 그렇다면 사설 IP주소를 서버로 사용하려면 어떻게 해야할까?

Port & Port forwarding

이는 포트와 포트 포워딩을 이용하여 해결할 수 있다.

위 사진을 보면 포트에 대해서 나와있다. 포트는 간단히 설명하면 어플리케이션에서 외부와 통신할 때 만나는 장소라고 생각하면 쉽다. 포트 번호는 0부터 65535까지 사용가능하며 0부터 1023은 well-known으로 기존에 자주 사용하는 어플리케이션에 배정된다. 포트를 이용하면 한 컴퓨터 내에서 여러 개의 서버를 운영하는 것도 가능하다. 위에서 같은 웹 서버지만 포트를 다르게 가져감으로써 외부와 통신할 수 있다.

외부에서 라우터의 IP주소에 접근할 때 포트를 통하여 라우터에 연결되어 있는 기기들을 연결지을 수 있다. 이는 공유기 내의 프로그램을 통해 설정할 수 있다.

위 사진을 보면 공유기의 공인 IP주소를 포트 8080으로 접근하면 PC의 80포트에 접근하는 것이다. 즉 PC의 웹 서버에 접근하는 것이다. 반면 공유기의 공인 IP주소를 8081로 접근하면 노트북의 웹 서버에 접근한다.

하지만 공유기의 공인 IP주소가 바뀌게 되면 어떻게 될까?

Dynamic IP & Static IP

위에서 IPv4의 주소를 아껴쓰기 위해 같은 네트워크 내의 주소를 사설 IP주소로 나타낸다고 배웠다.

이 외에도 Dynamic IP를 이용하여 IPv4 주소를 아껴쓴다. Dynamic IP는 말그대로 IP주소가 바뀌는 것을 의미한다. IP주소는 ISP(Internet Service Provider)에서 부여하게 되는데 쉽게 생각하면 인터넷을 개통할 때 계약하는 이동통신사인 SKT, KT, LG U+에서 임의의 IP주소를 부여하는 것이다. 하지만 우리는 항상 같은 주소를 사용하는 것이 아니다. 여행을 가거나 하는 등의 일로 일정 시간 동안 사용하지 않으면 주소를 회수하고 다시 사용하면 재분배 해주는 방식으로 IP주소를 아껴쓴다. Home Server를 이용하려면 계속 바뀌는 IP주소를 고정시켜야 하는데 이를 Static IP 즉 고정 IP주소를 사용해야 한다. 이는 위에서 말한 이동통신사에게 일정 금액을 지불하여 사용할 수 있다.

DHCP(Dynamic Host Configuration Protocol)

우리가 라우터에 기기를 연결하면 사설 IP주소가 부여되는 것을 알고 있다. 이건 라우터와 기기에서 자동으로 일어나는 프로토콜로 DHCP라고 한다. 실제로는 IP주소 이외에도 사람이 직접 일일히 IP주소를 부여하고 관리하는 것은 매우 복잡하고 어렵기 때문에 DHCP는 매우 유용하게 사용된다. 그렇다면 어떤 순서로 이루어지는지 살펴보자!

DHCP 순서

DHCP가 이루어지기 위해선 라우터에 DHCP서버가 필요하고 연결하려는 기기에 DHCP 클라이언트가 필요하다. 이해하기 쉽게 하기 위해 라우터에 연결하는 기기를 클라이언트 기기, 라우터의 DHCP를 DHCP서버로 나타낸다.

MAC주소란 해당 기기를 나타내는 물리적 주소로 기기가 제조될 때 정해지는 고유의 값이다.

  1. 클라이언트 기기가 DHCP 서버에 MAC주소로 접근한다.
  2. DHCP 서버가 클라이언트 기기 MAC주소에게 라우터의 MAC주소과 클라이언트 기기 MAC주소, 잔여 IP주소를 응답한다.
  3. 클라이언트 기기가 DHCP 서버에게 사용하겠다고 응답한다.
  4. DHCP 서버에 클라이언트 기기의 MAC주소와 IP주소를 저장한다. 또한 IP주소의 임대시간을 부여한다.
  5. 클라이언트 기기가 본인 기기의 네트워크에 해당 IP주소를 부여한다.

마치며

공유기를 이용하면 사용할 수 있는 기술들이 많이 있다. 예를 들어 NAS(Network Attached Storage) 즉, 네트워크 저장장치이다. 이를 이용하여 스토리지와 백업 등의 기능이 가능하다.

무선 네트워크는 보안에 취약하다. 전파를 이용하기에 사방으로 데이터가 퍼지기 때문이다. 따라서 다양한 보안이 필요하며 특히 웹에선 HTTPs를 통하여 보안을 업그레이드 시켰다.

이 외에도 DDNS를 이용하여 IP주소가 변경됨에도 똑같은 서버에 접근할 수 있도록하는 기술 등이 있다. 다양한 기술들을 한 번 찾아보며 학습하여 학습하면 네트워크와 웹을 이해하는 데에 큰 도움이 될 것이다.😀

profile
새로운 기술을 배우는 것을 좋아하는 엔지니어입니다!

0개의 댓글