2 minute read

개요

: 서브넷마스크를 알아본다.

서브넷마스크

ex) 0000.0000.0000.0000 

간단한 예시로 8비트만 계산하면 아래와 같다.
  1  1  1  1 1 1 1 1 
128 64 32 16 8 4 2 1

  • 총 32비트를 가지며, 8비트 단위로 이루어져 있고 8비트 단위를 옥텟이라고 부른다.
  • 서브넷마스크는 1과 0으로 이루어져 있다.
  • 반드시 1이 연속으로 나와야 한다.
  • 192.168.0.1/24 라는 아이피에서 서브넷마스크는 /24 이다.
  • /24 의 표현은 1이 24개 있다는 뜻이다.
  • 1은 [네트워크영역]으로 사용한다.
  • 0은 [호스트IP]으로 사용한다.
  • 192.168.0.1/24 라는 아이피에서 ==> C클래스임을 도출하고 ==> 255.255.255.0 임을 도출할 수 있다.(C클래스의 디폴트마스크)

(1) IP주소

# 10진수 표현
147.79.123.172/19


# 32비트 2진수 표현 
10010011.01001111.01111011.10101100

위와 같은 아이피가 주어졌다.
넷마스크(서브넷마스크)는 /19 이다.

(2) 서브넷마스크

# /19 를 해석

11111111.11111111.11100000.00000000

맨 처음에 IP 주소 뒤에 /숫자를 해석하면 된다.
/19는 1이 19개 있다는 뜻이다.
인터넷에서 표를 참고하면 더 쉽게 알 수 있다.

(3) 네트워크 주소

10010011.01001111.01111011.10101100
11111111.11111111.11100000.00000000             #32비트로2진수로 표현한 네트워크주소
-------------------------------------------
                        147.79.96.0 (Class B)   #10진수로 표현한 네트워크주소
       

IP주소와 서브넷마스크를 AND 연산한 결과.
맨 앞부터 연산결과에서 가장 마지막인 1까지가 네트워크 주소가 된다.
즉, 호스트 ID가 모두 0인 주소이다.

(4) 브로드캐스트 주소

10010011.01001111.01111011.10101100
10010011.01001111.01111111.11111111             #32비트로2진수로 표현한 브로드캐스트주소
-------------------------------------------
                       147.79.127.0 (Class B)   #10진수로 표현한 브로드캐스트주소
       

네트워크영역을 다시 IP로 채워놓고 AND 계산한다.
네트워크영역을 제외한 나머지인 호스트영역을 모두 255 으로 채워버린다.
호스트영역은 AND 계산할 필요없이 255가 된다.
즉, 호스트ID가 모두 1인 주소이다.

호스트 주소

# 호스트주소 계산법
네트워크주소+1 ~ 브로드캐스트주소-1 

호스트영역 범위가 실제 사용자가 사용할 수 있는 IP범위가 된다.

첫번째주소 147.79.127.1 은 네트워크 자체를 나타내는 용도이다. 보통 공유가(라우터)가 가져가게 된다. 그래서 보통 사용자들은 147.79.127.2 부터 할당 받는다.
두번째주소 147.79.127.255 은 브로드캐스트 용도이다.

서브네팅

  • 네트워크관리자가 네트워크 성능을 향상시키기 위해서 자원을 효율적으로 분배하는 작업이다.
  • 즉, 서브넷마스크가 등장한 이유이다. 진짜 필요한 [네트워크주소]만 [호스트IP]로 할당하는 작업이 서브넷팅이다.
  • 자원을 효율적으로 분배한다는 의미는 [네트워크영역]과 [호스트영역]을 분할하는 것을 의미한다.
  • 너무 큰 브로드캐스트 도메인은 네트워크 패킷 전송을 느리게 하고 성능저하를 발생시키기 때문에 분배한다.
  • IP할당 범위를 더 작은 단위로 나누는것이 최종 목적이다.

서브넷마스크 표
링크
서브네팅 참고 블로그
링크

예시

: 아래 내 예시를 살펴본다.

  1. 만일 호스트를 50개만 사용하는 기업이 존재.
  2. 192.168.10.0/24 아이피 주소를 사용한다면 가정한다.
  3. C클래스이니까 총 256개의 주소를 할당하게 되는데,
  4. 256개 전체를 주기에는 낭비가 된다, (50개만 필요하니까!)
  5. 256개를 절반으로 나누고(128개) 또 절반으로 나눈(64개) 주소를 기업에게 할당하고
  6. 남는 네트워크 주소는 다른 사용처로 할당하는 효율적인 작업이 바로 서브네팅 원리이다.

예제

: 아래 예제를 살펴본다.

  1. 만일 100개의 아이피를 사용하는 기업이 존재
  2. 이 회사에게 아이피 대역을 할당할 예정이다
  3. 100개 밖에 사용안하니 가장 작은 C클래스 대역을 줄 예정(192.168.10.0/24)
  4. 그래도 256개를 전부 주기에는 낭비가 있어 보인다.
    • 11111111.11111111.11111111.00000000 범위의 [네트트워크영역]을 제외한 [호스트IP]가 8비트 뿐이다. 2^8=256게
    • 즉, 192.168.10.1 ~ 192.168.10.254 범위의 [호스트IP]를 가진다.
    • 256개의 주소를 절반으로 나누는 서브네팅이 필요한 시점이다.

나누기

  1. 128개씩 두개로 나누기 위해 [서브넷 구분 비트] 라는 것을 지정해주어야 한다.
  2. [서브넷 구분 비트]는, 이름 그대로 네트워크 주소를 어느 기준으로 쪼개서 서브넷(분할된 네트워크)을 만들어 구분할지 정하는 비트라 이해하면 된다.
# IP
192.168.10.0/24       

# 네트워크영역
11000000.10101000.00001010.00000000 (Class C)

서브넷 구분 비트는 항상 호스트 ID에서 왼쪽부터 결정이 되어야 한다는 특징이 있다.
호스트ID의 맨 왼쪽을 서브넷 구분 비트로 지정하게 되면, 0과 1로 구분되어지는데,
범위가 2진수로 다음과 같이 나뉘게 된다

.00000000 ~ .01111111 (0 ~ 127)      # 호스트 ID맨왼쪽이 0인 경우
.10000000 ~ .11111111 (128 ~ 255)    # 호스트 ID맨왼쪽이 1인 경우

즉, 호스트ID 맨왼쪽 비트가 0이냐 1이냐에 따라 서브넷이 두개로 분리되게 된다.
따라서 서브넷 구분 비트 2^7승 128값 기준으로 서브넷 주소 범위가 두개로 나뉘어진다
 
 
# 서브넷구분비트를 부여하여 분리된 결과
192.168.10.0   ~ 192.168.10.127        # 분리1
192.168.10.127 ~ 192.168.10.255        # 분리2


이렇게 절반으로 나눈 한 서브넷 부분을 이제 회사에게 할당하고 나머지도 필요한 곳에 분배하면 된다. 
이때 위에서 유의했듯이 어느 한 네트워크 범위의 가장 첫번째 주소(0) 과 마지막 주소는 네트워크/브로드캐스트 주소로서 제외하여야 한다고 하다
아래가 최종 분리된 서브네팅 결과이다.

192.168.10.1   ~ 192.168.10.126        # 분리1 (네트워크주소+1 ~ 브로드캐스트주소-1) 
192.168.10.128 ~ 192.168.10.254        # 분리2 (why.?)

Leave a comment