IP클래스, 서브넷 마스크, 서브넷팅 계산법

startingfindmistake·2025년 12월 10일

아이피(IP)정리

IP(Internet Protocol)란 인터넷에 연결되어 있는 모든 장치들(컴퓨터, 서버 장비, 스마트폰 등)을 식별할 수 있도록 각각의 장비에게 부여되는 고유 주소이다.

아이피(ip)는 일반적으로 192.168.123.132와 같이 마침표로 구분된 4개의 숫자가 있는, 점으로 분리된 10진수 형식으로 표시된다.

이를 2진법으로 표현한다면, 32비트 숫자 1000000.10101000.01111011.10000100 가 된다.

즉, 아이피는 32bit로 이루어진 주소이며, 1bit가 2이니까 2의 32승, 약 43억개의 주소를 가지게 된다.


IP 주소 구성

아이피는 네트워크ID+호스트ID로 구성되어 진다.

Network ID는 예를 들면 전세계 Host들을 관리하기 힘드니 각 국가마다 Network ID를 부여한다고 보면 된다.
그럼 네트워크 아이디가 같으면 어떤 국가인지 알 수 있게 된다.
그리고 HostID는 호스트들을 개별적으로 관리하기 위해 사용하게 된 것이다. 즉, 국가의 국민에 해당한다.
따라서 우리가 인터넷을 사용할 때 목적지를 알아내고 찾아가기 위해서는 NetworkID와 HostID가 합쳐진 IP주소를 보게 된다.

192.168.10.10 → 11000000.10101000.00001010.00001010

네트워크 주소는 11000000.10101000.00000010 이 되고, 나머지 파랑 부분인 00001010은 호스트 주소가 된다.

그리고 192.168.10. 으로 시작하는 PC는 192.168.10.10192.168.10.25192.168.10.126 ...과 같은 네트워크에 속하고 있다고 말 할 수 있다.

  • 네트워크 ID: 모든 호스트를 관리하기 힘들기 때문에 한 네트워크의 범위를 지정한 ID
  • 호스트ID: 각가의 호스트를 관리하기 위해 사용

IP 주소 클래스

IP클래스는 예전에 IPV4를 사용했을 때 IP를 할당하는 방법이었다.

지금은 더 이상 사용되지 않고, 클래스 방식이 아닌 다른 방식(CIRD 방식)으로 할당하도록 1993년도에 바뀌었지만,
서브네팅을 하기위해선 기본 개념을 알고 가야 하기 때문에 학습이 필요한 부분이다.

IP 주소를 8비트로 4등분 하면, 각각을 옥텟(Octet)이라 부른다.
각 옥탯별로 0~255개의 범위가 되므로 각각 256개가 들어갈 수 있게 된다.

그리고 이 옥탯 별로 IP의 클래스A, B, C로 나눌 수 있다.

각 클래스마다 위에서 배운 네트워크 ID부분과 호스트 ID부분 범위가 서로 다른것을 볼 수 있다.

이런식으로 나눔으로서 각 클래스마다 할당 되는 총 호스트 갯수가 나뉘어져 보다 체계적으로 관리할 수 있게 된다.

클래스항목내용
A 클래스주소1.0.0.0 ~ 127.255.255.255
서브넷 마스크255.0.0.0
그룹별 호스트 개수2^24-2 = 16,777,214 개
B 클래스주소128.0.0.0 ~ 191.255.255.255
서브넷 마스크255.255.0.0
그룹별 호스트 개수2^16-2 = 65,534개
C 클래스주소192.0.0.0 ~ 223.255.255.255
서브넷 마스크255.255.255.0
그룹별 호스트 개수2^8-2 = 256개
D 클래스주소224.0.0.0 ~ 239.255.255.255
특징멀티캐스트용
E 클래스주소240.0.0.0 ~ 254.255.255.255
특징미래에 사용할 IP로 예약되어 있음

보통 우리가 사용하는 클래스는 3개다 (A, B, C)

