HomeServer

임정우·2023년 8월 24일
post-thumbnail

IP adrress


이미지 출처: 생활코딩 유튜브, WEB2-Home server-2.공유기

서버와 클라이언트가 있을 때 클라이언트가 서버에 요청을 하면, 서버가 요청한 정보를 응답해야하는데 그러기 위해서는 당연히 IP를 알아야한다.
이 IP 정보는 요청할 때 전달이 된다.
즉, 인터넷에 연결되어있는 컴퓨터들은 서로 정보를 주고 받아야하기 때문에 양쪽다 IP address를 필요로 하게 된다

router (공유기)

이미지출처: 생활코딩 유튜브, WEB2-Home server-2.공유기

스마트폰이나 컴퓨터가 와이파이에 연결하는 순간에 자동으로 그 컴퓨터에는 ip주소가 부여되게 돼있다.
과거에는 컴퓨터가 한 대씩밖에 없어서 크게 문제가 되지 않았지만, 요즘은 스마트폰, 노트북 등 여러대가 접속해야한다.
이럴 경우 한 기기에 하나의 ip를 부여하기 위해 통신사와 각각 한 개씩의 회선을 계약하게 되면 비용이 크게 증가한다.
이런 문제를 해결하기 위해 통신사와는 하나의 회선을 계약하게 된다.

WAN(Wide Area Network) 선: 통신사와 계약하여 발급받은 ip주소는 공유기의 것이 된다.
WAN에 부여된 ip는 전세계 누구나 접속 가능하다는 의미에서 public ip address라고 한다.
LAN(Local Area Network) 선: 각각의 디바이스들이 연결된다. (wifi도 같은 맥락이다.)
연결되는 그 순간에 디바이스들은 ip를 부여받는다.
LAN안에서만 사용할 수 있는 ip를 일종의 회사의 내선번호같은 의미로, private ip address라고 한다.

WAN과 LAN사이에서 중계자같은 역할을 하는 것이 바로 공유기이다.

NAT

이 기술 덕분에 private ip를 사용하고 있는 각각의 컴퓨터들이 외부의 인터넷에 접속할 수 있게 된다.

어떤 디바이스에서 네이버에 접속한다고 하면, 디바이스는 게이트웨이 어드레스에 해댱하는 ip의 공유기에 신호를 보낸다.
그런데 네이버는 내부 네트워크안에 있는 요청이 아니다.
그렇기 때문에 공유기는 WAN을 통해서 외부로 보내야한다.
이를 위해 두 가지 작업을 한다.

  1. 네이버로 가는 요청이 해당 private IP address의 요청이라는 것을 공유기 안에 기록한다.
  2. private IP address는 외부에서는 접속하지 못하기 때문에 NAT라는 기술이 priave IP adrress를 public IP address로 변경하여 그 변경된 데이터를 네이버에 전송한다.

이때 네이버는 다시 public IP address에 응답하게 된다.
그리고 1.에서 기록한 정보를 가지고 해당 디바이스에 응답한다.

이 과정을 통해서 private IP address를 가지고 있는 디바이스가 외부 세계와 통신할 수 있게 된다.

Port Forwarding

Port:
하나의 컴퓨터에는 여러 개의 서버가 있을 수 있다.
그 서버를 식별하기 위해서 사용하는 것이 포트이다.

Well-known-port:
예약된 포트로, 0번부터 65535번의 포트 중 0번부터 1023번까지의 포트를 말한다.
22: SSH, 80: http 등이 그 예다.

Port Forwarding:
포트 포워딩(port forwarding)은 컴퓨터 네트워크에서 패킷이 라우터와 같은 네트워크 게이트웨이를 가로지르는 동안 하나의 IP 주소와 포트 번호 결합의 통신 요청을 다른 곳으로 넘겨주는 네트워크 주소 변환(NAT)의 응용이다.

profile
경희대학교 소프트웨어융합학과

0개의 댓글