코딩쌀롱

NAT와 포트포워딩 본문

개발공부

NAT와 포트포워딩

이브✱ 2021. 1. 10. 16:29

 

 컴퓨터가 인터넷으로 통신하기 위해서는 IP주소가 필요하다. IPv4는 인터넷 통신규칙으로 42억개의 IP주소를 가지고 있다. 인터넷에 연결되는 컴퓨터가 엄청나게 늘어나면서 IP주소가 부족해지게 되었고 새로운 통신 규칙인 IPv6를 만들었다.  그러나 한 번에 바꾸기 어렵기 때문에 기존의 IPv4를 아껴써야 한다. 그래서 IP를 아낄 수 있고, 통신요금을 절약할 수 있는 공유기(router)가 나오게 된다.

공유기 (router)

✱WAN(wide area network, 광역 네트워크)

    ① 통신사와 계약된 케이블을 공유기의 WAN에 꽂음

    ② 통신사 발급 IP는 공유기의 IP가 됨 (Public IP address)

 

✱LAN(local area network, 지역 네트워크)

    ① 각각의 디바이스들(스마트폰, 노트북, 컴퓨터 등)을 LAN에 꽂음 (무선 wifi도 같은 원리)

    ② 연결되는 순간 IP를 부여받음 (Private IP address)

    ③ 디바이스들뿐만 아니라 공유기도 IP를 부여받는데 특수하고 중요해서 이름이 있음

        (공유기에 부여된 내부 네트워크 IP : gateway address, router address)

 

NAT (network address translation)

 필기 내용을 간단히 설명하면, 공유기에는 케이블을 꽂을 수 있는 WAN, LAN이 있다. WAN은 통신사와 계약해서 받은 공인 IP주소(public)로 전세계에서 유일한 값을 지니며 외부에서 직접 접근 가능한 IP주소이다. LAN은 인터넷에 연결할 디바이스들을 꽂는 곳으로 디바이스들에 사설 IP주소(private)가 부여된다. 이 때 공유기 자체도 사설 IP주소(private)를 부여받는데 이를 gateway address 또는 router address라고 한다.

 

 공인, 사설 IP주소를 구분 짓지 않으면 더 편할 수 있겠지만 IPv4에 따른 IP주소는 42억개로 정해져있어 모든 디바이스들에 공인 IP주소를 사용할 수 없다. 이런 제한적인 상황으로 사설 IP가 필요한 것이다. 정리하면, IP주소를 아끼기 위해 공인 IP주소 하나 당 여러 개의 사설 IP주소를 갖고, 그 사설 IP 각각에 여러 대의 디바이스들을 연결할 수 있다는 것, 그리고 이 공인 IP와 사설 IP를 연결해주는 것이 NAT이다.

 

 외부 IP주소(public)와 내부 IP주소(private)가 다른 경우, 네트워크 전송 수행 시 두 IP주소를 매핑해 원할히 운영할 수 있게 하는 기술이 NAT이다. 쉽게 말하면 네트워크의 외부망과 내부망을 나누고 연결해주는 역할이다. 공인 IP를 모든 사용자에게 할당하지 않아도 되기 때문에 IP주소 부족 문제 해결했다. 그리고 외부에서 내부 네트워크의 정보를 알 수 없기 때문에 보안성에 장점이 있다. 

 

포트포워딩 (port forwarding)

공유기 외부에 있는 PC에서 공유기 내부에 있는 PC에 접속하고자 하는 요청이 들어왔다고 가정해보자. 공유기는 여러 내부 IP를 사용하고 있는 디바이스들 중 어느 PC로 연결 해주어야 할지 모른다. 외부에서는 공인(public) IP주소로 요청해오지만, 하나의 공인 IP에 연결된 여러 사설(private) IP주소가 있기 때문. 이러한 상황에서 공유기에 해당 포트로 요청이 오면 내부의 특정 PC로 연결하라는 이정표(포트)를 달아주는 것이 포트포워딩이다.

 

 

 

 


참고

생활코딩 - WEB2 Home server

블로그 - Port와 포트포워딩이란?

 

'개발공부' 카테고리의 다른 글

배열 vs 링크드 리스트(Linked List)  (0) 2021.01.12
빅 오 표기법(big O notation)  (0) 2021.01.12
쉘(shell)과 커널(kernel)  (0) 2021.01.10
리눅스(Linux)의 역사  (0) 2021.01.09
Comments