A클래스

  • A Class의 경우 처음 8bit(1byte)가 Network ID이며,
    나머지는 24bit(3byte)가 HostID로 사용된다.
  • A Class의 첫번째 옥텟의 비트는 0으로 고정된다.
  • 따라서 A Class의 범위는 첫 옥텟이 1 ~ 126 사이의 숫자로 시작한다.
  • A클래스는 호스트 ID 대역이 24bit이므로, 네트워크 당 나올 수 있는 호스트 주소 갯수는 1670만개 이므로, 대규모 네트워크에 적합하다.

B클래스

  • B Class의 경우 처음 16bit(2byte)가 Network ID이며,
    나머지 16Bit(2byte)가 Host ID로 사용된다.
  • B클래스는 첫번째 옥텟의 두번째 비트가 10으로 고정이 된다.
  • 네트워크 주소는 처음 16비트이며 호스트 주소는 나머지 16비트
  • 따라서 B Class의 범위는 첫 옥텟이 128~191 사이의 숫자로 시작한다.
  • host 대역이 16bit 이므로 네트워크 당 나올 수 있는 호스트 수는 약 650000개 이므로 중규모 네트워크에 적합하다.

C클래스

  • C Class의 경우 처음 24bit(3byte)가 Network ID이며,
    나머지 8bit(1byte)가 Host ID로 사용된다.
  • C클래스는 첫번째 옥텟의 세번째 비트가 110으로 고정.
  • 네트워크 주소는 처음 24비트이며 나머지 8비트는 호스트 비트
  • 따라서 C CLass의 범위는 첫 옥텟이 192 ~ 223 사이의 숫자로 시작한다.
  • host 대역이 256개이므로 소규모 네트워크 환경에 적합하다.

D클래스

  • D Class는 첫번째 옥텟의 네번째 비트가 1110으로 고정
  • 그래서 표현할 수 있는 범위는 224.0.0.0 ~ 239.255.255.255
  • 멀티캐스트용 대역으로 IP주소에 할당되지 않는다.

E클래스

  • E클래스는 첫번째 옥텟의 네번째 비트가 1111으로 고정
  • 그래서 표현할 수 있는 범위는 240.0.0.0 ~ 255.255.255.255
  • 연구용 예약된 주소 대역으로 IP주소에 할당되지 않는다.

네트워크 주소 , 브로드 캐스트 주소

여기서 유의할 점이 있는데, 아이피 주소에서 사용할 수 없는 주소가 두가지가 존재한다.
가장 첫번째 호스트 주소는 네트워크자체를 지칭하며,
마지막 주소는 브로드캐스트용 주소로 쓰인다.

네트워크 주소는 말 그대로 네트워크 자체를 나타내는 것이고,
브로드 캐스트 주소는 인터넷 데이터를 전달하기 위한 주소로서,
이것은 모든 네트워크 아이피 클래스에서 동일하게 적용 되는 것이므로 주의해야 한다.

한 네트워크를 나타내는 주소나 데이터를 전달하기 위한 주소를 PC에서 사용하면 문제가 생기기 때문에 사용 할 수 없는 주소로 정리 하면 된다.

다음과 같이 사용할 수 있는 아이피 주소 범위가 있다고 하자

192.168.10.0 ~ 192.168.10.255

여기서 첫번째 192.168.10.0은 192.168.10의 네트워크 자체를 가리키고,

맨 마지막 192.168.10.255가 브로드캐스트용 주소가 되게 된다.

그리고 그 사이의 192.168.10.1 ~ 192.168.10.254 주소들을 우리가 실제로 사용하는 것이다.

정리하면

  • 네트워크 주소
    • 호스트 ID가 모두 0인 주소
    • 네트워크 자체를 나타내는 주소
  • 브로드캐스트 주소
    • 호스트 ID가 모두 1인 주소
    • 네트워크의 모든 호스트로 데이터를 전달하기 위한
      통로로서의 주소

서브넷/ 서브넷 마스크/ 서브네팅 정리

서브넷(Subnet)

앞서 배웠듯이 IPv4는 초기에 부족한 아이피 주솔르 해결하기 위해 ip 클래스로 나누어서 할당을 방법을 택했다.

하지만 사용해보니 이 방식은 오히려 비효율적 이었던 것이다

