[AWS] IP/SUBNET

Darcy Daeseok YU ·2024년 10월 19일

IP: Internet Protocol
인터넷에 연결된 모든장치들을 식별할 수 있는 각장비의 고유주소(컴퓨터, 서버 장비, 스마트폰 등)
000.000.000.00 > 2의 32승 > 43억개의 주소

IP주소 구성
네트워크 ID + 호스트 ID
Network ID => 전세계 모든 호스트들을 관리하기 힘드니 각 국가마다 ID부여한다고 보면됨.
Host ID => 호스트들을 개별적으로 관리하기 위함. (국가의 국민)

예시) 192.168.10.10 ->  11000000.10101000.00001010.00001010

네트워크 주소는 11000000.10101000.00000010, 192.168.10.* 에 속하면 같은 네트워크
나머지 마지막 부분이 00001010은 호스트 주소

IP주소 클래스 : IPv4의 IP할당 방법
192.168.10.10 => 4등분해서 각 파트를 1옥텟(Octet)이라 부름.

Subnet : 하나의 네트워크가 분할되어 나눠진 작은 네트워크
서브넷을 만들기위해 네트워크를 분할하는 것을 서브네팅(Subnettin)
만일 ip가 100개만 필요하다면 C클래스(256개)를 더 쪼개서 줄 수 있다.
이 서브네팅을 서브넷 마스크(Subnet Mask)를 통하여 계산되어 수행

서브넷 도입사유
IPv4의 부족한 아이피 주소를 해결하기 위해서 사용한 IP클래스 할당법의 문제 해결을 위해서

A Class : 첫번째 옥텟의 비트는 0으로 고정 (0_0000000 ~ 0_1111111)

따라서 네트워크 주소범위 1.0.0.0 ~ 126.0.0.0 (0.0.0.0 미지정 주소와 127.0.0.0루프백주소 제외) : 호스트 아이디 개수 약 1670만개

B Class : 첫번째 옥텟의 비트는 10으로 고정(10_000000 ~ 10_111111)
네트워크 주소범위 128.0.0.0 ~ 191.255.0.0 : 호스트 아이디 개수 약 65536개

C Class : 첫번째 옥텟의 비트는 110으로 고정 (110_00000 ~ 110_11111)
네트워크 주소범위 192.0.0.0 ~ 233.255.255.0 : 호스트 아이디 개수 약 256개

비효율적인 예시
클래스 B (호스트개수 약 65536)를 1개 업체에 할당 -> 1만개만 사용하고 5만개는 그냥 점유된 상태 -> 클래스 C(호스트개수 약 256개)를 할당하자니 너무 부족

위 문제를 해결하기 위해서 서브넷 개념 등장

서브넷 마스크(Subnet Mask)
IP 주소에서 네트워크ID와 호스트ID를 구분하기 위해서
물론 ip클래스마다 주소 범위가 정해져있어서 앞자리만 보고도 어느 클래스인지 판별할 수는 있긴 하지만 보다 쉽게 구분하기 위해서 고유의 표기법으로 구분한다고 이해하면 된다

서브넷 마스크 표현
255.255.255.0
아이피와 표현이 다른점은 서브넷 마스크는 연속된 1과 연속된 0으로 구성
10011111.110111111. 의 패턴은 X
11110000.11111111.
연속된 형태만 가짐.

A Class
IP: 10.10.10.10
S/M: 255.0.0.0
255가 1옥텟차지 A Class라는 의미
네트워크 아이디 10
호스트 아이디 10.10.10

B Class
IP: 172.16.1.10
S/M: 255.255.0.0
255가 2옥텟차지 B Class라는 의미
네트워크 아이디 172.16
호스트 아이디 1.10

C Class
IP: 192.168.10.100
S/M: 255.255.255.0
255가 3옥텟차지 C Class라는 의미
네트워크 아이디 192.168.10
호스트 아이디 100

