할당된 주소 범위를 나누는 서브넷 #

서브넷은 큰 네트워크를 정적 혹은 동적으로 나누는 것을 의미합니다.

여기서 말하는 큰 네트워크라는 것은 할당된 주소 범위를 의미합니다. 단일 주소가 아닌 주소의 범위를 ISP로부터 할당받은 주소 범위를 가리킵니다.

서브넷을 나누는 두가지 방법 #

이 주소 범위를 나누는 것을 서브넷이라고 하며 서브넷은 두가지로 방법으로 나뉩니다.

%%{init: {'theme':'dark'}}%% graph TD; A("서브넷") --> B("가변길이 서브넷마스크 (FLSM)") A("서브넷") --> C("고정길이 서브넷마스크 (VLSM)")

장점 #

  • 서브넷은 네트워크 트래픽을 분산해 성능을 개선합니다.
  • 각 서브넷은 서로 격리되어 있어 서브넷간 간섭이 없습니다.
  • 서브넷은 네트워크 관리를 단순하게합니다.

예시 #

예를 들어,

IP 주소 범위가 192.168.0.0 부터 192.168.255.255인 큰 네트워크 범위를 아래와 같이 나눌 수 있다.

  • 192.168.1.0/24 (0~255)
  • 192.168.2.0/24 (0~255)
  • 192.168.N.0/24 (0~255)
%%{init: {'theme':'dark'}}%% graph TD; A("192.168.0.0 ~ 192.168.255.255") --> B("192.168.1.0/24") A --> C("192.168.2.0/24") A --> D("192.168.N.0/24")

각 서브넷은 256개(0-255)의 IP 주소를 가질 수 있으며, 각각 독립적으로 작동합니다.

이제 서브넷을 나누는 알고리즘에 대해 알아보겠습니다.

고정 길이 서브넷 마스크 (FLSM) #

  • 정의: FLSM은 모든 서브넷이 동일한 크기를 가지는 서브넷팅 방식입니다. 즉, 모든 서브넷에 동일한 길이의 서브넷 마스크를 사용합니다.

  • 사용: FLSM은 네트워크의 각 부분이 유사한 크기의 호스트 그룹을 필요로 할 때 사용됩니다.

  • 단점: IP 주소 공간이 낭비될 수 있습니다. 예를 들어, 몇 개의 호스트만 필요한 작은 네트워크에도 불구하고, 더 큰 서브넷을 할당해야 할 수 있습니다.

예시 #

  • 네트워크 주소 192.168.1.0를 가진 /24 서브넷 마스크를 가진 네트워크가 있는 경우를 가정하겠습니다.

/24는 CIDR 표기법으로 첫 24비트 즉 3 옥텟이 네트워크 ID로 사용되는 것을 의미하며 3 옥텟이 네트워크 ID로 사용되었으므로 마지막 옥텟을 호스트 ID로 사용 할 수 있습니다.

따라서 0부터 255까지 256개의 IP 주소를 포함하게 됩니다.

단, 실제 사용가능한 주소는 256 - 2개인데 두 주소를 빼는 이유는 prefix된 주소이기 때문입니다.

  • 네트워크 주소: 192.168.1.0은 해당 주소를 식별하기 위한 네트워크 주소로 이미 정해져 있는 값입니다.
  • 브로드캐스트 주소: 192.168.1.255는 해당 네트워크를 사용하는 모두에게 데이터를 동시에 전송하기 위한 주소입니다.

256개의 호스트를 4개의 서브넷으로 나누기 위해 호스트 주소 공간에서 2 비트를 네트워크 주소 공간으로 재할당합니다. 이는 위에서 설명한 /24/26이 된다는 의미입니다.

  • 2 비트는 00, 01, 10, 11로 4개의 서브넷을 만들 수 있는 자리로 충분합니다.

네트워크 주소: 11111111 11111111 11111111 + 호스트 주소: 11111111
네트워크 주소: 11111111 11111111 11111111 11 + 호스트 주소: 111111

호스트 주소 2비트를 네트워크 주소로 재할당했기 때문에 이제 호스트 주소는 6비트만이 남았습니다.

네트워크 주소 192.168.1.0/24일 때 서브넷을 4개로 나누기 #

원래의 서브넷 마스크: 255.255.255.0 = (network)11111111.11111111.11111111.(host)00000000 원래의 호스트 주소 범위: 192.168.1.1 ~ 192.168.1.254 = 11111111.11111111.11111111.00000000 (254개의 호스트)

위 호스트 주소 범위를 4등분 하기 위해선 호스트 주소의 2 자리를 네트워크 주소에 내주어야 합니다.

2 자리를 내주는 것은 서브넷 마스크를 아래와 같이 변경한다는 것입니다. 11111111.11111111.11111111.11000000 (CIDR = /26)

4번째 옥텟이 11000000로 변경되었습니다. 이는 10진수로 192입니다. 따라서 새로운 서브넷 마스크는 255.255.255.192/26입니다.

  • 첫 번째 서브넷:
    • 유효 서브넷 ID: 11000000.10101000.00000001.00000000
    • 네트워크 주소: 192.168.1.0/26
    • 사용 가능한 호스트 범위: 192.168.1.1 ~ 192.168.1.62
    • 브로드캐스트 주소: 192.168.1.63
  • 두 번째 서브넷:
    • 유효 서브넷 ID: 11000000.10101000.00000001.01000000
    • 네트워크 주소: 192.168.1.64/26
    • 사용 가능한 호스트 범위: 192.168.1.65 ~ 192.168.1.126
    • 브로드캐스트 주소: 192.168.1.127
  • 세 번째 서브넷:
    • 유효 서브넷 ID: 11000000.10101000.00000001.10000000
    • 네트워크 주소: 192.168.1.128/26
    • 사용 가능한 호스트 범위: 192.168.1.129 ~ 192.168.1.190
    • 브로드캐스트 주소: 192.168.1.191
  • 네 번째 서브넷:
    • 유효 서브넷 ID: 11000000.10101000.00000001.11000000
    • 네트워크 주소: 192.168.1.192/26
    • 사용 가능한 호스트 범위: 192.168.1.193 ~ 192.168.1.254
    • 브로드캐스트 주소: 192.168.1.255

만약 3번째 서브넷의 4번째 사용 가능한 IP를 계산하라 하는 문제가 있다면

세 번째 유효 서브넷 ID에서 네트워크 주소와 브로드캐스트 주소를 빼고 계산해야 합니다.

  1. 세 번째 서브넷: 11000000.10101000.00000001.10000000
  2. 4번째 옥텟의 252^5까지 사용 가능한 호스트 ID입니다: 000000
  3. 주소들
    1. 1번째 주소: 000001
    2. 2번째 주소: 000010
    3. 3번째 주소: 000011
    4. 4번째 주소: 000100
  4. 이제 서브넷과 호스트ID를 전부 이어주면 11000000.10101000.00000001.10000100입니다.
  5. 마지막으로 10진수로 치환하면 192.168.1.132가 됩니다.

정리 #

서브넷팅은 할당 받은 IP 주소 범위를 나누어 사용하고 나눌땐 호스트 ID 자리를 네트워크 ID로 바꿔주어야 한다.

9개의 서브넷팅의 경우 2의 지수로 나누어 떨어지지 않아 242^4개로 서브넷팅 해야 한다.