Subnet mask, Subnetting

CS/Network / / 2021. 10. 29. 01:38
728x90

서브넷의 탄생

앞서 공부했던 네트워크 클래스에서 알 수 있듯, 클래스 단위로 네트워크를 분류하면 비효율적이었습니다.

따라서 단말 수에 맞추어 효율적으로 사용할 수 있는 서브넷 Subnet이라는 개념이 등장하게 되었습니다.

서브넷 Subnet

서브넷 Subnet은 말 그대로 부분망을 뜻합니다. IP 네트워크를 논리적으로 세분화한 것입니다. 그리고 이 서브넷을 만들 때 쓰이는 것이 바로 서브넷 마스크입니다. 이 서브넷 마스크를 이용해 IP주소 체계의 Network ID와 Host ID를 분리합니다.

IP 주소는 IP 클래스에 의해 분리되는 Network Prefix와 Host Number로 분리됩니다. 서브넷 마스크에 의해 이루어지는 서브넷팅은 이 Host Number를 Subnet Number와 서브넷 안에서 식별되는 Host Number로 다시 분리합니다.

서브넷팅 Subnetting

하나의 네트워크를 둘, 혹은 여러 개의 서브 네트워크로 나눠서, 외부에서 해당 네트워크를 바라볼 시에는 단일 네트워크처럼 보이지만 내부에서 보면 여러 개의 네트워크로 만드는 것입니다.

서브넷팅을 통해 네트워크의 밀집을 완화하고, 네트워크의 성능을 향상시킵니다. 보안은 덤입니다.

FLSM (Fixed Length Subnet Mask)

고정된 크기의 Subnet-mask를 사용하는 방식으로, 각 서브넷의 크기는 동일합니다.

예를 들어 192.128.32.0/24라는 네트워크 주소 하나를 12개씩의 호스트가 있는 각각의 네트워크로 분할하려고 한다면, 어떻게 서브넷팅해야 할까요?

주어진 서브넷과 서브넷 마스크를 2진수로 바꿔서 AND 연산을 해 보겠습니다.

IP Address 11011010.10000000.00100000.00000000
subnet-mask 11111111.11111111.11111111.00000000
AND연산 11011010.10000000.00100000.00000000

여기서 서브넷 마스크의 비트 중 1로 표시된 부분(24개)는 모두 Network ID로 사용되었으므로, 0으로 표시된 나머지인 Host ID 부분만 사용가능합니다.

12개의 호스트(단말)에 IP를 할당하기 위한 비트의 최소값은 4개입니다. (2^4 = 16개의 Host range)
기존의 Host-ID 부분을 필요한 만큼인 4bit만큼 자릅니다.

따라서 호스트 부분의 4bit로 표현할 수 있는 수의 범위를 표로 나타내면 아래와 같이 되겠습니다.

총 16개의 서브넷으로 나누어집니다.

범위 안의 숫자 중 맨 앞의 IP는 각 서브넷의 네트워크 주소가 되고, 맨 뒤의 IP는 브로드캐스트 주소가 됩니다.
즉, 첫 번째 서브넷에서 사용 가능한 Host IP는 1 ~ 14의 14개가 됩니다. 이 범위를 서브넷으로 나타내면 192.168.32.0이 되고, subnet mask(prefix)는 4bit를 더 사용했으니 /24 => /28이 되었습니다.

따라서 192.168.32.0/28이라는 네트워크 주소로 해당 서브넷을 나타낼 수 있습니다.

VLSM (Variable Length Subnet Mask)

서브넷팅을 이해했다면 VLSM은 쉽습니다.

위와 같은 동일한 크기의 서브넷과 달리 큰 부서에는 더 많이, 작은 부서에는 더 적게 IP를 배분해야 하는 상황이 올 수가 있습니다.

  • 네트워크 주소: 200.1.1.0/24
  • 개발부: 100개의 단말
  • 홍보부: 50개의 단말
  • 축구부: 2개의 단말

위와 같은 조건이라면 FLSM을 한다면 가장 큰 크기인 개발부에 맞춰서 자르게 되고, 다른 부서에는 너무 많은 IP가 남게 되어 낭비가 됩니다. 이러한 경우를 피하기 위해 각 부서 별로 필요한 만큼만 잘라서 사용해 보겠습니다.

이와 같이 다양한 길이의 서브넷 마스크가 되겠습니다.

실생활에서 서브넷팅을 해 봅시다 (Youtube Channel: Sunny Classroom)

어느 날 매니저가 당신에게 까페를 위해 네트워크 세 개를 만들어 달라고 부탁했습니다. 하나는 사무실, 하나는 데스크와 창고, 하나는 공공 사용을 위한 용도입니다. 당신은 각각의 Network ID, subnet mask, Host ID Range, # of usable host IDs, Broadcast ID를 리스트로 만들어야 합니다.

주어진 네트워크 ID는 192.168.4.0/24입니다.

모든 그림은 유튜브의 Sunny Classroom에서 가져왔습니다. Thank you! 너무 좋은 영상이니 한 번씩 봐주세요!)

위 표를 보면 한 방에 이해할 수 있습니다.

서브넷은 1부터 시작해서 2씩 늘어나고, 호스트는 그 역입니다. 저희는 3개의 네트워크가 필요하니까...

서브넷 4개로 나눌 수 있는 /26 서브넷 마스크가 필요하겠네요.

서브넷 마스크 26에 의해 4개로 나뉘어진 리스트를 표로 보면 위와 같습니다.

제 컴퓨터로 해볼까요?

제 컴퓨터의 어댑터 IP입니다.

이를 네트워크로 표현하면 192.168.0.100/24가 되겠네요!

IP range는 192.168.0.0 ~ 192.168.0.255이고, 저는 그 중에 하나를 배정받은 것을 알 수 있습니다.

아래의 명령어 순서대로 쳐서 IP 주소를 새로 받아 보아도 범위는 바뀌지 않는 것을 확인했습니다!

ipconfig /release: 현재 DHCP 구성 해제 및 어댑터의 IP 주소 구성 제거

ipconfig /renew : DHCP 클라이언트 컴퓨터로 구성된 컴퓨터에서만 사용가능하며, 서버로부터 새로운 IP 주소 및 구성값을 받아옴

release와 renew를 단시간에 반복하니 같은 주소만 배정되는 것 또한 확인했습니다. 신기하네요 🙄

 

긴 글 읽어 주셔서 감사합니다. 잘못된 내용, 오타는 댓글로 알려주세요. 적극적으로 수정하겠습니다.

 

References

'CS > Network' 카테고리의 다른 글

SYN 패킷 처리 딥다이브(번역 + 추가) 🐋  (0) 2021.11.07
3 way handshake의 이해(번역)  (0) 2021.11.07
Network Class  (0) 2021.10.28
MTU와 MSS  (0) 2021.10.03
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기