IP란?, 클래스, 서브넷마스크, 공인IP/사설IP
IP란?
컴퓨터 네트워크에서 장치들이 서로를 인식하기 위해 사용되는 특수한 번호입니다.
모든 네트워크 장치(라우터, 서버..)는 IP를 가지고 있습니다.
IP주소를 이용하여 발신자가 수신자를 향하여 데이터를 전송
합니다.
IP는 고정된 IP를 할당받는 방법과 DHCP를 이용하여 동적으로 할당받는 방법도 존재합니다.
IPv4(Internet Protocol version4)
- 32비트로 구성된 주소 체계로, 보편적으로 사용되는 버전입니다.
- 8비트 단위로 점을 찍어 4개로 구분 합니다. 8비트 단위를 옥텟이 이라고도 합니다.
- 8비트를 4개로 구분하여 10진수로 합니다.
- IPv4 주소는 네트워크 식별자와 호스트 식별자로 구성되며, 예를 들어 "192.168.0.1"과 같은 형식으로 표현됩니다.
- IPv4로 표현이 어려워서 NAT, 서브네팅과 같은 부수기술이 필요합니다.
- 하지만 IPv4는 주소 고갈 문제와 보안 등의 이슈로 인해 대체되는 중입니다.
IPv6(Internet Protocol version6)
- 128비트로 구성된 주소 체계로, IPv4의 한계를 극복하기 위해 개발된 버전입니다.
- IPv6 주소는 16진수와 콜론으로 구분된 형식으로 표현되며, 예를 들어 "2001:0 db8:85 a3:0000:0000:8 a2 e:0370:7334"와 같이 표현됩니다.
- IPv6는 주소 고갈 문제를 해결하고, 보안과 확장성을 향상시키는 등의 장점을 가지고 있습니다
IPv4에서 IPv6로 발전된점
- 주소 공간을 32→ 128 bit로 확장하여 제공합니다.
- 네트워크 레이버 보안을 내장하여 보안기능을 제공합니다. (IPSec)
- 개선된 헤더구조(헤더가 단순해져서 빠른 처리가 가능해졌다)
- IPv4에는 체크섬이 있지만 IPv6에는 체크섬이 없다.(TCP, UDP에 있어서)
- 패킷을 단편화 관련 필드가 사라져서 효율적인 라우팅이 가능해졌습니다.
- TTL → Hop Limit으로 대체되었습니다. (패킷이 라우터를 거치면서 홉 카운트가 줄어 0이 되면 패킷이 폐기된다)
🤔 우리는 지금 IPv4를 쓰는걸까 IPv6를 쓰는걸까?
현재 대부분의 네트워크는 IPv4 (Internet Protocol version 4)를 사용하고 있습니다.
IPv4는 32비트 주소 체계로 약 42억 개의 고유한 IP 주소를 제공합니다. 그러나 인터넷 사용량의 급증으로 인해 IPv4 주소가 고갈되는 문제가 발생하고 있습니다. IPv6 (Internet Protocol version 6)는 128비트 주소 체계를 가지며, 약 340간 개의 고유한 IP 주소를 제공합니다. 이는 현재의 IPv4 주소 고갈 문제를 해결하고, 더 많은 장치들이 인터넷에 연결될 수 있도록 합니다.
IPv6는 현재 점진적으로 채택되고 있지만, 아직까지 대부분의 네트워크는 IPv4를 사용하고 있습니다. IPv4와 IPv6는 서로 다른 프로토콜이기 때문에 호환성 문제가 있습니다. 그러나 네트워크 인프라 및 장치들이 IPv6를 지원하고 적절한 업데이트와 전환 작업이 이루어지면 IPv6의 사용이 더욱 확대될 것으로 예상됩니다.
IP주소 | 네트워크 주소 + 호스트 주소
IP 주소 클래스는 IP 주소의 범위와 네트워크 식별 방법을 나타내는 데 사용되는 구분 기준입니다.
IP 주소는 네트워크 주소와 호스트 주소로 구분됩니다.
- 네트워크 주소 (Network Address):
- 네트워크 식별을 위해 사용되는 부분입니다.
- 네트워크에 연결된 모든 호스트들이 동일한 네트워크 주소를 가지게 됩니다.
- 네트워크 주소는 IP 주소에서 호스트 주소 부분을 모두 0으로 표시한 값입니다.
- 예를 들어, 192.168.0.0은 네트워크 주소입니다.
- 호스트 주소 (Host Address):
- 특정 네트워크 내에서
개별 장치를 식별하기 위해 사용되는 부분
입니다. - 호스트 주소는 네트워크 주소를 제외한 나머지 부분입니다.
- 호스트 주소는 네트워크 내에서 고유해야 합니다.
- 특정 네트워크 내에서
예를 들어, IP 주소 192.168.0.1의 경우:
192.168.0은 네트워크 주소
를 나타내고,1은 호스트 주소
를 나타냅니다.- 같은 네트워크에 속하는 다른 장치들도 네트워크 주소인 192.168.0을 가지고 있을 것이며, 호스트 주소만 다를 것입니다.
네트워크 주소와 호스트 주소는 IP 주소의 구성 요소로써, 라우팅 및 패킷 전달에서 중요한 역할을 합니다.
아래에서는 IPV4를 기준으로 설명합니다.
IP 주소 : 클래스
지금은 사용하지 않는 방법입니다
A class
0xxx xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx
- 첫 번째 옥텟이 1 ~ 126 사이의 범위를 가집니다.
- 0000 0000. 0000 0000. 0000 0000. 0000 0000 ~ 0111 1111. 1111 1111. 1111 1111. 1111 1111
- 0.0.0.0 ~ 127.255.255.255
첫 번째 옥텟 8비트는 네트워크 식별자
로 사용되며, 나머지3개의 옥텟은 호스트 식별자
((2^24) - 2)로 사용됩니다.- 대규모 네트워크에 할당되는데 사용됩니다.
B class
10xx xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx
- 첫 번째 옥텟이 128 ~ 191 사이의 범위를 가집니다.
- 128.0.0.0 ~ 191.255.255.255
첫 번째 2개의 옥텟(16비트)는 네트워크 식별자
로 사용되며,나머지 2개의 옥텟은 호스트 식별자
(2^16) - 2로 사용됩니다.- 중간 규모의 네트워크에 할당되는 데 사용됩니다.
C class
110x xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx
- 첫 번째 옥텟이 192 ~ 223 사이의 범위를 가집니다.
- 192.0.0.0 ~ 223.255.255.255
첫 번째 3개의 옥텟은 네트워크 식별자로 사용되며
,마지막 1개의 옥텟은 호스트 식별자
(2^8 )-2로 사용됩니다.- 소규모 네트워크에 할당되는데 사용됩니다.
D class
- 첫 번째 옥텟이 224 ~ 239 사이의 범위를 가집니다.
- 클래스
D 주소는 멀티캐스트 주소
에 사용됩니다. 멀티캐스트는 그룹 통신에 사용되며, 패킷은 그룹에 속한 여러 호스트에게 동시에 전송됩니다.
E class
첫 번째 옥텟이 240 ~ 255 사이의 범위를 가집니다.
클래스 E 주소는 실험적인 목적
으로 예약되어 있으며, 일반적으로 사용되지 않습니다.
🤔 참고
호스트 식별자 -2가 되는 이유는 맨 앞자리는 네트워크 주소로 남기고, 마지막 주소는 브로드 캐스트 주소로 남겨두기 때문입니다.
- 네트워크 주소:
- 해당 IP 주소가 속한 네트워크를 식별하는 역할을 합니다.
- 이 주소는 네트워크 상의 모든 호스트를 대표하는 주소로, 네트워크 자체를 식별합니다.
- 브로드캐스트 주소:
- 해당 네트워크 상의 모든 호스트에게 데이터를 한 번에 보내기 위해 사용되는 주소입니다.
- 브로드캐스트 주소로 데이터를 보내면 해당 네트워크의 모든 호스트가 그 데이터를 수신할 수 있습니다
즉, 네트워크 범위가 커질수록 호스트 주소 범위는 작아지는 반비례 관계입니다.
문제점
네트워크 크기가 작은 경우 큰 네트워크를 필요로 하는 조직은 여러 개를 확보해야 하는 문제가 있습니다.
작은 네트워크가 필요한 조직은 너무 많은 IP를 가져서 IP가 낭비됩니다.
IP 주소 : 클래스 리스, 서브넷마스크, 서브네팅
클래스 리스 : 기존의 클래스풀의 단점을 해결하기 위해서 나온 개념으로 네트워크 구분을 클래스로 하지 않는 것을 의미합니다. 클래스로 나누는 것이 아닌 서브넷 마스크를 중심으로 어디까지가 네트워크 주소고 어디까지가 호스트 주소인지 나눕니다.
서브네팅 (Subnetting) : 서브네팅은 IP 주소 범위를 더 작은 서브넷으로 나누는 프로세스입니다.
서브넷 (Subnet) : 서브네트워크, 쪼개진 네트워크입니다.
서브넷 마스크 (Subnet Mask) :
서브넷 마스크(Subnet Mask)는 IP 주소의 네트워크 부분과 호스트 부분을 구분하는 데 사용되는 비트 패턴입니다.
서브넷 마스크는 IP 주소와 함께 사용되어 네트워크 주소와 호스트 주소를 식별하고, IP 패킷을 올바른 네트워크로 라우팅 하기 위해 필요합니다.
서브넷 마스크는 주로 이진수로 표현되며, IP 주소와 동일한 길이를 갖습니다.
서브넷 마스크를 사용하여 IP 주소를 서브넷에 할당하면 네트워크를 세분화하여 더 작은 네트워크로 분할할 수 있습니다.
이를 통해 IP 주소 공간을 효율적으로 사용하고, 라우팅 및 네트워크 관리를 용이하게 할 수 있습니다.
CIDR
IDR (Classless Inter-Domain Routing)는 IP 주소 체계에서 서브넷 마스크를 표기하는 방법 중 하나입니다.
예를 들어, 192.168.0.0/24
는 24비트 서브넷 마스크를 가진 IP 주소를 나타냅니다. 이것은 첫 24비트가 네트워크 부분이고, 나머지 8비트가 호스트 부분을 나타내는 것을 의미합니다.
IPv4 CIDR 블록은 IPv4 주소와 비슷한 형태를 지니며, 점과 숫자로 이루어진 4 부분의 주소와 ‘/’ 뒤의 0에서 32까지의 숫자로 이루어진다. 즉, A.B.C.D/N과 같은 형태이다. 점과 숫자로 이루어진 부분은 IPv4 주소와 마찬가지로 4개의 8비트 단위 바이트로 이루어진 32비트 이진 숫자이다. `‘/’ 뒤의 숫자는 *접두어 길이
라고 하며, 주소의 왼쪽으로부터 세어서 공유하는 초기 비트의 수를 가리킨다. 때로는 점과 숫자 부분은 생략되고 표현되는데, 즉
/20*은 언급되지 않은 20비트의 접두어를 가지는 CIDR 블록을 나타낸다.
→ wikipedia
- CIDR 값
CIDR | Hosts | Mask |
/32 | 1 | 255.255.255.255 |
/31 | 2 | 255.255.255.254 |
/30 | 4 | 255.255.255.252 |
/29 | 8 | 255.255.255.248 |
/28 | 16 | 255.255.255.240 |
/27 | 32 | 255.255.255.224 |
/26 | 64 | 255.255.255.192 |
/25 | 128 | 255.255.255.128 |
/24 | 256 | 255.255.255.000 |
/23 | 512 | 255.255.254.000 |
/22 | 1024 | 255.255.252.000 |
/21 | 2048 | 255.255.248.000 |
/20 | 4096 | 255.255.240.000 |
/19 | 8192 | 255.255.224.000 |
/18 | 16384 | 255.255.192.000 |
/17 | 32768 | 255.255.128.000 |
/16 | 65536 | 255.255.000.000 |
/15 | 131072 | 255.254.000.000 |
/14 | 262144 | 255.252.000.000 |
/13 | 524288 | 255.248.000.000 |
/12 | 1048576 | 255.240.000.000 |
/11 | 2097152 | 255.224.000.000 |
/10 | 4194304 | 255.192.000.000 |
/9 | 8388608 | 255.128.000.000 |
/8 | 16777216 | 255.000.000.000 |
/7 | 33554432 | 254.000.000.000 |
/6 | 67108864 | 252.000.000.000 |
/5 | 134217728 | 248.000.000.000 |
/4 | 268435456 | 240.000.000.000 |
/3 | 536870912 | 224.000.000.000 |
/2 | 1073741824 | 192.000.000.000 |
/1 | 2147483648 | 128.000.000.000 |
예시
- IP 주소: 192.168.1.100
- 서브넷 마스크: 255.255.255.0 (또는 /24 CIDR)
- 네트워크 주소: 192.168.1.0
- 브로드캐스트 주소: 192.168.1.255
IP 주소가 192.168.1
.100
이고 사이더 표기법에 의해 /24이면 서브넷 마스크가 255.255.255
.0
입니다, 이는 24비트 서브넷 마스크로 표현됩니다. 이는 첫 24비트가 네트워크 주소
를 나타내고 나머지 8비트가 호스트 주소
를 나타내는 것을 의미합니다.
공인 IP/ 사설 IP ( NAT )
IP주소의 부족을 공인 IP(public IP)와 사설 IP(private IP)로 나누고 중간에 NAT이라는 기술을 통해 해결합니다.
NAT(Network Address Translation)
- NAT는 사설 네트워크 내부의 IP 주소를 공인 IP 주소로 변환하거나, 네트워크 장치들 간에 IP 주소를 변환하여 통신을 가능하게 하는 기술입니다.
- IP 주소 부족 문제를 해결하고, 네트워크 보안을 강화하는 데에도 도움이 됩니다.
- NAT는 라우터나 방화벽과 같은 네트워크 장치에서 구현됩니다.가능하게 하는 소프트웨어는 ICS, RRAS, Neffilter 등이 있습니다.
- 우리가 사용하는 공유기는 NAT기능을 제공합니다. 인터넷 회선 하나를 개통하고 인터넷 공유기를 이용하여 여러 PC를 사용할 수 있는 이유는 공유기에 NAT기능이 탑재되어 있어 여러 대의 호스트가 하나의 IP를 나눠 사용할 수 있는 것 입니다.
- 장점
- 내부 네트워크에서 사용하는 IP주소와 외부에 드러나는 IP주소를 다르게 유지할 수 있어 내부 네트워크에 대해 보안이 가능합니다.
- 단점
- 여러 명이 동시에 접속하게 되므로 실제로 접속하는 호스트 숫자에 따라 접속 속도가 느려질 수 있습니다.
🤔 참고 : DHCP (Dynamic HostConfiguration Protocol)
References.
IPv4와 IPv6 비교, 특징 _ 간단하고 깔끔한 정리글 :D
[Network] IP주소 클래스(A, B, C class)란?
[Network] 서브넷마스크(Subnet Mask)란?