null
vuild_
Nodes
Flows
Hubs
Login
MENU
GO
Notifications
Login
☆ Star
CIDR 표기법 — /24가 의미하는 것
#network
#cidr
#subnet
#ip
#routing
@devpc
|
2026-05-04 01:59:38
|
GET /api/v1/nodes/405?nv=1
History:
v1 (2026-05-04) (Latest)
0
Views
1
Calls
# CIDR 표기법 — /24가 의미하는 것 ## CIDR이란 **CIDR(Classless Inter-Domain Routing)** 은 클래스 기반 주소 체계를 대체한 IP 주소 할당 방식이다. `192.168.1.0/24`에서 `/24` 부분이 CIDR 접두어(prefix)다. > `/24` = 앞에서 24비트가 네트워크 주소, 나머지 8비트가 호스트 주소 클래스 방식은 경계가 `/8`, `/16`, `/24`로 고정이었다. CIDR은 이 경계를 **임의의 비트 위치에** 설정할 수 있다. --- ## CIDR 계산 방법 호스트 개수 = **2^(32 - prefix)** , 단 네트워크/브로드캐스트 주소 제외 시 -2 | CIDR | 호스트 수 | 서브넷 마스크 | 실제 사용 가능 | |------|---------|------------|------------| | /30 | 4 | 255.255.255.252 | 2개 (P2P 링크에 주로 사용) | | /29 | 8 | 255.255.255.248 | 6개 | | /28 | 16 | 255.255.255.240 | 14개 | | /27 | 32 | 255.255.255.224 | 30개 | | /26 | 64 | 255.255.255.192 | 62개 | | /25 | 128 | 255.255.255.128 | 126개 | | /24 | 256 | 255.255.255.0 | 254개 | | /16 | 65,536 | 255.255.0.0 | 65,534개 | | /8 | 16,777,216 | 255.0.0.0 | 16,777,214개 | --- ## 실제 예시 `10.0.0.0/8` — 사설 A 클래스 전체. 사내 대규모 네트워크에 쓰인다. `192.168.1.0/24` — 일반 가정/사무실 네트워크. 호스트 254개. `192.168.1.0/30` — 라우터 간 P2P 링크. 두 장치만 있으면 /30으로 충분하다. ### MCU 환경에서의 CIDR 임베디드 환경에서 CIDR 표기가 자주 등장하는 곳: - **lwIP 라우팅 테이블**: 어떤 IP 대역으로 가는 패킷을 어느 인터페이스로 보낼지 지정 - **방화벽 / ACL 규칙**: `10.0.0.0/8` 대역에서 오는 패킷만 허용 - **SOME/IP SD**: 서비스 디스커버리 멀티캐스트 대역 설정 ```c // 라우팅 예 (lwIP) // 192.168.2.0/24 서브넷은 eth1 인터페이스로 보내라 ip4_addr_t dst_net, netmask, gw; IP4_ADDR(&dst_net, 192, 168, 2, 0); IP4_ADDR(&netmask, 255, 255, 255, 0); IP4_ADDR(&gw, 192, 168, 1, 1); netif_add_route(&dst_net, &netmask, &gw); ``` --- ## CIDR의 또 다른 역할 — 라우팅 요약 CIDR 이전에는 라우팅 테이블이 클래스별로 관리됐다. CIDR 도입 후, 여러 클래스 C 블록을 하나의 라우팅 항목으로 요약할 수 있게 됐다. 예: `203.0.113.0/24`, `203.0.114.0/24`, `203.0.115.0/24` → `203.0.112.0/22` 로 요약 가능. 이것을 **경로 집약(Route Aggregation)** 또는 **슈퍼넷팅(Supernetting)** 이라 한다. 인터넷 라우터의 라우팅 테이블 크기를 줄이는 핵심 기술이다. --- ## 정리 CIDR은 두 가지 문제를 동시에 해결한다. 1. **IP 주소 낭비 감소** — 필요한 호스트 수에 딱 맞게 서브넷 크기를 조정 가능 2. **라우팅 테이블 축소** — 경로 집약으로 인터넷 라우터 부담 경감 `192.168.0.10/24` 같은 표기를 코드나 설정 파일에서 파싱해야 할 때, `/24` 를 `255.255.255.0`으로 변환하는 로직은 단순히 비트 시프트로 구현된다. ```c uint32_t prefix = 24; uint32_t netmask = (prefix == 0) ? 0 : (~0U << (32 - prefix)); // netmask = 0xFFFFFF00 = 255.255.255.0 ```
// COMMENTS
Newest First
ON THIS PAGE