예를 들어 Class B를 어느 중소기업체에게 할당했을 경우 만일 그 기업이 65000여개의 아이피를 다 쓴ㄴ 것이 아닌 20000개 정도만 쓴다고 가정해보면

그럼 나머지 45000여개의 IP는 쓰이지 않은 채 이 기업체는
Class B의 하나를 점유하고 있는 상태가 되어 버린다.
그렇다고 이 기업체에게 C class IP(256개)를 할당하자니 IP 자원이 너무 부족하게 되어 버린다.






이러한 문제를 해결하기 위해 IP를 사용하는 네트워크 장치 수에 따라 효율적으로 사용할 수 있는 서브넷(Subnet) 개념이 등장하게 되었다.

  • 서브넷(Subnet)이라는 것은 하나의 네트워크가 분할되어 나눠진 작은 네트워크이다.
  • 서브넷을 만들기위해 네트워크를 분할하는 것을 서브네팅(Subnettin)이라고 한다.
    서브네팅을 하면 IP할당 범위를 더 작은 단위로 쪼갤 수 있게 된다.
    그래서 단일 ip가 100개만 필요하다면 C클래스(256개)를 더 쪼개서 줄 수 있다.
  • 그리고 이 서브네팅을 서브넷 마스크(Subnet Mask)를 통하여 계산되어 수행된다.

서브넷 마스크(Subnet Mask)

서브넷 마스크는 ip주소에서 네트워크 ID와 호스트 ID로 구분하기 위한 목적으로 만들어 졌다.

ip클래스마다 주소 범위가 정해져있어서 앞자리만 보고도 어느 클래스인지 판별할 수는 있긴 하지만 보다 쉽게 구분하기 위해서 고유의 표기법으로 구분한다고 이해하시면 될 것 같다.

서브넷 마스크 표현

서브넷 마스크는 IP 주소와 똑같은 32비트 2진수로 표현된다.

255.255.255.0

여기서 IP와 표현이 다른 점은 서브넷 마스크는 연속된 1과 연속된 0으로 구성되어있다는 것이다.

즉,10011111.1101111.11110011.00000000 와 같이 1 중간에 0이 들어올는 값을 가질 수 없고,

11111111.11111111.11111100.00000000의 1이 연속되거나 아닌 형태만 가질 수 있다는 말이다.

앞서, 서브넷 마스크는 네트워크 아이디와 호스트 아이디를 보다 편하게 구분하기 위해 사용된다라고 했었다.

서브넷 마스크 옥텟(1바이트)가 255면 즉 네트워크 아이디를 가리키게 되는 것이다.

그래서 간단하게 IP주소와 서브넷 마스크를 이용해서 이 IP가 어느 클래스인지 알 수 있다.

CLASSS대역디폴트 서브넷 마스크
A1.0.0.0 ~ 127.255.255.255255.0.0.0
B128.0.0.0 ~ 191.255.255.255255.255.0.0
C192.0.0.0 ~ 233.255.255.255255.255.255.0

Prefix표현

서브넷 마스크를 위보다 더욱 간소화해서 표현할 수 있다.
바로 비트를 이용한 방법인데, IP 주소가 192.168.0.1/24라면 뒤에 /24가 서브넷 마스크를 표현한 것이다.

/24라는 뜻은 32비트 중 앞에서부터 차례대로 1의 개수가 24개라는 의미이다.
나머지 32-24=8은 0으로 채워주면 서브넷 마스크 숫자가 되는 것이다.

/24 -> 11111111.11111111.11111111.00000000

기존의 서브넷을 나타내는 방법 255.255.255.0을 /24 즉, 네트워크에 해당하는 비트의 수로 표시하는 방식을 말한다고 보면 된다.

이렇게 하면 IP주소를 입력할 때 192.168.1.17 255.255.255.0192.168.1.17/24로 간략히 줄일 수 있게 된다.

서브넷 정보를 알려주기 위해 기존에는 4B가 필요했지만
6bit만 있으면 해당 정보를 전달할 수 있어서 네트워크 리소스를 절약할 수 있다.

  • 10.10.10.10/8 -> A클래스
  • 172.16.1.10/16 -> B클래스
  • 192.168.100.10/24 -> C클래스

