본문 바로가기

DevOps & SRE 엔지니어 부트캠프/공부

[CAB TA 3기] 네트워크 - IP 클래스(IP Class), 서브넷 마스크(Subnet mask)

IP

  • IP란 인터넷에 연결되어 있는 모든 장치들을 식별하게 해주는 고유 주소이다.
  • IP는 일반적으로 192.168.123.132와 같이 마침표로 구분된 4개의 숫자가 있고 ','으로 분리된 10진수 형식으로 표시된다.
  • 이를 2진법으로 표현하면, 32비트 숫자 10000000.101010000.01111011.10000100이 된다.
  • 즉, IP는 32비트로 이루어진 주소이며, 1비트가 2니까 2의 32승, 약 43억개의 주소를 가지게 된다.

IP 주소 구성

  • IP는 네트워크ID + 호스트 ID로 구성된다.
  • 네트워크ID는 전세계 호스트들을 관리하기 힘드니 각 국가마다 네트워크ID를 부여한 것이다.
  • 호스트ID는 호스트들을 개별적으로 관리하기 위해 사용한다.

IP 주소 클래스

  • IP 주소 클래스는 더이상 사용되지 않고 현재에는 CIDR방식으로만 사용하지만, 기본 개념이기 때문에 알아두면 좋다.
  • IP 주소를 8비트로 4등분을 하면 각각을 옥텟(Octet)이라 부른다.
  • 각 옥텟별로 0~255개의 범위가 되므로 각각 256개의 숫자가 들어갈 수 있다.

  • 그리고 이 옥텟별로 IP의 클래스를 A,B,C로 나누게 된다.

A 클래스

  • A클래스는 처음 8비트가 네트워크 아이디고 나머지 24비트가 호스트아이디이다.
  • 첫번째 옥텟의 비트는 0인 것과 127인 것은 예약되어 사용할 수 없다.
  • 따라서 A클래스의 첫 옥텟은 1~126이 된다.
  • 호스트가 24비트이므로 2^24는 대략 1670만개의 아이디를 만들 수 있다.

B클래스

  • 처음 16비트가 네트워크 아이디, 나머지 16비트가 호스트아이디이다.
  • 첫번째 옥텟의 두 비트가 10으로 고정이다.
  • 따라서 B클래스의 범위는 128~191이 된다.(10000000~10111111 = 128~191)
  • 호스트 아이디는 2^16 = 65536개를 만들 수 있다.

C클래스

  • 처음 24비트가 네트워크 아이디, 나머지 8비트가 호스타아이디이다.
  • 첫번째 옥텟의 세번째 비트가 110으로 고정이다.
  • 따라서 C클래스의 범위는 191~223 사이의 숫자로 시작한다.
  • 호스트 대역이 2^8 = 256개이다.

D클래스

  • 첫번째 옥텟의 네번째 비트가 1110으로 고정이다.
  • 224.0.0.0 ~ 239.255.255.255
  • 멀티캐스트용 대역으로 IP 주소에 할당되지 않는다.

E클래스

  • 첫번째 옥텟의 비트가 1111로 고정이다.
  • 240.0.0.0 ~ 255.255.255.255
  • 연구용 주소 대역으로 IP주소에 할당되지 않는다.

네트워크 주소 & 브로드캐스트 주소

  • 네트워크 주소 : 가장 첫번째 주소
  • 브로드캐스트 주소 : 마지막 주소
  • 네트워크 주소는 네트워크 대역대를 의미한다.
  • 브로드캐스트 주소는 인터넷 데이터를 전달하기 위한 주소로서, 호스트에게 할당되지 않는다. 

서브넷 / 서브넷마스크 / 서브네팅 총 정리


서브넷

  • 앞서 배웠듯이 IPv4는 초기에 부족한 ip 주소를 해결하기 위해 ip를 클래스로 나누어서 할당했다.
  • 하지만 이 방법을 사용하면, 낭비되는 호스트의 개수가 너무 많아진다. 특정 클래스에 호스트가 몰릴 수도 있고, 그러면 나머지 클래스는 텅 비게 된다.
  • 이러한 문제를 해결하기 위해 IP를 사용하는 네트워크 장치 수에 따라 효율적으로 사용할 수 있는 서브넷 개념이 등장하였다.
  • 서브넷(Subnet)이란 네트워크가 분할된 작은 네트워크를 의미한다.
  • 서브넷을 만들기 위해 네트워크를 분할하는 것을 서브넷팅(Subnetting)이라 한다.
  • 서브넷팅은 서브넷 마스크(Subnet mask)를 통해 계산된다.

서브넷 마스크

  • 서브넷 마스크는 IP 주소에서 네트워크ID와 호스트ID를 구분하기 위한 목적으로 만들어졌다.
  • 서브넷 마스크는 IP주소와 똑같은 32비트로 표현된다.
  • 네트워크ID 영역은 모두 1로 채워고, 호스트 영역은 모두 0으로 채운다.
  • CIDR 방식으로 표현할 경우, 192.168.0.1/24에서 /24가 서브넷 마스크를 표현한 것이다.
  • 1의 개수가 앞에서부터 24개, 나머지 8개가 0이라는 뜻이다.

서브넷팅

  • 서브넷팅이란 네트워크 영역을 잘게 나누어 서브넷을 구성하는 작업을 말한다.
  • 예를 들어, 호스트를 50개만 사용하는 기업이 192.168.10.0/24 대역을 사용한다고 가정하면, C클래스니까 총 256개를 사용할 수 있다.
  • 그런데 256개를 모두 주면 약 200개의 호스트가 낭비되기 때문에 256개를 절반(128개)으로 나누고, 또 절반(64개)으로 나누어 기업에 할당하고 나머지 호스트는 다른 사용처로 할당한다. 이렇게 호스트를 나누는 작업을 서브넷팅이라고 한다.

주소 범위를 복합적으로 나누기

  • 3층 건물이 있고, 1층에 100개의 주소, 2층에 50개, 3층에 30개만 사용한다고 가정해보자

  • 주소를 원하는 크기만큼 나눌 때 반드시 크기가 큰 것부터 나누어야 한다.
  • 1층 100개 => 2^7=128 => 7개의 호스트비트 필요
  • 1층 : 192.168.10.[0]000 0000 ~ 192.168.10.[0]111 1111(편의상 10진법과 2진법을 혼용해서 사용)
  • 1층 네트워크 주소 : 192.168.10.0/25(192.168.10.00000000)
  • 2층 50개 => 2^6=64 => 6개의 호스트비트 필요
  • 2층 : 192.168.10.[10]00 0000 ~ 192.168.10.[10]11 1111([1]로만하면 7개의 비트를 쓰게 되니, 10을 사용)
  • 2층 네트워크 주소 : 192.168.10.128/26(192.168.10.10000000)
  • 3층 30개 => 2^5=32 => 5개의 호스트비트 필요
  • 3층 : 192.168.10.[110]0 0000 ~ 192.168.10.[110]1 1111
  • 3층 네트워크 주소 : 192.168.10.192/27(192.168.10.1100 0000)