나의개발일지
[네트워크 기초] NAT와 Port Forwarding 본문
본 글은 작성자가 어디선가 주워듣고 이해한 내용들을 개인적인 언어로 작성한 게시물입니다.
잘못된 내용이 존재할 수 있으니, 읽게 되신다면 이점을 감안해 주세요!!!
- 우리는 결국 자신이 가진 이야기로 상대방을 이해할 수 있을 뿐이다.-
앞서 포스팅한 글 중에 3계층의 IP와 관련된 설명 중에 공인IP와 사설IP에 대해서 설명한 적이 있다. 이때, 일반적인 가정집의 경우 공유기에 들어오는 하나의 선의 공인IP이고, 이를 공유기를 통해 사설IP로 변경해서 하나의 공인IP로 집에 있는 여러 디바이스가 인터넷을 이용할 수 있다고 말했다. 이때, 공유기에서 공인IP를 사설IP로 바꾸는 기술을 NAT라고 설명했던 적이 있다. 하지만, NAT의 본질은 공인IP를 사설IP로 변경하는 것이 아니다. 오늘 정리할 내용은 NAT와 Port Forwarding에 대한 글이다.
NAT
Network Address Translations인 NAT는 IP패킷의 TCP/UDP 포트 숫자와 소스 및 목적지 IP주소등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술이다. 이 기술을 이용해서 공유기 안에 공인IP를 사설IP로 변경하는데 사용하는 것이다. 특정 IP주소의 특정포트번호로 가는 패킷을 다른 IP주소와 다른 포트번호로 변경해주는 기술이다. NAT로 변경되는 데이터는 NAT테이블에 작성되게 된다.
Port Forwarding
포트포워딩은 패킷이 라우터나 방화벽과 같은 네트워크 장비를 가로지르는 동안 특정 IP주소와 포트번호의 통신 요청을 특정 다른 IP주소와 포트번호로 넘겨주는 네트워크 주소변환(NAT)의 응용이다. 포트포워딩은 게이트웨이의 반대쪽에 위치한 사설네트워크에 상주하는 호스트에 대한 서비스를 생성하기 위해 흔히 사용된다. 예를 들어 서버가 사설네트워크 대역에 있다고 가정하자. 이때 해당 서버로 어떻게 요청을 보낼것인가? 서버란 요청에 대한 응답인데 공유기 끼리는 공유기 안에 있는 사설네트워크 대역까지는 알지 못한다. 그렇기때문에 , 사설네트워크 대역에 있는 웹서버에 요청을 보낼 수 없는 것이다. 요청을 보낸다고 해도, 공인IP를 담당하는 공유기까지만 도달하고, 그 안으로는 들어갈 수 없다. 이때 사용할 수 있는 것이 포트포워딩이다. 해당 공인IP에 대한 포트포워딩을 직접설정해줌으로써, 공인아이피의 몇번 포트로 요청을 보낼 시 사설네트워크안의 웹서버로 연결시켜주는 것이다.
정리하자면
사실 4계층을 정리하다가 다음 내용이 NAT와 Port Forwarding이어서 내용이 이어지지 않는 느낌이다. 4계층의 TCP/UDP에서 포트를 사용한다는 것을 알지만, 그래도 4계층에 대한 이해가 부족해서인지, 연결이 되지 않는 느낌이다. 다음은 응용계층인데 괜찮을지도 모르겠다.
'기초네트워크' 카테고리의 다른 글
| [네트워크 기초] 7계층 프로토콜 HTTP (0) | 2023.05.14 |
|---|---|
| [네트워크 기초] 4계층에서는 TCP/UDP를 사용한다고 한다는데 (0) | 2023.05.05 |
| [네트워크 기초] 4계층의 포트번호호오오 (0) | 2023.05.01 |
| [네트워크 기초] 3계층의 라우터 테이블과 패킷 조각화 (0) | 2023.05.01 |
| [네트워크 기초] 3계층 IPv4 프로토콜 과 ICMP프로토콜 (0) | 2023.04.30 |