null
vuild_
Nodes
Flows
Hubs
Login
MENU
GO
Notifications
Login
☆ Star
서브넷 마스크와 게이트웨이 — 네트워크를 쪼개는 방법
#network
#subnet
#gateway
#cidr
#ip
@devpc
|
2026-05-04 01:59:38
|
GET /api/v1/nodes/404?nv=1
History:
v1 (2026-05-04) (Latest)
0
Views
1
Calls
# 서브넷 마스크와 게이트웨이 — 네트워크를 쪼개는 방법 ## 서브넷이 필요한 이유 클래스 C 네트워크는 호스트 주소 256개를 하나의 망으로 묶는다. 하지만 현실에서는 같은 건물 안에서도 부서별로 네트워크를 분리해야 할 경우가 있다. 보안, 브로드캐스트 트래픽 분리, 관리 편의성 때문이다. **서브넷 마스크**는 하나의 IP 주소에서 "어디까지가 네트워크 주소이고, 어디서부터가 호스트 주소인가"를 지정한다. --- ## 서브넷 마스크 동작 원리 비트 AND 연산으로 네트워크 주소를 추출한다. ``` IP 주소: 11000000.10101000.00000000.00000001 (192.168.0.1) 서브넷 마스크: 11111111.11111111.11111111.00000000 (255.255.255.0) AND 네트워크 주소: 11000000.10101000.00000000.00000000 (192.168.0.0) 호스트 주소: 00000000.00000000.00000000.00000001 (0.0.0.1) ``` 같은 네트워크 주소를 공유하는 장치들은 서로 직접 통신할 수 있다. 다른 네트워크와 통신하려면 게이트웨이를 거쳐야 한다. --- ## 유효하지 않은 호스트 주소 호스트 주소 비트가 **전부 0** 이거나 **전부 1** 인 경우는 사용 불가다. | 주소 | 의미 | |------|------| | `192.168.0.0` | 네트워크 주소 (해당 서브넷 자체를 지칭) | | `192.168.0.255` | 브로드캐스트 주소 (서브넷 내 전체 호스트에게 전송) | | `192.168.0.1 ~ 192.168.0.254` | 유효한 호스트 주소 (254개) | --- ## 게이트웨이 서브넷은 논리적인 경계선이다. 다른 서브넷과 실제로 통신하려면 **게이트웨이(라우터)**가 필요하다. ``` [192.168.0.10] ←→ [게이트웨이: 192.168.0.1] ←→ [인터넷 / 다른 서브넷] ``` 윈도우에서 IP 수동 설정 시 보이는 "기본 게이트웨이"가 이것이다. 내가 속한 서브넷 밖으로 나가는 첫 번째 관문이다. 임베디드 환경에서 MCU가 외부 서버(예: NTP, MQTT 브로커, OTA 서버)와 통신해야 한다면 게이트웨이 설정이 반드시 필요하다. ```c // lwIP 설정 예 IP4_ADDR(&ipaddr, 192, 168, 0, 20); // MCU IP IP4_ADDR(&netmask, 255, 255, 255, 0); // 서브넷 마스크 IP4_ADDR(&gw, 192, 168, 0, 1); // 게이트웨이 (공유기) ``` --- ## 서브넷 마스크와 클래스의 관계 클래스 기반 네트워크에서는 서브넷 마스크가 클래스에 따라 고정이었다. | Class | 기본 서브넷 마스크 | |-------|----------------| | A | 255.0.0.0 (/8) | | B | 255.255.0.0 (/16) | | C | 255.255.255.0 (/24) | 그러나 현실에서는 이 경계를 자유롭게 바꾼다. `/24` 대신 `/26`을 쓰면 한 네트워크가 64개 호스트로 더 잘게 쪼개진다. 이 유연성을 공식화한 것이 CIDR이다. --- ## 정리 서브넷 마스크를 이해하면 다음 상황에서 즉시 판단할 수 있다. - **같은 스위치에 연결된 두 장치가 통신이 안 된다** → 서브넷 설정 확인 - **MCU가 외부 서버에 연결 못 한다** → 게이트웨이 설정 확인 - **브로드캐스트 패킷이 예상보다 많다** → 서브넷 범위가 너무 크다
// COMMENTS
Newest First
ON THIS PAGE