Network

IP/CIDR란

WoongIT 2022. 7. 27. 09:13
반응형
SMALL
윈도우 검색창 -> CMD -> ipconfig

 

IP(internet Protocol)

  • IP는 패킷 교환 네트워크(인터넷)에서 데이터를 주고 받을때의 통신 규약이다.
  • OSI계층에서 IP계층은 호스트의 주소지정패킷 분할 및 조립 기능을 담당한다.

 

IP Address(Internet Protocol Address)

  • 네트워크(인터넷) 상에서 데이터를 주고받기 위해 모든 컴퓨터들은 각자의 주소를 가진다.
  • 즉, IP 주소는 IP에 의한 패킷 교환을 위한 컴퓨터의 네트워크 상의 고유 주소이다.

→ 일반적으로 IP 주소를 IP라고 부르는 경우가 있지만, IP라는 것은 통신 프로토콜 자체를 의미하는 것이고, IP 주소인터넷 상에서 데이터를 주고 받을 때 사용되는 주소이므로 혼동하지 말아야 한다.

 

IPv4 & IPv6

  • IP 주소를 부여하는 방식은 대표적으로 두 가지를 말한다.
  • 현재 가장 대중적으로 사용하는 IPv4와 상대적으로 최근에 고안된 IPv6가 있다.

 

IPv4(IP Version 4)

  • IPv4는 패킷 교환 네트워크 상에서 데이터를 교환하기 위한 프로토콜이다.
  • 현재 우리가 일반적으로 사용하는 주소는 IPv4이다.
  • 이 주소는 32비트로 이루어져 있으며, 8비트씩 4개의 구간으로 나누어서 나타낸다.
  • 각 자릿수는 0~255(2^8)의 범위로 표현이 가능하다. (약 , 42억 9496만개)

현재 가장 많이 사용하는 프로토콜

32비트, 8비트씩 4개의 구간(옥탯)
데이터 정확성 보장 X
중복 패킷 전달 가능성

 

옥텟(Octet)

  • IPv4 주소에서의 옥텟이라는 말의 의미는 32비트의 IP 주소를 8비트로 나누는 단위,
  • 4구간으로 나누어서 사용
  • IPv4 방식의 주소들이 고갈되었기 때문에 더 많은 컴퓨터에서 사용하도록 하기 위한 방법 중에 대표적으로 사용되는 방식에 서브넷 마스크라는 방식이 있다.

 

IPv6(IP Version 6)

  • IPv4에서 32비트를 사용했다면, → IPv6에서는 128비트확장하였다.
  • IPv4를 옥텟단위로 4등분하여 표기하였다면 →IPv6는 2옥텟(16비트) 단위로 8등분하여 표기
  • 따라서 각 자리는 네자리의 16진수로 표현되고, 각 자릿수들은 콜론(:)으로 구분하여 표기한다.

 

(참고) 그냥 IPv6로 바꿔버리면 안될까?

-> IPv4방식으로 지금까지 사용해 왔기 때문에 IPv4방식을 사용하는데 있어서는 보안대책이 잘 마련되어 있다. IPv6는 아직 인프라가 많이 약한 상태이다. 따라서 보안대책이 많이 약한 상태이기 때문에 섣불리 전환할 수 없다고 한다.

 

네트워크 클래스(Network Class)

  • 우리는 IPv4를 사용해 왔기 때문에 이미 인프라가 IPv4환경으로 구축되어 있다. 따라서 이미 구성된 인프라를 최대한 활용하기 위해서 IPv4체계의 IP주소를 사용하는 네트워크의 규모에 따라 관리하기 쉽도록 클래스라는 이름으로 나누기 시작했고, 이는 네트워크 클래스의 등장으로 이어진다.
  • 여기서 네트워크 주소는 인터넷 상에서 네트워크를 구분하는 역할을 하고,
  • 호스트 주소특정 네트워크 안에 존재하는 기기들을 구분하는 역할을 한다
클래스  최상위 비트  범위 네트워크 비트 호스트 비트  네트워크 수 호스트 수
Class A 0 0.0.0.0 ~
127.0.0.0
8 24 128 16,777,214
Class B 1 128.0.0.0 ~
191.255.0.0
16 16 16,384 65,534
Class C 11 192.0.0.0 ~
223.255.255.0
24 8 2,097,152 254
Class D 111 224.0.0.0 ~239.255.255.255 N/A N/A N/A N/A
Class E 1111  240.0.0.0 ~255.255.255.255 N/A N/A N/A N/A

 

  • 우리가 일상적으로 사용하는 범위의 IP주소는 아래와 같은 구조를 가지고 있다. 일반적으로 사용되는 IP주소는 A, B, C Class 네트워크에 포함된다.

 

A Class

  • 대규모 네트워크 환경, 호스트 수가 제일 많은 클래스
  • 첫 번째 옥텟의 범위는 0~127이고
  • 1개의 네트워크 영역이 각각 가질 수 있는 호스트 ID는(2^24)-2개이다
Class
첫번째 옥텟(2진수)
첫번째 옥텟의 값의 범위(10진수)
이론적 IP주소 범위
A Class
0xxx xxxx
0~127
0.0.0.0 ~ 127.255.255.255.255

 

