안녕하세요. 회사와 함께 성장하고 싶은 KOSE입니다.

이번 포스팅은 사설 IP와 사설 IP를 공인 IP로 변경해 주는 NAT에 대한 정리를 진행하고자 합니다.

 

 

1. IP

 

IP (Internet Protocol Address)는 컴퓨터 네트워크 상의 각 장치를 식별하기 위해 사용되는 고유한 번호입니다.

네트워크 내의 컴퓨터, 라우터, 모바일 기기 등 각 장치에 할당된 숫자로 이루어진 라벨로,

이 주소를 바탕으로 데이터를 교환할 수 있습니다.

 

IP는 공인 IP / 사설 IP로 나눌 수 있습니다.

  • 공인 IP: 인터넷 상에서 유일하게 식별될 수 있는 주소입니다.
  • 사설 IP: 하나의 기업이나 가정 내부와 같은 사설 네트워크만의 유일한 주소로, NAT를 통해 인터넷과 통신할 수 있습니다.

 

IP 대역은 IPv4와 IPv6의 버전으로 나뉩니다.

  • IPv4: 32비트 주소로, 약 43억 개의 유일한 주소를 가집니다 각 부분은 0 ~ 255 사이의 숫자로 표시됩니다.
  • IPv6: 128비트 주소로, 콜론을 활용하여 16진수로 표현됩니다.

IP 주소는 전 세계적으로 할당과 관리가 필요하며, 주로 IANA(Internet Assigend Numbers Authority)가 지역별 인터넷 레지스트리를 처리하는 역할을 담당합니다.

 

 

2. 사설 IP

 

공인 IP는 인터넷 상에서 유일하게 식별될 수 있는 주소입니다. 하지만, IPv4의 경우 모든 IP대역을 합하더라도 약 43억 개입니다.

인구 증가와 더불어 IP를 활용하는 기기들이 증가함에 따라 43억 개의 개수는 모든 기기들을 식별할 수 있는 IP 대역이 될 수 없습니다.

따라서, 사설 IP라는 주소를 활용하여 이러한 IP 부족 현상을 해결할 수 있습니다.

 

사설 IP는 공인 IP와 각 구분된 네트워크 대역만 다르다면 (즉 다른 네트워크 상이라면), 아이피 주소는 여러 번 사용될 수 있습니다.

즉 공인 IP처럼 할당을 하게 되면 그 대역이 유일하게 유지되는 것이 아니라, 다른 네트워크에서는 사설 IP가 여러 번 사용될 수 있음을 의미합니다. 이는 하단에 NAT를 설명할 때 부가 설명을 하겠습니다!

 

사설 IP를 사용하는 이유는 다음과 같습니다.

  • 주소 공간 절약: IPv4는 43억개의 주소가 있으므로, 사설 IP를 활용하면, 같은 주소를 여러 네트워크에서 재사용할 수 있습니다.
  • 보안: 사설 IP 주소를 사용하면, 외부 인터넷에서 직접 접속할 수 없으므로 안전하게 보호할 수 있습니다.
  • 네트워크 관리: 네트워크 관리자가 특정 주소를 할당하거나 내부 네트워크 구조를 유연하게 설정할 수 있습니다.

사설 IP도, IP에 대한 구분이므로 IP의 범위 체계를 따르며, 사용가능한 대역이 정해져 있습니다.

  • 10.0.0.0 ~ 10.255.255.255 (10.0.0.0/8): 약 1677만의 주소를 포함하는 가장 큰 블록입니다.
  • 172.16.0.0 ~ 172.31.255.255 (172.16.0.0/12): 약 104만의 주소를 포함하는 블록입니다.
  • 192.168.0.0 ~ 192.168.255.255 (192.168.0.0/16): 주로 가정집에서 볼 수 있는 약 6만 5개의 주소 블록입니다.
* / 뒤에 오는 숫자 ex) /16 은 CIDR(Classless Inter-Domain Routing) 블록입니다.
전통적인 클래스 기반의 IP 주소 체계를 대체하기 위해 도입되었습니다.

/ 뒤에 오는 숫자는 서브넷 마스크의 비트 수를 나타내며,
해당 네트워크에서 호스트 식별자와 네트워크 식별자를 구분하는 데 사용됩니다.

ex) 192.168.0.0 /24 가 주어진다면
앞의 3개의 옥텟은 (8 +  8 + 8 = 24)는 네트워크 주소이며 나머지 옥텟 (8비트)는 호스트 주소가 됩니다

 

 

사설 IP는 이유가 명확하고, 사용가능한 대역이 정해져 있는데 실생활에 어떻게 활용되는 것일까요?

하단의 그림은 스타벅스에 있는 이용객이 와이파이를 쓰고 www.gose.com의 도메인에 접속하는 과정을 표현한 예입니다.  

 

 

wifi는 주로 iptime을 사용하게 됩니다.

공유기는 사용하는 유저에게 사설 IP를 부여하여 라우팅 테이블에 관리하고, 원하는 도메인에 요청을 보낼 때

공인 IP로 변경하여 요청을 수행하게 됩니다.

 

 

3. NAT

 

위에서 잠깐 설명한 공유기는 Gateway 역할을 수행하는 NAT(Network Address Translation)가 될 수 있습니다.

이 기기를 바탕으로 각 사용자는 사설 IP 주소를 공인 IP로 바꿔서 인터넷을 거쳐서 도메인에 접속할 수 있는 구조입니다.

이때, 유저가 설정한 Port, 그리고 동일한 공인 IP로 설정한 여러 가지 사설 IP를 구분할 수 있는 SRC port를 기록하게 됩니다.

 

 

이 라우팅 테이블은 다음의 특징을 가지고 있습니다.

  • NAT 테이블: NAT가 IP 주소를 변환하는 데 사용하는 DB입니다.
    이곳에 내부 사설 IP와 외부 공인 IP의 매핑 정보가 담깁니다.
  • 세션 추적: NAT 장비는 내부 네트워크에서 시작된 세션을 추적하고,
    해당 세션의 외부 통신에 사용되는 공인 IP 주소와 포트를 기록합니다.
  • 다이나믹 매핑: 일반적인 NAT는 동적 주소 매핑을 수행합니다.
    내부 장치가 외부와 통신을 시작하면 공인 IP 주소의 포트와 연결하여 테이블에 기록합니다.

일반적으로 NAT는 Port Address Translation(PAT)를 사용하여 각 개별 통신 세션을 구분할 수 있게 되는 것입니다.

NAT는 개별 라우터 당 자신만의 private IP를 가질 수 있습니다.

위에서 잠깐 언급했던 내용이 바로 이러한 NAT 특성에서 도출될 수 있는 내용입니다.

즉 공인 IP처럼 할당을 하게 되면 그 대역이 유일하게 유지되는 것이 아니라, 다른 네트워크에서는 사설 IP가 여러 번 사용될 수 있음을 의미합니다.

 

이렇게 제한적인 공인 IP를 인터넷 전체에서 유일할 필요가 없는 사설 IP로 보완함으로써, 공인 IP의 소진을 어느 정도 해결할 수  있습니다.

다만, 공인 IP도 결국 IPv4 체계에서는 한정적임으로 IPv6로의 꾸준한 변화가 필요한 이유입니다!

 

이상으로, 사설 IP / NAT 정리를 마치도록 하겠습니다.

읽어주셔서 감사합니다!

 

참고 자료: AWS 강의실 https://www.youtube.com/watch?v=3VXLD0-Iq8A

 

 

+ Recent posts