Prefix 표현
서브넷 마스크를 위보다 더욱 간소화해서 표현
비트를 이용한 방법 IP 192.168.0.1/24라면 뒤 /24가 서브넷 마스크를 표현

/24라는 뜻은 32비트 중 앞에서 부터 차례로 1의 개수가 24개
/24 -> 11111111.11111111.11111111.00000000 -> 255.255.255.0 C Class
/16 -> 11111111.11111111.00000000.00000000 -> 255.255.0.0. B Class
/8 -> 11111111.00000000.00000000.00000000 -> 255.0.0.0 A Class

서브네팅 (Subnetting)
IP주소를 효울적으로 나누어 사용하기 위한 방법
네트워크 성능 보장, 자원을 효율적으로 분배하기 위해 네트워크 영역과 호스트 영역을 쪼개는 작업
서브넷팅을 하면 IP 할당 범위를 더 작은 단위로 나눌 수 있게 된다. (자신의 네트워크 주소를 더 작은 서브 네트워크로 2의 배수로 나누는 과정)

예시 >
만일 호스트를 50개만 사용하는 기업이 192.168.10.0/24 아이피 주소를 사용한다면 가정
C Class 호스트 개수 256이므로 낭비
256 / 2 = 128
128 / 2 = 64개 할당하는게 효율적임.

서브네팅 계산법

항상 호스트 ID에서 왼쪽부터 결정되어야 한다는 특징 있음
각 분할 주소대에서 2개의 주소를 제외해야함:가장 첫번째주소 네트워크(0)과 마지막주소 브로드캐스트
192.168.10.0/24 => 서브넷 마스크 255.255.255.0 C CLASS
호스트 아이디는 0 , 할당가능한 호스트 개수는 2^8 256개
호스트 아이디 0 -> .00000000 ::

2분할 계산 : 256/2=128

회사가 사용할 호스트 개수는 100개, 256개를 할당하면 낭비
256개를 절반으로 나눠주자.

서브넷 구분 비트 ( 2분할 : 왼쪽첫비트 1개 )
.00000000 ~ .01111111 ( 0 ~ 127)
.10000000 ~ .11111111 (128 ~ 255)

분할 주소

192.168.10.00000000 ~ 192.168.10.01111111 (0 ~ 127)
192.168.10.10000000 ~ 192.168.10.11111111 (128 ~ 255)

실사용가능한 주소

192.168.10.00000001 ~ 192.168.10.011111110
= 192.168.10.1 ~ 192.168.10.126

192.168.10.10000001 ~ 192.168.10.1111111
= 192.168.10.129 ~ 192.168.10.254

총 256개의 호스트 아이디에서 2분할 * 각 2개의 디폴트 호스트아이디 개수 -> 4개 제외
각 126개 사용가능

4분할 계산 :

서브넷 구분 비트 ( 2분할 : 왼쪽비트 2개) 00/01/10/11

분할 주소

.00000000 ~ .00111111 ( 0 ~ 63)
.01000000 ~ .01111111 (64 ~ 127)
.10000000 ~ .10111111 (128 ~ 191)
.11000000 ~ .11111111 (192 ~ 255)

네트워크 주소 0/64/128/192 모두 짝수
브로드캐스트 주소 63/127/191/255 모두 홀수

사용가능한 호스트 아이디 수 -> 4분할 * 2 -> 8개 제외

실사용가능한 주소

192.168.10..00000001 ~ 192.168.10.001111110
= 192.168.10.1 ~ 192.168.10.62

192.168.10..01000001 ~ 192.168.10.011111110
= 192.168.10.65 ~ 192.168.10.126

192.168.10..10000001 ~ 192.168.10.101111110
= 192.168.10.129 ~ 192.168.10.190

192.168.10..11000001 ~ 192.168.10.111111110
= 192.168.10.193 ~ 192.168.10.254

출처

profile
React, React-Native https://darcyu83.netlify.app/

0개의 댓글