IP주소
- IP주소 체계
- IPv4(32bit) 기준으로 최대 43억개
- IPv6(128bit) 최대 갯수 : 2^128
- IPv4 주소는 아래 그림과 같이 8비트(0~255 사이의 값) * 4 Octet으로 표시된다.

- IP주소 구성
- IP주소는 네트워크주소와 호스트주소 두 부분으로 구성된다.
- 네트워크주소란 host들이 모여있는 네트워크를 식별하기 위한 주소
- 호스트주소란 네트워크 내에서 특정 host를 식별하기 위한 주소
- 네트워크주소는 집 주소, 호스트주소는 집 안에 방을 구분하기 위한 주소 정도로 이해하면 이해가 쉬울 것 같다. - 클래스 개념
- IP주소 내에서 네트워크 주소와 호스트 주소를 구분하는 경계점이 고정되어 있지 않기 때문에, 호스트 IP 갯수에 따라 네트워크 주소의 크기를 다르게 할당할 수 있도록 클래스 라는 개념이 도입됨
- A, B, C, D, E 클래스가 존재하며, 각각의 클래스에 할당되는 IP 주소의 갯수와 역할이 다름
| 클래스 | 네트워크 주소 범위 | 네트워크주소 / 호스트주소 구분 | 호스트 범위 |
| A | 1.0.0.0 ~ 127.0.0.0 * 127.0.0.0 대역은 A 클래스에 속하지만 loopback 주소라고 불리며, 자신을 가리키는 localhost 용도로 사용됨(네트워크 통신에 사용되지 않음) |
네트워크주소.호스트주소.호스트주소.호스트주소 | 최대 16,777,214개 |
| B | 128.0.0.0 ~ 191.0.0.0 | 네트워크주소.네트워크주소.호스트주소.호스트주소 | 최대 65,534개 |
| C | 192.0.0.0 ~ 223.0.0.0 | 네트워크주소.네트워크주소.네트워크주소.호스트주소 | 최대 254개 |
| D | 224.0.0.0 ~ 239.0.0.0 | 멀티캐스트를 위해 사용되는 주소 범위로 네트워크 주소와 호스트 주소 구분 없음 | |
| E | 240.0.0.0 ~ 255.0.0.0 | 예약된 주소 범위로 네트워크 주소와 호스트 주소 구분 없음 |
- 클래스 기반의 IP 주소 체계를 Classful이라고 함. 위 표와 같이 클래스 기반으로 네트워크를 분할하는 기법은 현재 사용하지 않음.
- 현재는 네트워크 크기에 맞춰 1bit 단위로 네트워크를 상세히 분할하는 Classless 기반의 주소 체계를 사용함. -> subnet mask를 활용! 아래에서 classless 체계에 대해 알아보자
서브넷 마스크(Subnet Mask)
- Classless IP주소 표현 방식에서 네트워크주소와 호스트주소를 구분하기 위한 구분자
- 1은 네트워크 주소, 0은 호스트 주소를 표시함