서브네팅(Subnetting)

서브네팅이란 간단하게 말하자면 IP주소를 효율적으로 나누어 사용하기 위한 방법을 일컫는다.

네트워크 성능 보장, 자원을 효율적으로 분배하기 위해 네트워크 영역과 호스트 영역을 쪼개는 작업을 행한다.

서브넷팅을 하면 IP할당 범위를 더 작은 단위로 나눌 수 있게 된다.(자신의 네트워크 주소를 더 작은 서브 네트워크로 2의 배수로 나누는 과정)

예를들어 호스트를 50개만 사용하는 기업이 192.168.10.0/24 아이피 주소를 사용한다고 가정하면, C클래스이니까 총 256개의 주소를 할당하게 되는데,

256개 전체를 주기에는 낭비가 되니까, 이 256개를 절반으로 나누고(128) 또 절반으로 나눈(64개) 주소를 기업에게 할당하고 남는 네트워크 주소는 다른 사용처로 할당하는 효율적인 작업이 바로 서브네팅 원리이다.

주소범위를 절반으로 나누기(2등분)

예를들어, 100개의 아이피를 사용하는 회사가 있다고 가정하면
이 회사에게 아이피 대역을 할당할 예정이다.
100개 밖에 사용안하니 가장 작은 C클래스 대역을 줄 예정인데(192.168.10.0/24) 그래도 256개를 전부 주기에는 낭비가 있어 보인다.

/24 라는 뜻은 1이 24개라는 뜻이다.
그러면 24비트까지가 네트워크 ID(3옥텟), 25번째 부터는 호스트ID(1옥텟)이 된다.

  • 11000000.10101000.00001100.00000000

호스트ID가 8비트이니까 즉, 할당가능한 호스트 갯수는 2^8=256개가 된다.

하지만 이 회사는 100개의 호스트만 사용한다고 하니 256개를 전부 주는 것은 낭비이다.
256개의 주소를 절반으로 나누는 작업을 시행해보자.

128개씩 두개로 나누기 위해 서브넷 구분 비트 라는 것을 지정해주어야 한다.

서브넷 구분 비트는, 이름 그대로 네트워크 주소를 어느 기준으로 쪼개서 서브넷(분할된 네트워크)을 만들어 구분할지 정하는 비트라 이해하면 된다.

서브넷 구분 비트는 항상 호스트 ID에서 외쪽부터 결정이 되어야 한다는 특징이 있다.



즉, 호스트 ID의 맨 왼쪽을 서브넷 구분 비트로 지정하게 되면, 0과 1로 구분되어지는데,
범위가 2진수로 다음과 같이 나뉘게 된다.

.00000000 ~ .01111111 (0 ~ 127)
.10000000 ~ .11111111 (128 ~ 255)

즉, 호스트ID맨왼쪽 비트가 0이냐 1이냐에 따라 서브넷이 두개로 분리되게 된다.

따라서 서브넷 구분 비트 2^7승 128값 기준으로 서브넷 주소 범위가 두 개로 나뉘어진다.

나뉘어진 서브넷을 10진수로 아이피 전체 주소 범위를 표현하여 둘로 나뉘면 아래와 같이 된다.

이렇게 절반으로 나눈 한 서브넷 부분을 이제 회사에게 할당하고 나머지도 필요한 곳에 분배하면 된다.

이때 위에서 유의했듯이 어느 한 네트워크 범위의 가장 첫번째 주소(0)과 마지막 주소는 네트워크/브로드캐스트 주소로서 제외하여야 한다고 하였다.

참고문헌

https://inpa.tistory.com/entry/WEB-IP-%ED%81%B4%EB%9E%98%EC%8A%A4-%EC%84%9C%EB%B8%8C%EB%84%B7-%EB%A7%88%EC%8A%A4%ED%81%AC-%EC%84%9C%EB%B8%8C%EB%84%B7%ED%8C%85-%EC%B4%9D%EC%A0%95%EB%A6%AC

profile
도움이되었다면 그것으로 충분 합니다.

0개의 댓글