인터넷 주소 할당받기 (IP)

김지윤·2024년 5월 16일
0

컴퓨터 네트워크

목록 보기
16/19

이전 포스팅들에서는 내가 필요한 곳에 작은 네트워크를 구성하고 이용하는 방법에 대해 알아봤는데요, 이전 포스팅
우리가 구성한 네트워크를 넘어 다른 사람들과도 소통하고 싶다면 외부 네트워크와 연결되어야 합니다.
바로 인터넷에 연결되는 것인데요, 인터넷에는 수많은 네트워크들이 연결되어 있고 이를 각각 식별할 수 있어야 정확한 데이터 전달이 가능하겠죠?

이를 위해 네트워크마다 부여되는 주소가 바로 IP 주소입니다!

이전에 공부했던 MAC 주소가 하드웨어 장비에 부여되는 주소였다면, IP 주소는 네트워크마다 부여되는 주소입니다. 이전 포스팅

이렇게 두 가지 주소를 사용하는 이유는 IP 주소는 모든 사람이 사용하는 주소이기 때문에 언제든 변할 수 있어 목적지에 올바르게 도착하지 않을 수도 있습니다. 하지만 MAC 주소를 목적지로 사용한다면 잘못 도착할 가능성이 거의 없겠죠?



주소에는 규칙이 필요해!

당연히 IP 주소는 우리 모두 사용하는 것이므로 일정한 규칙이 필요합니다.

우리가 지금까지 사용해오고 있는 주소는 IPv4 입니다.
IPv4는 이진수 32자리로 이루어져 있는데요, 그렇다면.. 2의 32승 개의 주소를 만들 수 있겠죠?

하지만
스마트 시대를 살아가는 현재를 보면 PC를 사용 안하는 사람이 거의 없어요!
그래서 2의 32승 개가 거의 바닥이 났답니다..

내가 겪은 실화

프로젝트에서 클라우드 서버를 빌려 백엔드 서버와 DB를 배포했는데요, IP 주소를 할당받는 것이 원래는 무료였는데, 주소가 이제 남아있는 것이 거의 없어서 IP 주소 하나 당 5000원을 주고 사용했습니다..
(2024년 2월부터요..)

이를 대체하기 위해 IPv6라는 주소체계가 나왔고, 이를 사용하는 추세가 되고 있습니다.

무튼 아직 대부분의 PC는 IPv4를 가지고 있으니, 특징을 계속 살펴본다면
이진수 32개로 이루어져 있고, 8자리로 끊어서 구분합니다.
그리고 8개씩 묶은 단위를 옥텟이라고 하는데요, 총 4개의 옥텟으로 이루어져 있다는 것을 알 수 있습니다.

실제로는 이진수 이지만, 편하게 읽을 수 있도록 십진수로 바꿔서 표기합니다!

이진수 : 0000 0000.0000 0000.0000 0000.0000 0000
십진수 : 0.0.0.0



IP 주소에도 종류가 있다 (Class)

IP 주소는 이진수 32비트로 이루어져 있다고 했는데요,
IP 주소의 일부분은 네트워크를 분배하는데 사용되고, 나머지 일부분은 네트워크 안에서 장비(호스트)를 분배하는데 사용이 됩니다.

그리고 하나의 네트워크가 몇개의 호스트를 가지게 할 것인가에 따라서 A,B,C,D,E 클래스로 나누어 구분 짓습니다!

A 클래스
A 클래스는 4옥텟 중 맨 앞의 하나의 옥텟만 네트워크 부분으로 사용하는데, 옥텟 한 개는 0000 0000 자릿수니까 십진수로 1~126까지의 네트워크를 가질 수 있습니다. (0과 127은 규칙상 다른 곳에 사용된다.)
.
그렇게 되면 나머지 3개의 옥텟은 호스트에 부여할 수 있으니 2의 24승 빼기 2개를 사용할 수 있겠죠?
모두 0인 경우는 네트워크 자체를 의미하고, 모두 1인 경우는 브로드캐스트 주소로 사용이 됩니다!
.
B 클래스
B 클래스는 4옥텟 중, 앞의 2개의 옥텟을 네트워크 분배로 사용합니다. 여기에 조건이 하나 추가되는데 이진수 16자리 중 맨 앞의 숫자는 무조건 10이어야 된다는 것입니다.
.
그렇다면, 네트워크에 사용할 수 있는 번호는 128부터 191까지 입니다.
그리고 네트워크 당 가질 수 있는 호스트의 수는 2의 16승 빼기 2개가 됩니다.
.
C 클래스
C 클래스는 4옥텟 중, 앞의 3개의 옥텟을 네트워크 분배로 사용합니다. 여기에 조건이 하나 추가되는데 이진수 24자리 중 맨 앞의 숫자는 무조건 110이어야 된다는 것입니다.
.
그렇다면, 네트워크에 사용할 수 있는 번호는 192부터 223까지 입니다.
그리고 네트워크 당 가질 수 있는 호스트의 수는 2의 8승 빼기 2개가 됩니다.

A -> B -> C로 갈수록 하나의 네트워크 당 연결할 수 있는 호스트의 개수가 적어집니다.
이렇게 IP 주소를 체계적으로 분배함으로서 한정된 자원을 효율적으로 사용할 수 있게 됩니다!



네트워크 당 관리해야하는 호스트가 너무 많아요

하나의 네트워크에 할당된 호스트 주소 범위를 모두 한번에 사용하면 브로드캐스팅 시 효율적이지가 않습니다.

이 문제를 해결하기 위해 네트워크를 여러개의 서브 네트워크로 나누는데요, 이것을 서브넷이라고 합니다.
네트워크가 나뉘어졌기 때문에 각각의 서브넷은 라우터를 통해 통신해야 합니다.

서브넷을 사용해도 되고, 안 사용해도 되는 경우도 있는데요. 서브넷을 안 사용하더라도 네트워크마다 디폴트 서브넷 마스크를 제공합니다. 디폴트 서브넷 마스크는 클래스마다 A 클래스는 255.0.0.0, B 클래스는 255.255.0.0, C 클래스는 255.255.255.0 이에요.

실제로 서브넷을 나누기 위해서는 서브넷 마스크를 다양하게 사용할 수 있는데요, 규칙만 지키면 됩니다!
규칙은 이진수 32비트로 이루어진 서브넷 마스크를 나열했을 때, 1과 1사이에 0이 있지 않으면 되요

규칙을 지킨 서브넷 마스크로 서브넷을 생성하려면?
IP 주소와 서브넷 마스크를 AND 연산하면 자신의 서브넷 주소가 됩니다.
이렇게 나온 서브넷이 같은 IP는 같은 브로드캐스트 도메인에 속하게 되고, 서로 다른 서브넷끼리는 라우터를 통해 통신해야 되는 구조가 완성됩니다.

서브넷 마스크를 직접 생성하는 것은 다음시간에 자세히 다뤄보겠습니다!

profile
꾸준하게 공부하고 기록하는 개발자

0개의 댓글