B Class

  • 중규모 네트워크 환경
  • 첫 번째 옥텟의 범위는 128~191이고
  • 1개의 네트워크 영역이 각각 가질 수 있는 호스트 ID는(2^16) -2개 이다.
Class
첫번째 옥텟(2진수)
첫번째 옥텟의 값의 범위(10진수)
이론적 IP주소 범위
B Class
10xx xxxx
128~191
128.0.0.0 ~ 191.255.255.255

 

C Class

  • 소규모 네트워크
  • 첫 번째 옥텟의 범위는 192~223이고
  • 1개의 네트워크 영역이 각각 가질 수 있는 호스트 ID는 (2^8)-2개 이다.
Class
첫번째 옥텟(2진수)
첫번째 옥텟의 값의 범위(10진수)
이론적 IP주소 범위
C Class
110x xxxx
192 ~ 223
192.0.0.0 ~ 223.255.255.255
 

D Class

  • 멀티캐스트를 위해서 존재하는 네트워크이다. 여기서 멀티캐스트라는 것은 한 번의 메시지 송신으로 특정 네트워크 안에 있는 두 개이상의 컴퓨터에게 전송할 수 있도록 하는 기술이다.

 

E Class

  • 네트워크는 예약된 주소로 미래에 사용될 용도로 구분해 놓은 네트워크라고 한다.

→ 이 두 클래스는 A, B, C Class IP주소와는 다른 용도로 쓰인다. 일반 IP주소처럼 동일하게 사용할 수 없다. 따라서 네트워크 주소, 호스트 주소로 나눠져 있지 않은 특수용도 IP주소이다.

 

문제

10.3.4.3
클래스 : A 네트워크 부분 : 10.0.0.0 호스트 부분 : 3.4.3
132.12.11.4
클래스 : B 네트워크 부분 : 132.12.0.0 호스트 부분 : 11.4
203.10.1.1
클래스 : C 네트워크 부분 : 203.10.1.0 호스트 부분 : 1
192.12.100.2
클래스 : C 네트워크 부분 : 203.10.1.0 호스트 부분 : 1
130.11.4.1
클래스 : B 네트워크 부분 : 130.11.0.0 호스트 부분 : 4.1
261.12.4.1
이런 IP 주소는 없습니다.
예약된 IP주소
127.0.0.1
루프백(Loopback) 주소, 자기자신을 가리키는 주소이다
192.168.0.0
사설내트워크
224.0.0.0
멀티캐스트
240.0.0.0
미래 사용 용도로 예약

 

💡 네트워크 클래스를 현재도 사용하는 중인가?
  • 현재는 위의 클래스로 나눠서 사용하지 않는다. 위의 클래스로 네트워크를 구분하게 되면, 어떤 기업이 웹 서비스를 구현하는데 있어서 Class C 네트워크 보다는 더 많은 호스트 수가 필요하고 Class B 네트워크 보다는 더 적은 호스트 수가 필요한 상황에서 Class B 주소를 할당받는다면, 이는 IP주소의 낭비로 이어질 수 있다.
  • 따라서 이를 보완하기 위해 등장한 **서브넷(Subnet)**이라는 기술을 사용하면, 네트워크 영역을 클래스로 구분한 것 처럼 8비트, 16비트, 24비트로 구분하지 않고, 네트워크 주소를 17비트, 27비트로 적절한 양으로 구분할 수 있게 된다. 이 내용은 다음 포스트로 따로 정리하도록 하겠다.
  • 즉 개념적으로 사용하고는 있지만, 서브넷과 연계하여 사용하는 것이 일반적이다

 

 

CIDR(Classless Inter-Domain Routing, CIDR)

  • 클래스 없는 도메인 간 라우팅 기법
  • 고정길이가 아닌 가변길이로 주소를 묶어주는 슈퍼네트 마스크(슈퍼넷팅) 개념임
  • Classless이기 때문에 IPv4에 유연성을 더해 보다 효율적으로 사용 가능
  • '/' 뒤에 N은 prefix 길이이며 주소의 왼쪽으로부터 비트의 수를 가리킴

  • 192.168.10.0/24라는 CIDR 블록이 있다.
  • prefix 길이가 24이므로 192.168.10 부분고정
  • . 을 기준으로 구간을 나눈다면, 한 구간에는 8비트를 차지

  • N = 24
  • Host로 사용할 수 있는 IP 주소는 192.168.0 ~ 192.168.255
  • 네트워크브로트캐스트 주소를 뺀 192.168.1 ~ 192.168.254 구간을 실질적으로 사용

→ 192.168.0은 Network Address

→ 192.168.255은 Broadcast로 사용되기 때문이다 !

  • 예를 들어 192.168.10.10/24의 네트워크 주소를 알고 싶을 때 다음과 같이 구할 수 있습니다.
  • 먼저 192.168.10.10을 2진수로 전환합니다. 그리고 CIDR prefix 수(여기서는 24)만큼 왼쪽에서부터 1을 24개 채웁니다.
  • 다음으로 AND 연산을 하여 192.168.10.0이라는 네트워크 주소를 구할 수 있습니다.
반응형
LIST