본문 바로가기
컴퓨터 과학/네트워크

[네트워크] IP 주소 클래스와 서브넷 마스크의 이해

by webcodur 2024. 4. 6.
728x90
반응형

목차

     


    다음 글은 IP에 대한 간단한 이해를 전제하고 추가적으로 클래스와 서브넷 마스크를 학습하기 위해 작성한 글이다. 기본적인 IP에 대한 내용은 별도 자료 참고.
     

    1. IP 클래스 분류

    1-1. 분류 기준

    다음은 아래 작성된 IP 클래스 분류를 이해하기 위한 항목들이다. 
     
    주소 범위 : IP 주소의 클래스별로 할당된 가능한 IP 주소의 범위. 각 클래스는 특정 범위의 IP 주소를 포함하며, 이는 네트워크의 규모와 사용 목적에 따라 다름.
     
    기본 서브넷 마스크 : 네트워크 부분과 호스트 부분을 구분하는 데 사용되는 기본 값. 각 IP 주소 클래스에 따라 다른 기본 서브넷 마스크가 적용되며, 이를 통해 네트워크 식별자와 호스트 식별자를 구분함.
     
    네트워크/호스트 : IP 주소 구조 내에서 네트워크 식별 부분과 호스트 식별 부분을 나누는 방식. 각 클래스에 따라 네트워크와 호스트를 식별하는 옥텟의 수가 정해져 있음.
     
    가용 네트워크 수 : 해당 IP 주소 클래스에서 사용할 수 있는 최대 네트워크의 수. 클래스별로 할당된 주소 범위와 기본 서브넷 마스크에 따라 결정됨.
     
    가용 호스트 수 : 각 네트워크 내에서 할당될 수 있는 최대 호스트(또는 장치)의 수. 네트워크 주소와 브로드캐스트 주소를 제외한 순수하게 사용 가능한 IP 주소의 수.
     
    용도 : 각 IP 주소 클래스가 주로 사용되는 목적. 대규모 네트워크, 중소규모 네트워크, 멀티캐스트, 연구 및 실험용 등 다양한 용도로 분류됨.
     
    맨앞 고정 비트 : 각 IP 주소 클래스를 식별하는 데 사용되는 첫 번째 옥텟의 고정된 비트 패턴. 이 패턴은 네트워크의 크기와 범위를 결정하는 데 기준이 되며, IP 주소가 어떤 클래스에 속하는지 식별하는 데 사용됨.

     

    고정 비트 형태 : 

    +---------+------------------------------------------+
    | Class   | First IP (Binary with underscore)        |
    +---------+------------------------------------------+
    | Class A | 0_______| .________| .________| .________|
    | Class B | 10______| .________| .________| .________|
    | Class C | 110_____| .________| .________| .________|
    | Class D | 1110____| .________| .________| .________|
    | Class E | 11110___| .________| .________| .________|
    +---------+------------------------------------------+

     

    1-2. 각각의 IP 클래스 분류

    클래스 A

    • 주소 범위: 1.0.0.0 ~ 126.255.255.255, (0은 특수 용도, 127은 루프백 주소로 사용)
    • 기본 서브넷 마스크: 255.0.0.0
    • 네트워크/호스트: 8비트/24비트 (1옥텟/3옥텟)
    • 가용 네트워크 수: 126개 (2^(네트워크할당8 - 첫고정값1)-2). 0과 127은 기타 용도)
    • 가용 호스트 수: 약 1.67억 ( 2^24-2)
    • 용도: 대규모 조직이나 정부 등
    • 맨앞 고정 비트: 0
    • 첫 번째 옥텟 범위: 1 ~ 126

    클래스 B

    • 주소 범위: 128.0.0.0 ~ 191.255.255.255
    • 기본 서브넷 마스크: 255.255.0.0
    • 네트워크/호스트: 16비트/16비트 (2옥텟/2옥텟)
    • 가용 네트워크 수: 16,384개 (2^(16-2)) (네트워크 할당 16비트 중 14비트. 첫 두 비트는 클래스 식별용)
    • 가용 호스트 수: 6.5만 ( 2^16-2)
    • 용도: 중간 규모 네트워크, 예: 대학교
    • 맨앞 고정 비트: 10
    • 첫 번째 옥텟 범위: 128 ~ 191

    클래스 C

    • 주소 범위: 192.0.0.0 ~ 223.255.255.255
    • 기본 서브넷 마스크: 255.255.255.0
    • 네트워크/호스트: 24비트/8비트 (3옥텟/1옥텟)
    • 가용 네트워크 수: 2,097,152개  (2^(24-3)) (네트워크 할당 24비트 중 21비트. 첫 세 비트는 클래스 식별용)
    • 가용 호스트 수: 254개 (2^8-2)
    • 용도: 소규모 네트워크, 예: 소규모 기업
    • 맨앞 고정 비트: 110
    • 첫 번째 옥텟 범위: 192 ~ 223

    클래스 D (멀티캐스트)

    • 주소 범위: 224.0.0.0 ~ 239.255.255.255
    • 기본 서브넷 마스크: 없음
    • 네트워크/호스트: 멀티캐스트용
    • 가용 네트워크 수: 없음
    • 가용 호스트 수: 없음
    • 용도: 멀티캐스트, 예: TV 방송, 비디오 컨퍼런스
    • 맨앞 고정 비트: 1110
    • 첫 번째 옥텟 범위: 224 ~ 239

    클래스 E (연구 및 실험용)

    • 주소 범위: 240.0.0.0 ~ 255.255.255.254
    • 기본 서브넷 마스크: 없음
    • 네트워크/호스트: 실험용
    • 가용 네트워크 수: 없음
    • 가용 호스트 수: 없음
    • 용도: 실험용, 일반적인 사용 불가
    • 맨앞 고정 비트: 1111
    • 첫 번째 옥텟 범위: 240 ~ 255 (254까지 실제 사용 고려)

     

    2. 기타 중요 사항

    2-1. 서브넷과 서브넷 마스크

    서브넷(Subnet)
    큰 네트워크를 더 작은 네트워크 단위로 분할한 것. 이러한 분할은 네트워크의 관리를 용이하게 하고, 네트워크 성능을 향상시키며, IP 주소의 사용을 최적화하는 데 도움을 준다. 서브넷팅을 통해 네트워크 트래픽을 분리하여 보안을 강화할 수도 있다. 서브넷 내 각 호스트는 같은 서브넷 마스크를 공유하며, 이 마스크를 통해 해당 네트워크의 일부임을 식별할 수 있다.
     
    서브넷 마스크(Subnet Mask)
    서브넷 마스크는 IP 주소를 네트워크 주소와 호스트 주소로 구분하는 데 사용되는 32비트 숫자다. 서브넷 마스크는 네트워크 부분을 나타내는 비트에는 '1'을, 호스트 부분을 나타내는 비트에는 '0'을 사용하여 구성된다. 이 마스크를 IP 주소에 적용함으로써, 어떤 부분이 네트워크를 식별하는 데 사용되고, 어떤 부분이 호스트를 식별하는 데 사용되는지 결정할 수 있다. 서브넷 마스크는 네트워크의 크기를 정의하는 데도 중요한 역할을 한다. 예를 들어, 서브넷 마스크가 255.255.255.0 (/24)인 경우, 네트워크는 256개의 IP 주소를 가질 수 있으며, 이 중 사용 가능한 호스트 주소는 254개이다(네트워크 주소와 브로드캐스트 주소를 제외).
     

    2-2. 호스트 범위의 n승값에서 2씩 빼는 이유

    호스트 범위에서 -2를 하는 이유는 네트워크 주소와 브로드캐스트 주소를 사용 가능한 호스트 주소 목록에서 제외하기 위함이다. 이 두 주소는 특별한 목적으로 예약되어 있어 일반 호스트(예: 컴퓨터, 프린터 등)에 할당될 수 없다.

    • 네트워크 주소: 네트워크의 첫 번째 주소로, 네트워크 자체를 식별하는 데 사용된다. 이 주소는 네트워크 내의 특정 호스트를 지칭하지 않으며, 호스트 부분의 비트가 모두 0으로 설정되어 있다. 예를 들어, 192.168.1.0/24 네트워크에서 네트워크 주소는 192.168.1.0이다.
    • 브로드캐스트 주소: 네트워크의 마지막 주소로, 네트워크 내의 모든 호스트들에게 데이터를 동시에 전송하기 위해 사용된다. 이 주소를 사용하여 보낸 패킷은 해당 네트워크 내의 모든 장치에 도달한다. 호스트 부분의 비트가 모두 1로 설정되어 있다. 예를 들어, 192.168.1.0/24 네트워크에서 브로드캐스트 주소는 192.168.1.255이다.

    따라서, 특정 네트워크에서 사용 가능한 실제 호스트 주소 수를 계산할 때는 이 두 주소를 제외해야 한다. 예를 들어, /24 서브넷 마스크(255.255.255.0)를 가진 네트워크에서는 이론적으로 256개의 주소(0에서 255까지)를 가질 수 있지만, 네트워크 주소와 브로드캐스트 주소를 제외한 사용 가능한 호스트 주소는 254개(256 - 2)가 된다.
     

    3-3. 127.0.0.0/8: 루프백 주소의 이해

    네트워크 주소에서 127.0.0.0/8 범위는 특별히 루프백(Loopback) 주소로 예약되어 있다. 루프백 주소는 네트워크 인터페이스를 통하지 않고 자신의 네트워크 연결을 테스트하는 데 사용된다. 가장 잘 알려진 루프백 주소는 127.0.0.1이며, 이 주소를 사용하는 것은 시스템이 자기 자신으로 데이터를 보내는 것과 같다.
     
    루프백 주소 범위 내의 모든 주소(127.0.0.1에서 127.255.255.255까지)는 이러한 용도로 사용할 수 있으며, 이들은 외부 네트워크로 전송되지 않는다. 대신, 이 주소들을 사용하는 트래픽은 로컬 시스템 내에서만 루프백되어 네트워크 인터페이스 카드(NIC)를 거치지 않고 직접 처리된다.
     
    루프백 주소를 사용하는 주된 이유는 네트워크 설정이나 네트워크 스택이 올바르게 작동하는지 테스트하기 위함이다. 예를 들어, 개발 과정에서 로컬호스트(localhost) 주소인 127.0.0.1을 통해 개발 중인 애플리케이션에 접근하거나, 네트워크 연결 없이 시스템의 네트워크 소프트웨어를 테스트하는 데 사용될 수 있다.
    이처럼 127.0.0.0/8 범위는 특별한 목적으로 예약되어 있기 때문에, 일반적인 네트워크 주소 할당에서는 제외된다.
     

    3-4. 브로드캐스트 주소란?

    브로드캐스트 주소는 네트워크 상에서 모든 장치들에게 데이터를 동시에 전송하기 위해 사용되는 특별한 주소이다. 이 주소를 사용하여 전송된 패킷은 해당 네트워크의 모든 호스트에게 도달한다. 네트워크의 브로드캐스트 주소는 호스트 부분의 모든 비트가 '1'로 설정된 주소로, 해당 서브넷 내의 모든 장치들이 패킷을 수신해야 한다는 것을 의미한다.
     
    예를 들어, 서브넷 마스크가 255.255.255.0 (/24)인 네트워크에서는 네트워크 주소의 첫 세 옥텟이 네트워크 부분을 나타내고, 마지막 옥텟이 호스트 부분을 나타낸다. 이 경우, 마지막 옥텟이 255인 주소, 즉 x.x.x.255는 브로드캐스트 주소가 된다. 여기서 x.x.x는 네트워크의 첫 세 옥텟을 의미한다. 이 주소로 보내진 모든 데이터는 같은 네트워크 내의 모든 장치들에게 전달된다.
     
    브로드캐스트 주소의 사용례로는 네트워크 상의 모든 장치들에게 시간 동기화 신호를 보내거나, 네트워크 시작 시 장치가 네트워크 서비스를 찾아 요청을 보낼 때, 예를 들어 DHCP 요청과 같은 경우 등이 있다. 브로드캐스트 주소는 네트워크 내의 모든 장치들이 특정 메시지를 동시에 받아야 할 때 중요한 역할을 한다.
     
     

    3-5. "0.0.0.0"의 용도?

    클래스 A에서 첫 번째 옥텟의 값으로 0이 사용되는 경우, 이는 특별한 목적으로 예약되어 있다. "0.0.0.0" 주소는 네트워킹에서 다음과 같은 용도로 사용된다.

    1. 디폴트 라우트(Default Route): 라우팅 테이블에서 목적지 주소로의 경로가 명시적으로 정의되지 않은 경우 사용되는 기본 경로를 나타낸다. 다시 말해, 네트워크 트래픽이 목적지에 도달하기 위한 구체적인 경로를 찾지 못할 때 "0.0.0.0"으로 설정된 라우트를 통해 전송될 수 있다.
    2. 소프트웨어 초기화: 일부 소프트웨어나 시스템에서는 네트워크 설정이 초기화되거나 아직 구성되지 않았을 때 "0.0.0.0"을 사용하여 이를 표시한다. 이는 특정 네트워크 인터페이스가 아직 어떤 특정한 IP 주소로도 구성되지 않았음을 의미한다.
    3. 서버 소켓 바인딩: 서버 프로그램이 특정 호스트의 IP 주소 대신 "0.0.0.0"에 바인딩되어 있을 경우, 이는 모든 가능한 인터페이스를 통해 들어오는 연결을 수락하겠다는 의미이다. 즉, 서버가 호스트의 모든 IP 주소를 통해 접근 가능함을 나타낸다.

    "0.0.0.0" 주소는 실제로 특정 호스트를 지정하는 데 사용될 수 없으며, 주로 내부적인 용도나 특정 네트워킹 작업을 위해 예약되어 있다. 이 주소는 인터넷 상의 유효한 목적지 주소로 사용될 수 없다.
     
     

    4. 문제풀이

    유형 1: 서브넷 마스크 계산

    문제 1.1

    • 문제: IP 주소가 192.168.1.15이고 서브넷 마스크가 255.255.255.0일 때, 이 호스트의 네트워크 주소는 무엇인가?
    • 답: 192.168.1.0
    • 해설: 서브넷 마스크 255.255.255.0은 마지막 옥텟을 제외한 처음 세 옥텟이 네트워크 부분을 나타내므로, 네트워크 주소는 마지막 옥텟을 0으로 설정한 192.168.1.0이 된다.

    문제 1.2

    문제: IP 주소가 10.0.5.25이고 서브넷 마스크가 255.0.0.0일 경우, 이 호스트가 속한 네트워크의 브로드캐스트 주소는 무엇인가?

    • 답: 10.255.255.255
    • 해설: 서브넷 마스크 255.0.0.0은 첫 번째 옥텟이 네트워크 부분을 나타내고, 나머지 세 옥텟이 호스트 부분을 나타낸다. 네트워크의 브로드캐스트 주소는 호스트 부분의 모든 비트가 1로 설정되므로, 10.255.255.255가 된다.

    문제 1.3

    • 문제: IP 주소 172.16.8.93에 대해 서브넷 마스크가 255.255.0.0이라면, 이 호스트의 네트워크 주소와 브로드캐스트 주소는 각각 무엇인가?
    • 답: 네트워크 주소: 172.16.0.0, 브로드캐스트 주소: 172.16.255.255
    • 해설: 서브넷 마스크 255.255.0.0은 첫 두 옥텟이 네트워크 부분을 나타내므로, 네트워크 주소는 마지막 두 옥텟을 0으로 설정한 172.16.0.0이다. 브로드캐스트 주소는 네트워크 부분을 제외한 호스트 부분의 모든 비트가 1로 설정되므로, 172.16.255.255가 된다.

    유형 2: 서브네팅과 호스트 수 계산

    문제 2.1

    • 문제: 서브넷 마스크가 255.255.255.192인 네트워크에서 사용 가능한 호스트 수는 몇 개인가?
    • 답: 62개
    • 해설: 서브넷 마스크 255.255.255.192는 **11111111.11111111.11111111.11000000**로 CIDR 표기법 /26에 해당한다. 즉 호스트 부분에 6비트가 할당되어, 사용 가능한 호스트 수는 2^6 − 2 = 62 이 된다 (네트워크 주소와 브로드캐스트 주소 제외)

    문제 2.2

    • 문제: IP 주소 범위가 192.168.0.0/24인 네트워크를 4개의 동일한 크기의 서브넷으로 분할한다면, 각 서브넷의 사용 가능한 호스트 수는 몇 개인가?
    • 답: 62개
    • 해설: /24 네트워크를 4개의 서브넷으로 나누기 위해서는 2비트가 추가로 필요하다(/26). 따라서, 각 서브넷의 호스트 부분에 6비트(32-26)가 남고, 사용 가능한 호스트 수는 2^6−2=62개이다.

    문제 2.3

    • 문제: 서브넷 마스크가 255.255.255.248인 네트워크에서 생성할 수 있는 서브넷의 최대 개수는 몇 개인가?
    • 답: 32개
    • 해설: /29 서브넷 마스크(255.255.255.248)는 이진수로 **11111111.11111111.11111111.11111000**와 같고, /24 네트워크에서 5비트를 추가로 서브네팅하는 것과 같다. 따라서, 생성할 수 있는 서브넷의 최대 개수는 2^5=32개이다.

    유형 3: IP 주소 클래스 식별

    문제 3.1

    • 문제: IP 주소 130.25.5.15는 어떤 클래스에 속하나?
    • 답: 클래스 B
    • 해설: 130.25.5.15의 첫 번째 옥텟(130)은 128~191 사이이므로, 이 주소는 클래스 B에 속한다.

    문제 3.2

    • 문제: IP 주소 193.168.1.1는 어떤 클래스에 속하나?
    • 답: 클래스 C
    • 해설: 193.168.1.1의 첫 번째 옥텟(193)은 192~223 사이이므로, 이 주소는 클래스 C에 속한다.

    문제 3.3

    • 문제: IP 주소 224.0.0.5는 어떤 클래스에 속하나?
    • 답: 클래스 D
    • 해설: 224.0.0.5의 첫 번째 옥텟(224)은 224~239 사이이므로, 이 주소는 클래스 D(멀티캐스트 주소)에 속한다.

    유형 4: 서브네팅에 의한 호스트 수 계산

    문제 4.1

    • 문제: 서브넷 마스크가 255.255.255.224인 네트워크에서 각 서브넷에서 사용 가능한 호스트 수는 몇 개인가?
    • 답: 30개
    • 해설: 서브넷 마스크 255.255.255.224는 /27을 의미한다. 호스트 부분에는 5비트가 할당되어, 2^5−2=30개의 사용 가능한 호스트 주소를 가진다.

    문제 4.2

    • 문제: IP 주소 172.16.0.0/16 네트워크를 /24 서브넷으로 분할했을 때, 생성할 수 있는 서브넷의 총 수는 몇 개인가?
    • 답: 256개
    • 해설: /16에서 /24로 서브네팅하면, 8비트가 서브넷팅에 사용된다. 따라서, 2^8=256개의 서브넷을 생성할 수 있다.

    문제 4.3

    • 문제: 서브넷 마스크 255.255.255.252는 몇 개의 호스트 주소를 지원하는가?
    • 답: 2개
    • 해설: 서브넷 마스크 255.255.255.252는 /30을 의미하며, 호스트 부분에 2비트가 할당된다. 2^2−2=2개의 사용 가능한 호스트 주소를 가진다.

    유형 5: 서브넷 마스크 계산

    문제 5.1

    • 문제: 네트워크에 510개의 호스트가 필요할 경우, 사용해야 할 최소 서브넷 마스크는?
    • 답: 255.255.254.0 (/23)
    • 해설: 510개의 호스트를 지원하기 위해선, 최소 9비트가 호스트 주소 지정에 필요하다. 2^9=512개의 주소가 생성하고, 이 중 2개는 네트워크 및 브로드캐스트 주소로 쓰고 나머지를 호스트로 사용하면 된다. 호스트에 9개 비트를 썼기에 /23 (32-9) 가 필요하며 전체 서브넷 마스크를 계산하면 255.255.254.0 (/23)가 된다.

    문제 5.2

    • 문제: /28 서브넷 마스크를 사용할 경우, 각 서브넷에서 사용 가능한 호스트 수는?
    • 답: 14개
    • 해설: /28은 호스트 부분에 4비트를 할당한다. 이로 인해 2^4−2=14개의 사용 가능한 호스트 주소가 있다.

    문제 5.3

    • 문제: 192.168.1.0 네트워크에서 60개의 호스트를 지원해야 할 경우, 권장되는 서브넷 마스크는 무엇인가?
    • 답: 255.255.255.192 (/26)
    • 해설: 60개의 호스트를 지원하기 위해선 최소 6비트가 호스트 주소 지정에 필요하며, 2^6=64개의 주소가 생성된다. 이 중 2개는 네트워크 및 브로드캐스트 주소로 사용되므로, 남은 62개의 주소로 조건을 만족할 수 있다. 따라서 /26 (32-6) 서브넷 마스크가 적합하다.
    반응형