본문 바로가기

IT 엔지니어를 위한 네트워크

서브네팅(Subnetting)

Today Keys : IPv4, IP주소, IP Address, 서브넷, subnet, 서브네팅, subnetting, host, network, IP 설계

본 포스팅은 'IT 엔지니어를 위한 네트워크 입문' [길벗] 서적에 포함된 '3. 네트워크 통신하기'의 내용  3.3.2장의 내용입니다.


서브네팅

 원래 부여된 클래스의 기준을 무시하고 새로운 네트워크-호스트 구분 기준을 사용자가 정해 원래 클래스풀 단위의 네트워크보다 더 쪼개 사용하는 것을 서브네팅(Subnetting)이라고 합니다. 부여 된 주소를 다시 잘라 사용해 서브네팅이라고 부르는데 현대 클래스리스 네트워크의 가장 큰 특징 입니다. 옥텟 단위로 구분되는 서브네팅은 이해와 운영이 쉽지만 실제로는 옥텟 단위보다 더 잘게 네트워크를 쪼개 2진수의 1비트 단위로 네트워크를 분할하므로 서브네팅을 이해하기 어렵습니다.

 특히 IP 네트워크를 처음 접하는 사람들은 네트워크 체계를 이해하는 데 가장 큰 장애물로 서브네팅을 꼽습니다.

다양한 서브네팅. 옥텟 단위가 아닌 2진수 자리 단위로 서브네팅한다

 

 실무에서 서브네팅에 대해 고민해야 하는 경우는 두 가지입니다.

 네트워크 디자인 단계에서 네트 워크 설계자가 네트워크를 효율적으로 어떻게 분할할 것인지 계획하는 경우와

 이미 분할된 네트 워크에서 사용자가 자신의 네트워크와 원격지 네트워크를 구분해야 하는 경우입니다.

 상황에 따 라 고려해야 할 요소와 범위가 달라집니다.

 

● 네트워크 사용자 입장

 - 네트워크에서 사용할 수 있는 IP 범위 파악

 - 기본 게이트웨이와 서브넷 마스크 설정이 제대로 되어 있는지 확인

● 네트워크 설계자 입장

 - 네트워크 설계 시 네트워크 내에 필요한 단말을 고려한 네트워크 범위 설계

 

우선 네트워크 사용자 입장부터 다루어본 후 설계자 입장에 대해 알아보겠습니다.

 

네트워크 사용자의 서브네팅

 네트워크 사용자는 이미 설계되어 있는 네트워크에서 사용할 수 있는 IP 주소 범위를 파악해야 합니다. 주어진 네트워크 범위 밖의 IP를 할당하거나 서브넷 마스크를 잘못 입력하면 로컬 네트워크의 특정 범위에 속해있는 단말과 통신에 문제가 생기거나 외부 네트워크 전체에 통신하지 못하는 상황이 발생합니다. 기존 클래스 단위처럼 옥텟 단위의 네트워크를 사용할 경우, 모든 수가 10진수 단위로 표현되므로 관리자나 사용자가 이해하기 쉽지만 대부분의 서브네팅은 비트 단위로 분할되므로 이런 환경에 속해 있을 경우, 어떤 IP 범위가 내가 속한 네트워크이고 어떤 IP 범위가 원격지 네트워크인지 판단하기 어렵습니다.

 

복잡한 서브네팅 방법

 

 IP 주소 체계는 컴퓨터가 처리하므로 2진수로 되어 있습니다. 2진수에 익숙하거나 서브네팅이 옥텟 단위로 되어 있는 경우, 암산으로 내가 속한 네트워크 크기와 IP 범위를 쉽게 알아낼 수 있지만, 그림 3-18처럼 1비트 단위로 서브네팅된 경우, 유효한 네트워크 범위를 알아내기 어렵습니다. 일반적으로 자신이 속한 네트워크의 유효 범위를 파악하는 방법은 다음과 같습니다.

 

1. 내 IP를 2진수로 표현한다.

2. 서브넷 마스크를 2진수로 표현한다.

3. 2진수 AND 연산으로 서브네팅된 네트워크 주소를 알아낸다.

4. 호스트 주소 부분을 2진수 1로 모두 변경해 브로드캐스트 주소를 알아낸다.

5. 유효 IP 범위를 파악한다. 서브네팅된 네트워크 주소+1은 유효 IP 중 가장 작은 IP이다.

6. 브로드캐스트 주소-1은 유효 IP 중 가장 큰 IP이다.

7. 2진수로 연산되어 있는 결괏값을 10진수로 변환한다.

 

항상 진수 표현을 다르게 계산해가면서 많은 과정을 거쳐 로컬 네트워크 범위를 알아내기는 어렵습니다. 좀 더 쉽게 서브네팅하고 자신이 속한 네트워크 범위를 파악하는 방법을 알아보겠습니다. 서브네팅에서는 기준이 되는 서브넷 마스크가 핵심입니다. 서브넷 마스크는 네트워크와 호스트 주소를 나누는 구분자이므로 항상 이 구분자를 중심으로 계산이 이루어져야 합니다.

 

 

1. 서브넷 마스크를 2진수로 변환한다.

2. 현재의 서브넷이 가질 수 있는 최대 IP 개수 크기를 파악한다. 2^6 =64

3. 64의 배수로 나열하여 기준이 되는 네트워크 주소를 파악한다. 첫 블록은 0부터 시작한 다. 각 네트워크의 마지막 주소가 브로드캐스트 주소가 된다. 이 주소는 다음 블록 네트 워크 주소의 -1 수이다. - 0~63/64~127/128~191/192~255

4. 103.9.32.146에서 호스트 주소 146이 속한 네트워크를 선택한다.

    - 128~191

