Engineering/Network

Subnet mask의 정의

luckydipper 2024. 1. 27. 01:11
반응형

1. 서브넷이란 무엇일까요?

wikipedia와 교과서에는

  IP를 더 잘게 나누는 개념이라고 설명 돼 있습니다. 하지만 이러한 정의는 오해를 불러일으킬 수 있습니다. 네트워크에서 컴퓨터와 같은 엔드디바이스를 구분하기 위해 ip를 사용합니다. 이를 엔드디바이스에 IP를 할당한다는 표현을 씁니다. 그렇다면 한가지 의문점이 듭니다. 서브넷팅을 통해 ip를 더 많이 나눌 수 있다면, 엔드디바이스에 할당(identify) 할 수 있는 IP의 수는 늘어날까요?
  정답은 아닙니다. subnet mask는 ip를 구분하기 위해 나누는 것이 아닌 IP를 그룹화 하기 위해 나눕니다. 즉 서브넷는 IP를 그룹화 해주는 도구입니다. 서브넷은 서브넷마스크를 통해 구현됩니다. 서브넷마스크는 앞부터 차례대로 1과 0의 집합으로 표현됩니다.
  예를 들어보겠습니다. 203.230.7.0/24라는 표현으로 203.230.7.0인 IP와 255.255.255.0의 서브넷마스크을 표현할 수 있습니다. 이 IP와 서브넷마스크를 통해 203.230.7.1 ~ 203.230.7.254까지의 IP를 한번에 묶어서 표현 할 수 있습니다. 이때 해당 IP의 집합을 LAN의 IP 대역(네트워크 대역) 이라고 하고, IP와 서브넷마스크를 통해 해당 대역을 표기합니다. 아래 그림을 보면 LAN은 router를 기준으로 IP 대역을 나눕니다. 네모난 박스가 다른 LAN 대역을 나타낸다고 보면 됩니다.

그림에는 3개의 IP 대역이 있습니다.

203.230.7.0/24
203.230.8.0/24
203.230.9.0/24

3개의 대역이 존재합니다.
즉 IP를 254개씩 묶어서 identify 가능하다는 것입니다. 정리하면, 네트워크(IP) 대역, network id + subnetmask, ip들의 집합, LAN (라우터로 나뉘어진 구간) 의 IP 들의 집합 모두 같은 말입니다.

2. network id-subnetmask로 LAN 대역을 표현하는데 2개의 중요 ip가 있습니다.

Network ID와 Broadcast ID입니다. 이 특별한 두 IP는 end device에 할당 되지 않습니다. Network ID는 subnetmask와 AND 연산을 통해 구합니다. 예를 들어 203.230.7.0203.230.7.x/24255.255.255.0을 AND연산 씌워서 나온것입니다. Network ID를 통해서 해당 대역을 대표하는 IP입니다. Broadcast ID는 해당 네트워크 대역(IP들의 집합)의 마지막 IP입니다. 예를 들어 203.230.7.x/24에서는 203.230.7.255/24이 해당 대역의 마지막 ip 입니다. end device가 Broadcast ip을 목적지로 프로토콜을 보낼 경우, LAN구간 전체에서 해당 프로토콜을 받습니다.

서브넷의 크기를 변경하면, 아래와 같은 예시도 가능합니다. 이렇게하면 grouping 하는 IP들의 크기를 변경할 수 있습니다.

그림과 같이 표현하면 subnet의 크기가 1111 1111/1111 1111/ 1111 1111/ 1111 1000 이고, IP를 8개씩 끊어서 그룹화 할 수 있습니다. (물론 network id와 broadcast id에는 할당이 불가능하여 6개씩 가능합니다.

3. 이렇게 IP를 그룹화 해서 표현하면 뭐가 좋을까요?

  1. 프로토콜을 여러곳에 보내고 싶을 때, subnetting을 통해서 해당 ip들의 집합(해당 네트워크의 대역)으로 보낼 수 있습니다.
  2. End device가 LAN 구간으로 프로토콜을 보내야 할지 WAN 구간으로 프로토콜을 보내야 할지 알 수 있습니다. (라우터를 거쳐가야 목표지가 있는지 LAN 구간에 있는지.)
  3. 결과적으로 Routing table의 크기도 줄일 수 있습니다.
반응형