[네트워크] IP 주소고갈 문제
IP는 우리가 익히 알고 있듯이, 192.168.1.100 이런식으로 적혀져있는 숫자이며, 주소값이다.
메모리는 유한하기에 숫자의 조합은 방대하더라도 분명히 끝은 정해져있다. 이것이 IP 주소고갈 문제로 이어진다.
기존의 IPv4 방식의 경우, 32비트 주소 체계를 사용하여 약 42억 개의 고유한 주소를 제공할 수 있다. 하지만 인터넷의 급속한 확장으로 인해 현재 이미 99%의 주소가 할당되어 있으며, 더이상의 신규 주소 할당은 막아놓은 상태이다. 마치 더 이상 개척할 땅이 없으면 개발을 멈출 수 밖에 없는 상황과 비슷하다고 할 수 있다.
그렇다면 네트워크에서 IP주소가 고갈되면 어떠한 문제가 있길래 이를 방지해야하는 걸까 싶을 수 있다.
1. 장치 추가 제한
가장 쉽게 떠오를 수 있는 문제는 네트워크내에 새로운 장치를 추가할 수 없게 된다는 것이다.
IP주소는 네트워크내에서 장치들을 식별하기 위한 주소인데 이게 부족하다면 당연하게도 새로운 장치를 네트워크내에 추가할 수 없게 되는 것이다.
이는 마치 주소가 없는 곳에 전입신고를 하겠다는 거나 마찬가지이다.
2. 네트워크 성능 저하
IP 주소가 부족할 경우, 임시적인 해결책으로 IP 주소를 재사용하거나 비효율적으로 할당할 수 있다.
이로 인해 네트워크 충돌, 잘못된 라우팅, 브로드캐스트 스톰 등을 유발하여 네트워크 성능을 저하시킬 수 있다.
이처럼 IP주소가 고갈되면 네트워크의 확장성과 성능에 문제가 있다.
그렇기에 이러한 문제를 해결하기 위해 다음과 같은 방안들이 제시되었다.
1. 서브네팅 (Subnetting)
서브네팅은 호스팅 할당 수를 줄여 네트워크 할당 수를 늘리는 것을 의미한다.
예를 들어, 192.168.1.0/24라는 네트워크가 있다고 가정해보자.
이 주소에서 /24는 네트워크에 24비트가 네트워크 부분으로 할당되었고, 나머지 8비트가 호스트를 위해 사용된다는 의미이다.
이 설정에서는 한 네트워크에 최대 256개(2의 8승)의 호스트(실제로는 254개, 네트워크 주소와 브로드캐스트 주소 제외)를 가질 수 있다. 그렇다면 서브네팅을 사용하게 되면 어떻게 될까?
예를 들어 192.168.1.0/24 네트워크를 /26으로 서브네팅하면, 다음과 같은 네 개의 서브넷이 생성된다:
- 192.168.1.0/26 (가능한 호스트 주소: 192.168.1.1 - 192.168.1.62)
- 192.168.1.64/26 (가능한 호스트 주소: 192.168.1.65 - 192.168.1.126)
- 192.168.1.128/26 (가능한 호스트 주소: 192.168.1.129 - 192.168.1.190)
- 192.168.1.192/26 (가능한 호스트 주소: 192.168.1.193 - 192.168.1.254)
이처럼 각 서브넷에서 사용 가능한 호스트 수는 줄어들기에 서브네팅을 적용하기 위해서는 호스트 파트는 여유가 있되 라우터에 할당할 네트워크 파트가 부족한 경우 진행하는 것이다.
전체 네트워크를 통들어 보았을 때, 사용할 수 있는 호스트의 총 수는 동일하지만 네트워크를 식별하는 부분을 생각한다면 할당 가능한 개수가 늘어나는 것이다.
추가적으로, 각 서브네트는 서로 다른 네트워크로 간주되므로, 서브넷 간 통신을 위해서는 라우터를 통해야 한다.
2. 네트워크 주소 변환 (NAT)
많은 가정과 기업에서 같은 192.168.x.x의 범위의 주소를 사용하고 있다. 그렇다면 의문이 하나 들것이다.
분명히 IPv4 주소 체계에서 할당가능한 IP주소는 이미 더이상 추가적인 할당이 불가능한 것으로 알고 있는데 당장 우리집에 있는 장치들은 대체 뭘까 싶을 수 있다.
그리고 우리집 디바이스와 같은 IP주소를 기반으로 통신한다면 IP주소가 겹침으로서 충돌이 발생하지는 않는지 의문이 들 수 있다.
이게 가능한 이유는 NAT(Network Address Translation) 덕분이다.
NAT란 내부 네트워크에서는 비공식적인(사설) IP 주소를 사용하고, 인터넷과 같은 외부 네트워크로 통신할 때는 공식적인(공인) IP 주소를 사용하는 방식을 의미한다.
예를 들어, 가정집내의 디바이스들이 192.168.x.x 와 같은 주소를 가지고 있다면, 이들과 연결된 라우터는 203.0.113.1 와 같은 공인 IP 주소를 가지고 있는 것이다.
참고로 이 공인 IP주소는 IPv6 주소 체계를 사용하고 있으며 그렇기에 고유하다.
이 기술을 통해 집이나 사무실 내부의 여러 디바이스가 하나의 공인 IP 주소를 공유하여 인터넷에 접속할 수 있는 것이다.
각 내부 디바이스는 고유한 포트 번호를 통해 구별되며, NAT를 통해 한정된 공인 IP 주소를 보다 효율적으로 사용할 수 있는 것이다.
앞선 두가지 방법을 보면 알겠지만, 둘다 근본적으로 IP주소 고갈 문제를 해결한다기 보다는 현재 있는 자원을 얼마나 더 효율적으로 사용할지에 대해 고민하는 방법이라는 것을 알 수 있다. 그렇다면 보다 근본적으로 주소 고갈 문제를 해결하기 위한 방법은 무엇일까?
3. IPv6
IPv6는 IPv4의 주소 고갈 문제를 근본적으로 해결하기 위해 도입된 새로운 인터넷 프로토콜이다.
128비트 주소 체계를 사용하므로, 실질적으로 무한에 가까운 수의 주소를 생성할 수 있습니다.
IPv6는 또한 네트워크 디바이스에서 데이터 패킷을 처리하는 방식을 단순화하여 더 빠른 데이터 전송이 가능하게 해준다.
IPv4와는 다르게 구성되어 있으며, 현재 IPv4와 IPv6는 동시에 사용되고 있습니다.