5. 필요한 주소를 정리한다.

   - 네트워크 주소: 103.9.32.128(첫 번째 숫자)

   - 브로드캐스트 주소: 103.9.32.191(마지막 숫자)

   - 유효 IP 범위: 103.9.32.129 ~ 103.9.32.190(네트워크 주소와 브로드캐스트 주소 사이)

 위와 같은 서브네팅 방법을 이용하면 뒤에서 다룰 실전 서브네팅 예제를 더 쉽게 계산할 수 있습 니다. 중요한 것은 서브넷 마스크를 중심으로 네트워크 크기를 파악해 서브넷된 네트워크의 크기를 알아내는 것입니다. 그 이후는 해당 네트워크의 호스트 주소 숫자를 배수로 나열하고 현재 자신이 속한 IP 범위를 찾아내면 현재의 네트워크 주소, 브로드캐스트 주소, 유효 IP 범위를 쉽게 파악할 수 있습니다.

 

네트워크 설계자 입장

 두 번째는 네트워크 설계자의 입장에서 서브넷 마스크에 대해 고려해야 할 내용을 다루어보겠습니다. 네트워크를 새로 구축하는 경우, 네트워크 사용자와 반대로 설계자는 서브넷 마스크가 지정 되어 주어지는 것이 아니라 네트워크의 크기를 고민해 서브넷 마스크를 결정하고 설계에 반영해야 합니다. 네트워크 설계자가 IP를 설계할 때 고민해야 할 부분은 다음과 같습니다.

● 서브넷된 하나의 네트워크에 IP를 몇 개나 할당해야 하는가?(또는 PC는 몇 대나 있는가?)

● 그리고 서브넷된 네트워크가 몇 개나 필요한가?

회사 네트워크 설계를 예로 서브넷 마스크를 어떻게 사용하는지 살펴보겠습니다. 회사에 총 12곳의 지사가 있습니다. 이 지사들에는 최대 12대의 IP가 필요한 PC와 복합기, IP 카메라가 운영될 예정입니다.

현재 가진 네트워크는 103.9.32.0/24 네트워크입니다

1.. 서브넷된 하나의 네트워크에 12개 IP를 할당해야 한다.

2. 네트워크는 2진수의 배수로 커지므로 4, 8, 16, 32, 64, 128, 256개 단위로 네트워크를 할당할 수 있다. 12개 IP를 수용할 수 있는 가장 작은 네트워크는 16개이므로 16개짜리 네트워크를 할당한다. A. 16개짜리 네트워크는 네트워크 주소와 브로드캐스트 주소로 사용할 2개 IP를 제외해 야 하므로 실제로 사용할 수 있는 IP는 14개다. 이 유효 IP 개수는 필요한 12개에 포함 되므로 사용 가능하다.

3. 16개짜리 네트워크 12개를 확보한다. 16의 배수를 0부터 나열해 네트워크 주소를 확인 한다

4. 총 16개 네트워크 중 12개 네트워크를 할당한다.

 

 네트워크를 설계할 때 가능하면 사설 IP 대역을 사용해 충분한 IP 대역을 사용하는 것이 좋습니다 (공인 IP와 사설 IP에 대해서는 3.3.4 공인 IP와 사설 IP 절에서 자세히 다룹니다). 공인 IP는 인터넷에서 유일하게 사용되므로 사용할 수 있는 IP 수가 제한되어 있고 할당받은 IP를 사용하지 않는 경우, IP 할당기관이 회수합니다. 하지만 사설 IP는 회사 내부에서만 사용하므로 제한 없이 큰 네트워크를 사용할 수 있습니다.

 공인 IP를 사용해 여유 없이 네트워크를 할당하면 크기가 다른 네트워크가 많아집니다. 그럼 네트 워크 관리자 입장에서도 관리가 힘들어지고 일반 사용자도 IP를 쉽게 구분하거나 알아볼 수 없게 되므로 최대한 같은 크기의 네트워크를 할당하고 10진수로 표현해도 쉽게 이해할 수 있는 C 클래 스 단위인 24비트로 쪼개 할당하는 것이 바람직합니다.

네트워크를 단계적으로 잘 설계하면 관리하기 쉽고 네트워크 장비 성능도 향상됩니다. 잘 설계된 왼쪽 네트워크는 라우터가 관리하는 경로가 적고 관리하기 쉽습니다. 왼쪽 라우터는 10.1.1.0/24, 10.1.2.0/24, 10.1.3.0/24 네트워크를 관리하지만 Core는 10.1.0.0/16 네트워크에 대한 경로만 갖고 있어도 모든 10.1.X.0 네트워크로 패킷을 포워딩할 수 있습니다. 예제는 네 트워크가 각각 3개씩만 존재하지만 네트워크 숫자가 많아지면 관리해야 할 네트워크 경로의 차이도 커집니다.

 잘못 설계된 오른쪽 네트워크에서는 실제로 존재하는 네트워크 수만큼 Core 라우터가 모든 경로 를 알고 있어야 합니다. 잘 설계된 왼쪽 네트워크는 네트워크 전체의 성능이 향상되고 관리가 편해지는 반면, IP 주소가 낭비됩니다. 왼쪽 라우터에 10.1.0.0/16 네트워크가 할당되었지만 실제로 사용하는 네트워크가 3개밖에 없을 경우, 나머지 253개 네트워크를 다른 곳에서 사용하지 못하므로 주소가 낭비될 수 있습니다.

그래서 잘 설계된 네트워크를 디자인하려면 IP를 여유있게 사용할 수 있는 사설 IP 대역으로 네트워크를 설계해야 합니다.