[netwhat] 서브넷마스크(Subnet Mask)와 서브넷팅(Subnetting)

hyeojung·2021년 5월 25일
0

42Seoul

목록 보기
10/16
post-thumbnail

1. 넷마스크 (Netmask)

IP 주소의 네트워크 영역을 가리거나 걸러서 호스트 컴퓨터의 주소 부분만 남도록 하기 위해 0과 1이 조합되어 있는 32bit 문자열.
네트워크 주소 부분의 비트를 1로 치환한 것이 넷마스크이다.
예를 들어, 255.255.255.0은 자주 사용되는 넷마스크로 최대 255대까지의 호스트 컴퓨터를 수용할 수 있는 C 클래스 서브넷을 위해 사용된다.

IP 주소와 넷마스크를 AND 연산하면 네트워크 주소를 얻을 수 있다.



2. 서브넷마스크 (Subnet Mask)

필요한 네트워크 주소만 호스트 IP로 할당할 수 있게 만들어 네트워크 낭비를 방지하기 위한 32bit 2진수 문자열.
IP 주소와 같은 형식으로 표현되지만, IP 주소와의 AND 연산을 위한 용도이다.
서브넷마스크로 쪼개진 네트워크 주소를 서브넷 네트워크라고 한다.

서브넷마스크는 1과 0으로 이루어져 있으며 network ID 부분은 1이, host ID 부분은 0이 연속적으로 있어야 한다.

표기법은 두 가지가 있다.

  • 10진수 표기법: 192.168.0.1/255.255.255.0
  • CDIR 표기법: 192.168.0.1/24 (왼쪽부터 나열된 1의 수가 24개라는 뜻)

위 두 경우 모두 IP 주소가 192.168.0.1이고 서브넷 마스크는 255.255.255.0이라는 의미이다.

2.1. 기본 서브넷마스크 (Default Subnet Mask)

별개의 서브넷마스크를 생성하지 않아도 기본적으로 적용되어 있는 서브넷마스크를 기본 서브넷마스크라고 한다.
사실 IP 주소를 클래스로 나누는 것도 서브넷마스크를 사용하는 것과 같다고 할 수 있다. 예를 들어 C 클래스의 네트워크를 사용한다는 것은 C 클래스에서 사용 가능한 2^8-2개의 host ID를 사용한다는 뜻이므로 기본 서브넷마스크는 255.255.255.0이 된다.

클래스별 기본 서브넷마스크는 다음과 같다.

A 클래스: 255.0.0.0
B 클래스: 255.255.0.0
C 클래스: 255.255.255.0

기본 서브넷마스크의 형태를 보면 네트워크 주소 부분의 비트만 1로 치환한 것임을 알 수 있다. 즉 기본 서브넷마스크는 넷마스크와 같다.

2.2. 서브넷 네트워크 (Subnet Network)

위에서 언급했듯 서브넷마스크로 쪼개진 네트워크 주소를 서브넷 네트워크라고 하며, IP 주소와 서브넷마스크를 AND 연산하면 서브넷 네트워크를 구할 수 있다.

2.2 서브넷마스크의 특징

network ID의 1bit가 늘면, host ID의 1bit가 줄어든다.
-> 네트워크 할당 가능 수가 2배 증가, 호스트 할당 가능 수는 1/2배로 감소
서브네팅(Subnetting)을 통해 자원을 효율적으로 분배하여, 호스트가 많을 때 트래픽이 과다 발생해 일어나는 효율 저하를 줄일 수 있다.
CIDR 이후로는 넷마스크와 서브넷마스크를 구분하지 않고, 서브넷마스크만 사용하고 있다고 한다.



3. 네트워크 주소와 브로드캐스트 주소

3.1. 네트워크 주소

해당 네트워크의 첫번째 IP 주소로, 하나의 네트워크를 통칭하기 위한 주소.
IP 주소와 서브넷마스크를 AND 연산하여 구할 수 있다.

3.2. 브로드캐스트 주소

특정 네트워크에 속하는 모든 호스트들이 갖게 되는 주소로, 네트워크에 있는 모든 클라이언트에게 데이터를 보내기 위한 주소.
해당 네트워크의 맨 마지막 IP 주소이다.
서브넷 마스크의 0과 1을 반전시킨 후 IP 주소와 OR 연산 하여 구할 수 있다.
혹은 네트워크 주소에서 서브넷마스크의 0으로 된 비트를 모두 1로 바꾸어 구할 수 있다.



4. 서브넷팅 (Subnetting)

네트워크 관리자가 네트워크 성능을 향상시키기 위해 자원을 효율적으로 분배하는 것
다시 말해, 서브넷마스크를 이용해 한 개의 네트워크를 여러 개의 서브넷 네트워크로 분할하는 것

