////
Search

서브넷

네트워크를 더 작은 단위로 분할하는 개념 : 가상 네트워크 내에서 논리적 구분을 구현하는 방법 제공
네트워크 관리 & 자원 활용 효율성 극대화
보안 & 성능 개선

# 등장 배경

IPv4 주소 체계 : 클래스를 나누어 IP를 할당하는 방식 → 비효율적
특정 클래스를 할당한다고 했을 때, 사용되는 호스트 수를 제외한 나머지 주소들은 전부 낭비되는 형태
이런 비효율을 개선하기 위해, 네트워크 장치 수에 맞춰 효율적으로 주소를 사용 가능한 서브넷(CIDR 기반) 등장

# 역할

IP 주소 공간 분리
하나의 큰 네트워크를 더 작은 서브네트워크로 나누어 관리
트래픽 관리
서브넷 내에서의 통신은 외부 네트워크를 거치지 않음 → 로컬 통신 속도 향상
보안 향상
서브넷 간 트레픽 제어 → 네트워크 접근 제어 강화

# IP 주소 & 서브넷 마스크

IP 주소
네트워크 장치(호스트)를 식별하는 주소
192.168.1.1
서브넷 마스크
네트워크 부분과 호스트 부분을 구분하기 위한 값(IP주소의 범위를 나누기 위한 기준)
보통 32bit로 표현 : 네트워크 부분은 1, 호스트 부분은 0으로 채워짐
255.255.255.0 : 24비트는 네트워크로 사용 + 나머지 8비트는 호스트로 사용
네트워크 부분
서브넷 주소 식별
호스트 부분
해당 네트워크에 연결된 개별 장치 식별

# CIDR(Classless Inter-Domain Routing) 표기법

서브넷을 표현하는 방법 (IP주소와 서브넷 마스크를 /숫자 형태로 표기)
192.168.1.0/24 : 첫 24비트가 네트워크 주소 + 나머지 8비트가 호스트 주소 (사용 가능한 IP 개수는 2^(32 - CIDR) - 2개)

## 서브넷 마스크

네트워크 주소와 호스트 주소를 구분하는 32비트 이진수
IP주소“네트워크 주소”“호스트 주소”로 나뉜다(즉, 두 부분으로 구성됨). 여기서 서브넷 마스크는 “경계”를 표시하는 마스크이다.
예를 들어 192.168.1.10/24 의 경우, IP주소(이진수)는 192.168.1.10 = 11000000.10101000.00000001.00000000 이고 서브넷 마스크(이진수)는 /24 = 255.255.255.0 = 11111111.11111111.11111111.00000000 이다.
그리고 IP주소와 서브넷 마스크의 AND 연산을 통해 네트워크 주소를 추출한다 :
IP: 11000000.10101000.00000001.00001010 MASK: 11111111.11111111.11111111.00000000 --------------------------------------------- (AND) 결과: 11000000.10101000.00000001.00000000 = 192.168.1.0 ← 네트워크 주소
Markdown
복사

## AND연산을 통해 동일 네트워크 주소인지 체크해야하는 경우

/8, /16, /24 같은 깔끔한 단위로 CIDR이 표기되면 굳이 AND 연산하지 않아도 된다. 그러나 /25, /26와 같이 깔끔한 단위로 나오는게 아니라면 두 IP 주소는 AND 연산을 통해 동일 네트워크인지 확인해봐야한다 :
# 두 IP주소는 네트워크 주소가 동일할까? 192.168.1.10/25 192.168.1.200/25 /25 = 255.255.255.128 즉, 첫 번째 네트워크는 192.168.1.0 ~ 192.168.1.127 두 번째 네트워크는 192.168.1.128 ~ 192.168.1.255 결론은 다른 네트워크! 이런 경우에는 AND 연산을 통해 정확히 확인해봐야함
Markdown
복사
참고 자료