개요
전의 글을 통해 IP 주소를 사용하여 다른 컴퓨터와 통신할 수 있다는 것을 알았다. 하지만 그건 우리 컴퓨터를 클라이언트로 사용하여 통신하는 방법이었다. (나의 컴퓨터가 통신을 요청하고 응답을 받는것이기 때문!)
외부의 컴퓨터는 나의 public IP 주소(공유기 주소)는 알 수 있지만, 나의 private IP 주소는 알 수 없다. (내가 따로 알려주지 않는 이상 말이다.)
나의 최종 목표는 내 컴퓨터가 서버로 동작하는 것을 원하기 때문에, 상대방이 나의 private IP주소를 몰라도 나와 통신할 수 있는, 나의 컴퓨터가 서버로써 통신하는 방법에 대해 알아볼 것이다.
Port Forwarding
방법은 간단하다. 나의 private IP주소를 몰라도 나의 컴퓨터와 통신할 수 있도록 하면 될 것이다.
그리고 그렇게 해주는 방법이 바로 port forwarding이다.
port forwarding이 하는 것은 간단하다.
- 공유기는 public IP 주소를 가지고 있기 때문에 외부 컴퓨터와 통신을 할 수 있고,
- 공유기와 외부 컴퓨터가 통신을 하면,
- 공유기가 내 컴퓨터와 외부 컴퓨터를 연결시켜준다.
공유기가 안내자 역활을 하는 것이다. 그리고 공유기가 안내자 역활을 할 수 있도록 설정을 해주고, 이 설정을 해주는 것이 바로 port forawding이다. 어찌보면 NAT과 비슷한 역활을 하는 것처럼 느껴진다. 하지만 다른 이름으로 불리는 만큼 분명한 차이가 존재한다.
- NAT과 Port Forwarding의 공통점
- 공유기의 public IP와 내 컴퓨터의 private IP의 주소를 맵핑 (또는 번역) 해준다.
- NAT과 Port Forwarding의 차이점
- port forwording은 public과 private IP 주소의 맵핑 관계를 사용자가 직접 설정하여 사용하고, 이는 고정되어 있다. 반면 NAT은 public과 private IP 주소의 맵핑 관계를 공유기가 설정하고 이는 매번 바뀐다.
Dynamic VS Static IP Address
동적(Dynamic) IP 주소가 나온 계기는 결국 부족한 IP 개수를 효율적으로 사용하기 위해서이다.
이름에서 알 수 있다시피, 동적 IP 주소는 내 컴퓨터의 IP가 계속해서 바뀌는 것이다. 여기서 이런 의문이 들 수있다.
"그냥 IP를 고정해서 쓰면되지 왜 굳이 바꾸는 거지?"
이유는 단순하다. IP 주소를 가지고 있는 컴퓨터가 IP를 안 쓸 수도 있기 때문이다.(인터넷을 안쓴다는 의미) IP를 제공하는 ISP(Internet Service Provider)는 이렇게 쓰이고 있지 않는 IP를 놀게할 이유가 없다. (안 그래도 IP가 부족한데...)
하지만 동적 IP 주소를 사용함으로써 생기는 문제가 있다. 그건 바로 나의 IP는 바뀌지만, 나와 통신하는 다른 컴퓨터는 나의 IP가 바뀐지 아닌지 모른다. 그래서 내 IP가 바뀐 후 다른 사람이 나와 통신하려 할 때, 전혀 엉뚱한 컴퓨터와 통신할 가능성이 있다.
위와 같은 문제를 해결하기 위해 고정(Static) IP 주소를 사용할 수 있다. (통신사에게 2~3 만원을 더 준다면, 그 IP를 독점적으로 사용할 권리를 준다.)
Dynamic Host Configuratoin Protocol
DHCP(Dynamic Host Configuratoin Protocol)는 IP를 설정하기 위한 프로토콜이다.
만약 내가 나의 컴퓨터 혹은 스마트폰를 사용하여 인터넷에 접속하고 싶다면, 공유기와 같은 통신장치에 연결하여 , 공유기로 부터 IP 주소를 할당 받아야만 한다.
이때, 내가 직접 IP 주소를 설정하여 사용할 수도 있지만, IP 주소를 사용자가 설정하여 사용하는 것은 복잡한 일이다.
IP 주소를 바꾸기 위해 알아야하는 것은 아래와 같다.
- 사용할 IP 주소 (중복되지 않는 한, 사용자가 임의로 설정 가능)
- Gateway IP 주소
- 서브넷 주소
- DNS
위의 4개를 사용하여 사용자가 IP 주소를 설정하지 않고, 자동으로 설정하는 방법이 존재한다.
그 방법은 DHCP server와 DHCP client를 사용하는 것이고 보통 공유기들은 이 DHCP server 프로그램이, 그리고 컴퓨터들은 DHCP client라는 프로그램이 이미 깔려 있다.
- DHCP server 라는 프로그램은 자동으로 IP 주소를 할당해주는 프로그램이며,
- DHCP client 라는 프로그램은 자동으로 IP 주소를 할당 받는 프로그램이다.
즉 사용자가 컴퓨터에게 private IP 주소를 할당하지 않아도, 공유기는 DHCP를 사용하여 컴퓨터에게 자동으로 IP주소를 할당해준다
출처
생활코딩
WEB2 - Home server
수업소개 이 수업은 자신의 집에서 서버를 운영하는 방법을 알려드리는 수업입니다. 가정에서는 보통 공유기를 이용해서 인터넷을 이용하는 경우가 많습니다. 이런 환경에서 서버를 운영하기
opentutorials.org
'CS > 네트워크' 카테고리의 다른 글
[코딩 연습] 자바로 HTML 구문 분석하는 코드 구현해보기 (0) | 2023.01.27 |
---|---|
DNS(Domain Name System) (0) | 2022.11.29 |
웹 서버에 대해 알아가는 과정 (1/2) (0) | 2022.11.28 |