4.1. 서브넷팅이 필요한 이유와 서브넷팅의 이해

네트워크 자원을 효율적으로 사용하기 위해 서브넷팅이 필요하다.
IP로 가능한 표현에는 한계가 있으므로, 서브넷마스크를 이용해 필요한 네트워크 주소만 host IP로 할당할 수 있게 만들어 네트워크 낭비를 방지하는 것이다.

예를 들어 A 클래스 네트워크에는 2^24-2개나 되는 호스트 IP를 할당할 수 있는데, 이를 일반 가정집에 부여한다면 정말 많은 자원이 낭비될 것이다.

그렇다면 어떤 식으로 서브넷팅을 이해하면 좋을까?
사용하는 네트워크 장치의 수에 따라 효율적으로 IP를 사용하기 위해 A 클래스 IP 주소의 기본 서브넷 마스크(255.0.0)를 B 클래스의 기본 서브넷 마스크(255.255.0.0)으로 변경하는 경우를 생각해 보자.
A 클래스 IP 주소를 예시로 1.1.1.1이라 하고 변경된 서브넷 마스크로 AND 연산을 하게 되면,

  • 네트워크 ID는 1.0.0.0에서 1.1.0.0으로 확장된다.
  • 호스트 ID는 0.0.0.0~0.255.255.255에서 0.0.0.0~0.0.255.255로 범위 감소한다.

즉 서브넷팅은 서브넷 마스크를 이용해 네트워크 주소 부분의 비트를 연장하고, 나머지 호스트 부분이 호스트 식별자가 되도록 하는 것이다.

4.2. 서브넷팅 계산 방법

서브넷마스크는 1과 0으로 이루어져 있으며 network ID 부분은 1이, host ID 부분은 0이 연속적으로 있어야 한다.

따라서 서브넷마스크가 Network ID를 확장하며 1bit씩 확보하게 되면 네트워크 할당 가능 수는 2배로 증가하고, 호스트 할당 가능 수는 반대로 1/2배로 감소하게 된다.

예를 들어 194.139.10.7/25라는 IP를 서브넷팅하는 경우를 생각해 보자.
/25는 서브넷 마스크에서 왼쪽부터 나열된 1의 개수가 25개라는 의미이다. 따라서 서브넷 마스크는 255.255.255.128이 된다.
이렇게 하면 호스트 할당 가능 범위가 0~127, 128~255가 되며 네트워크 영역은 194.139.10.0194.139.10.128의 2개로 나누어지게 된다.
이때 네트워크 영역이 2개로 나누어진다는 의미는 각 범위의 가장 첫 IP를 네트워크 주소로 할당한다는 의미이다.
그러므로 주어진 194.139.10.7/25194.139.10.0/25 대역에 속하게 되며 194.139.10.128/25 대역과 분리된 네트워크에 존재하게 된다.

4.3. 서브넷팅의 특징

먼저, 서브넷팅을 통해 네트워크 ID가 확장되므로 할당할 수 있는 네트워크의 수가 늘어난다. (각 네트워크마다 할당 가능한 host ID의 수는 적어진다.) 하지만 네트워크가 분리되므로, 다른 네트워크에 속한 호스트끼리는 라우터를 통해서만 통신 가능하다.

또한 서브넷팅을 통해 네트워크가 분리되므로 브로드캐스트 도메인의 크기가 줄어(브로드캐스트 주소가 다양해짐), 특정 몇 호스트에서 트래픽을 과다하게 발생시켜 속도가 저하되는 문제를 해결할 수 있다.

서브넷 네트워크에서의 Broadcast 주소
서브넷의 브로드캐스트 주소는 255보다 훨씬 작은 수를 가질 수 있다.
한 브로드캐스트 주소를 너무 많은 호스트가 갖는 것을 방지하므로 트래픽 문제를 해결할 수 있는 것이다.



참고한 글

[netwhat] 네트워크 기본 개념 - IP/ 넷마스크/ 네트워크 계층/ TCP-UDP/ DHCP/ DNS/ 라우팅/ 포트 등
https://yechoi.tistory.com/61
[Network] 서브넷마스크(Subnet Mask)란?
https://limkydev.tistory.com/166
넷마스크(Netmask)와 서브넷마스크(Subnetmask)
https://velog.io/@hidaehyunlee/넷마스크Netmask와-서브넷마스크Subnetmask
서브넷팅(subnetting)으로 네크워크를 효율적으로 관리하자
https://velog.io/@hidaehyunlee/서브넷팅subnetting으로-네크워크를-효율적으로-관리하자

profile
응애 나 애기 개발자

0개의 댓글