- 예를들어 192.168.1.0/24 로 표시되어 있으면, 서브넷 마스크로 24bit를 사용하겠다는 의미이다.
즉, 서브넷마스크 255.255.255.0으로, 사용가능한 네트워크 주소의 갯수는 2^24-2, 호스트 주소의 갯수는 2^8-2가 된다. (2^n-2)
(이 CIDR 표기법에 대해서는 아래에 상세하게 기재되어 있다.)
- 위에서 [-2]를 해준 이유는, 1개는 네트워크 자체를 식별하는 네트워크 주소로 사용되기 때문에 호스트 주소로 사용할 수 없어 제외한 것이다. 또 다른 1개를 제외한 이유는 네트워크 내의 모든 호스트에게 데이터를 전송하는 Broadcast Address로 사용되기 때문에 제외한 것이다. 즉, 2^n-2(네트워크주소, 브로드캐스트주소)
사설IP(Private IP)
- IP 주소를 효율적으로 활용하기 위해 IP 주소를 분할하고자 만든 개념
- 사설망
- 사설망 내부에서는 외부 인터넷 망으로 통신이 불가한 사설IP로 구성
- 외부로 통신할 때는 통신 가능한 공인 IP로 나누어 사용
- 보통 하나의 망에는 사설 IP를 부여받은 기기들과 NAT 기능을 갖춘 Gateway로 구성 - Class 기반 라우팅의 경우 사설IP 대역은 아래와 같음
| Class | IP Address Range | IP 갯수 | Subnet Mask |
| A | 10.0.0.0 ~ 10.255.255.255 | 16,777,216 | 255.0.0.0 |
| B | 172.16.0.0 ~ 172.31.255.255 | 104,857 | 255.240.0.0 |
| C | 192.168.0.0 ~ 192.168.255.255 | 65,536 | 255.255.0.0 |
NAT(Network Address Translation)
- 사설IP가 공용IP로 통신 할 수 있도록 주소를 변환해 주는 방법
- NAT 동작 방식
1. Dynamic NAT : 1개의 사설 IP를 가용 가능한 공인 IP로 연결
- 사용 가능한 공인IP그룹(NAT Pool)에서 사용 가능한 IP를 가져와서 연결
- 외부에서 봤을 때는 공인IP로 요청이 들어온 것 처럼 보임
- 즉, 사설IP 하나를 사용 가능한 공인IP 하나와 연결하는 방식!
2. Static NAT : 1개의 사설 IP를 고정된 하나의 공인 IP로 연결
- AWS Internet Gateway가 사용하는 방식
- 미리 1:1로 지정해서 매칭해 놓는 방식
3. PAT(Port Address Translation) : 많은 사설 IP를 하나의 공인 IP로 연결. Port 기반으로 구분
- 사설망 IP N개가 1개의 공인IP를 사용함. 동일 공인IP를 사용하나 Port를 각각 다르게 매핑해서 구분함
- 외부에서 봤을 때는 동일한 IP에서 요청이 들어온 것 처럼 보임
- 보통 회사에서 사용하는 방식임
CIDR(Classless Inter Domain Routing)
- 위에서 알아본 Classless IP주소 표현 개념과 동일하게 IP주소를 네트워크 영역과 호스트 영역으로 나누기 위해 IP를 묶는 방식이며, 여러개의 사설망을 구축하기 위해 망을 나누는 방법이다.
- CIDR Block : IP 주소의 집합
- CIDR Notation : CIDR Block을 표시하는 방법
- 네트워크 주소(고정)와 호스트 주소(변동)로 구성됨 - A.B.C.D/E 형식으로 표시됨
- (예) 10.0.1.0/24, 172.16.0.0/12에서 E(0~32범위까지 가능)에 해당하는 24, 12는 각각 네트워크 주소가 24bit, 12bit / 호스트주소가 8bit, 12bit 임을 의미함
서브넷
- 하나의 큰 네트워크를 작게 쪼갠 단위라고 생각하면 됨
- 큰 네트워크에 부여된 IP범위를 작은 단위로 나눈 후에 각 서브넷에 할당하여 네트워크를 논리적으로 분리 구성한다
- 이때, CIDR Notation 기법을 사용하여 서브넷을 할당한다.

참고자료〰️
서브넷 마스크(Subnet Mask)란?
네트워크 설정을 보면 IP 주소와 서브넷 마스크라는 것을 볼 수 있습니다.
medium.com
IPv4 네트워크 주소와 호스트 주소 / 서브넷팅 / IP Class
참고사이트[1] 서브넷 마스크 / 서브넷팅 계산법 http://korean-daeddo.blogspot.kr/2016/01/blog-post_26.html[2] IP 주소체계와 클래스 구별법 http://korean-daeddo.blogspot.kr/2015/12/ip.html[ 그림1 ] 192.168.1.1/24 에서 " /24 "
itsaessak.tistory.com
AWS 네트워크 개념 참조
AWS 네트워크 기본
그림으로 알아보는 AWS 네트워크 기본
tiaz.dev