Diperbarui 1 bulan yang lalu
불가능해 보이는 문제가 있습니다. 인터넷에는 수십억 개의 기기가 있습니다. 모든 라우터는 패킷을 어디로 보내야 할지 알아야 합니다. 만약 라우터가 모든 개별 기기에 대한 경로를 관리해야 한다면, 라우팅 테이블은 감당할 수 없을 만큼 커지고, 조회 속도는 느려지며, 인터넷은 제대로 작동하지 못할 것입니다.
네트워크 주소가 이 문제를 해결합니다. 라우터는 모든 기기를 일일이 추적하는 대신, 공통된 주소 접두사를 공유하는 기기들의 집합인 네트워크를 추적합니다. 192.168.1.0/24에 대한 단 하나의 라우팅 항목으로 254개의 기기를 포괄할 수 있습니다. 라우터는 기기 .100이나 .200에 대해 신경 쓰지 않습니다. 그저 그 기기들이 속한 네트워크에 어떻게 도달하는지만 알면 됩니다.
라우팅 항목 세 개. 수백만 개의 호스트. 바로 이게 전부입니다.
모든 IP 주소의 두 가지 구성 요소
모든 IP 주소는 두 가지 정보를 담고 있습니다:
- 기기가 속한 서브넷을 식별하는 네트워크 부분
- 해당 서브넷 내에서 특정 기기를 식별하는 호스트 부분
도로 주소와 비슷하게 생각해보세요. "강남대로 123번지"는 두 부분으로 이루어집니다. 도로명은 동네를 식별하고, 번지수는 특정 집을 식별합니다. 192.168.1.100에서:
- 네트워크 부분 (
192.168.1)은 서브넷을 식별합니다 - 호스트 부분 (
100)은 기기를 식별합니다
네트워크 주소는 모든 호스트 비트를 0으로 바꾼 값입니다. 서브넷 범위에서 첫 번째 주소인 이 경우 192.168.1.0이 됩니다. 이 주소는 네트워크 자체를 나타내기 위해 예약되어 있습니다. 어떤 기기도 이 주소를 사용할 수 없습니다.
경계가 나뉘는 지점
서브넷 마스크가 네트워크 비트와 호스트 비트의 경계를 결정합니다:
/24는 앞의 24비트가 네트워크를 식별한다는 의미입니다. 나머지 8비트는 개별 호스트를 위해 변할 수 있습니다. 즉, 2^8 - 2 = 254개의 사용 가능한 주소가 있습니다. (두 개를 빼는 이유: 하나는 네트워크 주소, 하나는 범위 끝의 브로드캐스트 주소입니다.)
서브넷 크기에 따라 주소 공간을 다르게 나눌 수 있습니다:
| 네트워크 | CIDR | 사용 가능 범위 | 호스트 수 |
|---|---|---|---|
| 192.168.1.0 | /24 | .1 - .254 | 254 |
| 10.50.0.0 | /22 | .0.1 - .3.254 | 1,022 |
| 10.1.1.0 | /30 | .1 - .2 | 2 |
| 172.16.0.0 | /16 | .0.1 - .255.254 | 65,534 |
/30이 흥미롭습니다. 사용 가능한 주소가 단 두 개뿐입니다. 두 라우터 간 직접 연결처럼 다른 것이 필요 없는 경우에 딱 맞습니다.
네트워크 주소가 가능하게 하는 것들
192.168.5.50에 있는 기기가 10.20.30.40으로 데이터를 보낼 때 어떤 일이 일어나는지 살펴봅시다:
- 기기는 목적지를 자신의 네트워크(
192.168.5.0/24)와 비교합니다 - 다른 네트워크 → 기본 게이트웨이로 전송
- 라우터는 라우팅 테이블에서 목적지 네트워크를 조회합니다
- 해당 네트워크 방향으로 패킷을 전달합니다
- 패킷이 목적지 네트워크에 도달할 때까지 반복됩니다
- 마지막 라우터가 호스트
.40에 전달합니다
모든 단계에서 결정은 개별 호스트가 아닌 네트워크 주소를 기반으로 이루어집니다. 라우터의 테이블은 다음과 같은 모습일 수 있습니다:
수백만 개의 목적지를 포괄하는 세 개의 항목입니다.
이는 또한 경로 요약을 가능하게 합니다. 192.168.0.0/24부터 192.168.3.0/24까지 네 개의 네트워크가 있다면, 이를 단일 경로 192.168.0.0/22로 광고할 수 있습니다. 네 개 대신 하나의 항목만 사용합니다. 테이블이 작아지고, 조회가 빨라지며, 개별 서브넷 경로가 불안정해져도 라우팅은 더 안정적으로 유지됩니다.
그리고 계층 구조를 만들 수 있습니다. IP 공간을 논리적으로 분할할 수 있습니다:
각 할당은 자체 네트워크 주소를 갖습니다. 라우팅, 관리, 보안이 모두 용이해집니다.
서브넷 경계 주소
네트워크 주소는 브로드캐스트 주소와 함께 서브넷의 경계를 정의합니다:
- 네트워크 주소: 범위의 첫 번째 주소 (예:
192.168.1.0) - 브로드캐스트 주소: 범위의 마지막 주소 (예:
192.168.1.255) - 사용 가능한 주소: 그 사이의 모든 주소
네트워크 주소는 모든 패킷이 묻는 질문입니다: "당신도 우리와 같은 네트워크인가요?" 같은 네트워크라면 직접 통신합니다. 다른 네트워크라면 라우터에 도움을 요청합니다.
흔한 오해들
"네트워크 주소가 곧 라우터다"
아닙니다. 라우터는 종종 범위의 시작 부분에 가까운 .1 같은 주소를 갖지만, 네트워크 주소 자체 (/24에서 .0)는 어떤 기기에도 할당되지 않습니다. 네트워크 주소를 기기에 사용할 수 없습니다. 도로 표지판 자리에 집을 지으려는 것과 같습니다.
"네트워크 주소는 대형 네트워크에서만 중요하다"
여러분의 가정 네트워크도 네트워크 주소를 사용합니다. 라우터는 네트워크 주소를 기반으로 무엇이 로컬인지, 무엇이 ISP로 나가야 하는지 결정합니다. 아무리 작은 네트워크라도 네트워크 주소는 있습니다.
네트워크 주소 계산하기
IP 주소와 서브넷 마스크로부터 네트워크 주소를 찾으려면 비트 AND 연산을 수행합니다:
네트워크 주소는 192.168.5.128입니다. 사용 가능한 범위는 .129부터 .190까지이며, .191이 브로드캐스트 주소입니다.
보통 이것을 직접 계산할 필요는 없습니다. 도구들이 처리해줍니다:
하지만 이 메커니즘을 이해하면 네트워크를 설계하고, 라우팅 문제를 해결하며, 왜 특정 주소들이 같은 서브넷에 공존할 수 없는지 이해하는 데 도움이 됩니다.
핵심 정리
- 모든 IP 주소는 두 부분으로 구성됩니다: 네트워크 부분 (어떤 서브넷)과 호스트 부분 (어떤 기기)
- 네트워크 주소는 서브넷의 첫 번째 주소로, 네트워크 자체를 식별하기 위해 예약되어 있습니다 — 어떤 기기도 사용할 수 없습니다
- 서브넷 마스크는 네트워크 부분이 끝나고 호스트 부분이 시작되는 위치를 결정합니다
- 라우터는 네트워크 주소를 기반으로 전달 결정을 내리며, 이를 통해 인터넷이 확장될 수 있습니다
- 같은 네트워크 주소는 로컬 통신을 의미합니다. 다른 네트워크 주소는 게이트웨이를 통한 라우팅을 의미합니다
네트워크 주소에 관한 자주 묻는 질문
네트워크 주소를 기기에 할당하려고 하면 어떻게 되나요?
대부분의 시스템은 이를 거부하거나 예측 불가능하게 동작합니다. 네트워크 주소는 라우팅 테이블에서 서브넷을 나타내기 위해 예약되어 있습니다. 기기에 할당하는 것은 도로 표지판 자리에 집을 놓는 것과 같습니다 — 주소 체계가 무너집니다.
현재 연결의 네트워크 주소를 어떻게 찾나요?
Linux 또는 macOS에서는 ip addr show 또는 ifconfig를 실행하세요. Windows에서는 ipconfig /all을 실행하세요. IP 주소와 서브넷 마스크를 확인하세요. 네트워크 주소는 호스트 비트를 0으로 바꾼 IP 주소입니다 — /24 서브넷의 경우 일반적으로 .0 주소입니다.
왜 모든 서브넷에서 두 개의 주소를 잃나요?
첫 번째 주소(네트워크 주소)는 서브넷 자체를 식별합니다. 마지막 주소(브로드캐스트 주소)는 서브넷의 모든 호스트에게 패킷을 보내는 데 사용됩니다. 어느 것도 기기에 할당할 수 없으므로, 총 256개의 주소를 가진 /24 서브넷에는 254개의 사용 가능한 주소만 있습니다.
서로 다른 서브넷에 있는 두 기기가 라우터 없이 통신할 수 있나요?
아닙니다. 기기는 목적지가 로컬인지 확인하기 위해 네트워크 주소를 사용합니다. 목적지의 네트워크 주소가 다르면, 두 기기가 물리적으로 같은 케이블에 연결되어 있더라도 패킷은 라우터를 거쳐야 합니다.
출처
Apakah halaman ini membantu?