Basics of Subnetting

KyungH·2024년 11월 24일

Cyber-Security

목록 보기
3/32

📝 서브넷팅 기본

서브넷팅은 대규모 네트워크를 더 작고 관리하기 쉬운 서브넷으로 나누는 기술이다.

이는 대규모 조직에서 한정된 IP 주소를 효율적으로 관리하고
네트워크의 여러 부분을 분할하여 보안을 개선하고
세그먼트간의 불필요한 데이터 전송을 최소화하여 흐름을 제어한다.


📌IP주소란?

IP 주소는 MAC 주소와 같이 장치를 식별하는 데 사용되며
고정되어있는 실제 주소인 MAC 주소와 다르게 IP 주소는 동적이며, 가상의 주소이다.

우리가 자주보는 IP주소 형태인 (ex. 192.168.1.20) 처럼 각각의 숫자는 이진수로 나타내며, 그렇기에 표현할 수 있는 가장 큰 IP 주소는 255.255.255.255 이다.

IPv4의 주소형태를 살펴보면, 총 32비트로 구성되어있고
3개의 옥탯으로 각각 8비트씩 나누어진 형태이다.

이진수로 나타낼 경우 다음과 같은 형태이다.

1286432168421
10000001

여기서 1로 표현된 부분을 더한다고 생각하면 된다.
즉 위의 10000001을 나타내면 128 + 1 =129 로 표현할 수 있고
모든 비트가 1일때 모두 더하면 255가 나오는걸 확인할 수 있다.


📌서브넷 마스크

IP 주소 중 얼마나 많은 부분이 네트워크에 속하고,
얼마나 많은 부분이 호스트에 예약되는지 정의하는 데 사용한다.

BITS USED FOR MASKDEFAULT NETMASKSUBNET BINARY
/8255.0.0.011111111.00000000.00000000.00000000
/16255.255.0.011111111.11111111.00000000.00000000
/24255.255.255.011111111.11111111.11111111.00000000

위의 이진수로 표현한 서브넷 마스크를 IP 주소와 논리곱 (AND 연산) 을 하여
나온 결과가 네트워크에 속하고, 그 나머지 부분이 호스트 주소에 속한다.

💡 서브넷 마스크에서 1로 표현된 부분까지 네트워크 주소라고 생각하면 된다.


📌IP 주소의 클래스

IP 주소에는 5개의 클래스가 있으며, 서브넷팅에 사용되는 클래스는 총 3개이다.

ClassNetmask1st Octet2nd Octet3rd Octet4th Octet
Class A127.0.0.001111110000000000000000000000000
Class B191.255.0.010111111111111110000000000000000
Class C223.255.255.011011111111111111111111100000000

위와 같이 3개의 클래스가 정의되며

각각의 클래스를 나누는 기준은 네트워크 주소의 첫 비트가 0, 10, 110 인 수다.

이 수들은 네트워크 주소의 클래스를 나타내기 위해 고정된 값이며,
그에 따라 실제 네트워크 주소를 나타내는 네트워크 비트
A 클래스가 7개, B 클래스는 14개, C 클래스는 21개이다.

클래스 A, B, C IP 주소의 범위는 다음과 같다

  • Class A = 1.0.0.0 ~ 127.0.0.0
  • Class B = 128.0.0.0 ~ 191.255.0.0
  • Class C = 192.0.0.0 ~ 223.255.255.0

📌서브넷팅

서브넷팅은 큰 네트워크를 작은 네트워크로 나눠서 관리하는 것을 말한다.
즉, 내가 현재 사용하고있는 집단에서의 네트워크 (큰 네트워크)
집단내에서 그룹이나 부서별 (작은 네트워크) 로 나누고 싶을때
호스트 주소의 개수 (장치 수) 를 줄이고 네트워크 주소로 사용 하는 것이다.

기존의 네트워크 주소에서 서브넷팅을 하려면 필요한 네트워크 개수만큼
호스트 주소의 비트를 빌린다.

2빌린 비트 수 만큼의 서브넷이 생성되며
2호스트 주소 비트 수 - 네트워크 주소로 빌려간 비트 수 - 2 만큼의 호스트 주소를 사용할 수 있다

위에서 호스트 주소를 구할때 2를 뺀 이유는 한 네트워크 내에서 가장 첫 주소는
네트워크의 식별에 사용되는 네트워크 주소이고 가장 끝 주소는 네트워크 내
모든 장치로 데이터 전송에 사용되는 브로드캐스트 주소이기 때문에
실제 사용가능한 호스트의 수는 전체 호스트 주소의 개수 - 2 개 이다.

💡어떠한 IP 주소가 주어졌을때 서브넷의 주소를 구해보자

주어진 IP : 43.17.255.71/27

가장 먼저 살펴볼 것은 이 IP 주소가 어느 클래스에 속해 있는지를 파악하는 것이다.
각 클래스의 주소 범위를 살펴보면 우리는 이 IP가 A클래스인 것을 바로 알 수 있다.

기본적으로 우리가 아는 A 클래스는 가장 앞의 8비트를 네트워크 주소로 사용하는데
여기선 /27을 통해 27비트가 네트워크 비트에 할당되어있는 것 또한 바로 알 수 있다.

그렇다면 3번째 옥텟까지는 고정된 네트워크 주소로 사용되고
마지막 4번째 옥텟에서 호스트 비트에서 3비트를 빌려 서브넷을 구성하고 있다.

이를 통해 23 = 8개의 서브넷이 있음을 확인할 수 있다.
또한 각각의 서브넷에는 25 = 32개의 호스트가 있음을 알 수 있다.

즉, 다음과 같다.

SubnetLast OctetBlock sizeIP Address
10+3243.17.255.0
232+3243.17.255.32
364+3243.17.255.64
496+3243.17.255.96
5128+3243.17.255.128
6160+3243.17.255.160
7192+3243.17.255.192
8224+3243.17.255.224

그렇다면 43.17.255.71/27 의 가장 마지막 옥텟만 확인해보면
71이 64 ~ 96 범위에 해당함을 알 수 있다.

따라서 43.17.255.71/27의 서브넷 네트워크의 주소는 43.17.255.64 이다.


결론

IP 주소와 네트워크 설계는 단순한 숫자들이지만, 이를 어떻게 구성하고 나누는지에
따라 무한한 방법이 존재하고, 효율성과 확장성을 고려한 설계가 매우 중요해진다.

필요한 서브넷의 수 (부서의 수) 를 고려하고, 각 서브넷에 필요한
호스트 수 (컴퓨터, 장비 등의 수) 를 고려해야 하며 기존의 클래스에 기반하여
서브넷의 크기만큼 서브넷 마스크를 결정한다.

각 서브넷에서 네트워크 주소와 브로드캐스트 주소는 제외함을 확인해야 하고
IP 주소의 낭비를 최소화하기 위해 서브넷의 크기를 잘 계산해야 하며
향후 확장성을 위해 서브넷의 크기를 너무 작게 설정하지 않도록 한다.

추가로 부사별로 서브넷을 분리하여 네트워크 공격이나 유출이 다른 서브넷에
영향을 미치지 않도록 하여 보안을 강화할 수 있다.

결론적으론 상황에 맞는 최적의 방법을 선택하며 효율적인 설계가 가장 중요하다.
단순히 주소를 할당하는 작업이 아닌 전체적인 시스템과 관리를 고려하는 복잡한 과정이다.


References

Networking Basics: What is IPv4 Subnetting?

0개의 댓글