IPv4와 Subnet 완벽 이해 — IP 주소부터 CIDR, Gateway, 실제 장애 분석까지
시스템 엔지니어를 위한 네트워크 4편
IPv4와 Subnet 완벽 이해 — IP 주소부터 CIDR, Gateway, 실제 장애 분석까지
서버를 운영하다 보면 다음과 같은 명령어를 자주 사용한다.
ip addr
그러면 다음과 같은 정보가 나온다.
inet 192.168.10.100/24
처음 네트워크를 배우는 사람은 이렇게 생각하기 쉽다.
192.168.10.100 → 서버 IP 주소
물론 맞는 말이다.
하지만 시스템 엔지니어에게는 여기서 끝나면 안 된다.
뒤에 붙어 있는 /24가 무엇인지 알아야 한다.
192.168.10.100/24
↑
Subnet
왜 /24인가?
192.168.10.100/24 192.168.10.100/16 192.168.10.100/25
이 세 가지는 무엇이 다른가?
그리고 다음과 같은 서버가 있다고 생각해보자.
Server A 192.168.10.10/24 Server B 192.168.10.20/24
두 서버는 같은 네트워크인가?
그렇다면:
Server A 192.168.10.10/24 Server B 192.168.11.20/24
는 같은 네트워크인가?
또 다음과 같은 장애가 발생했다고 가정해보자.
Server A → Server B Ping 실패
IP 주소는 모두 정상적으로 보인다.
그런데 실제 원인이 Subnet Mask 설정 오류라면 어떻게 찾아야 할까?
이번 편에서는 IPv4 → Subnet Mask → CIDR → Network/Broadcast → Host → Gateway → Linux 명령어 → 실제 장애 → tcpdump 순서로 알아본다.
1. IPv4란 무엇인가?
IPv4는 Internet Protocol version 4의 약자다.
서버와 네트워크 장비가 서로를 식별하고 통신하기 위해 사용하는 대표적인 주소 체계다.
IPv4 주소는 총 32비트다.
32 bit │ ├──────────────┬──────────────┬──────────────┬──────────────┐ │ 8 bit │ 8 bit │ 8 bit │ 8 bit │ │ │ │ │ │ │ 192 │ 168 │ 10 │ 100 │ └──────────────┴──────────────┴──────────────┴──────────────┘
일반적으로 사람이 보기 편하도록 8비트씩 나누어 10진수로 표현한다.
192.168.10.100
각 숫자를 Octet이라고 한다.
192 → 1번째 Octet 168 → 2번째 Octet 10 → 3번째 Octet 100 → 4번째 Octet
각 Octet은 8비트이므로 표현 가능한 값은:
0 ~ 255
이다.
따라서 IPv4 주소는:
0.0.0.0
부터
255.255.255.255
까지 표현할 수 있다.
2. IPv4는 왜 32비트인가?
IPv4는 총 32비트로 구성된다.
2^32
개의 주소를 표현할 수 있다.
계산하면:
4,294,967,296
개의 주소 공간이다.
하지만 실제 환경에서는 모든 주소를 서버에 할당할 수 있는 것은 아니다.
Private IP, Multicast, Loopback, Broadcast 등 여러 용도로 주소가 구분되기 때문이다.
시스템 엔지니어 입장에서는 먼저 다음 구조를 이해하는 것이 중요하다.
IPv4 32 bit │ ├── Network 부분 │ └── Host 부분
여기서 Network와 Host를 어떻게 나누느냐를 결정하는 것이 Subnet Mask다.
3. IPv4 주소에서 가장 중요한 것
예를 들어 다음과 같은 주소가 있다고 하자.
192.168.10.100/24
여기에는 사실 두 가지 정보가 들어 있다.
IP Address 192.168.10.100 Prefix Length /24
즉:
192.168.10.100/24
는 단순히 IP 주소 하나가 아니다.
다음 의미를 포함한다.
IP 192.168.10.100 Subnet /24
이 /24가 Network와 Host의 경계를 결정한다.
4. Subnet Mask란 무엇인가?
Subnet Mask는 IPv4 주소에서 Network 부분과 Host 부분을 구분하는 값이다.
대표적인 /24의 Subnet Mask는:
255.255.255.0
이다.
Binary로 표현하면:
11111111.11111111.11111111.00000000
앞의 24비트가 Network 부분이다.
11111111.11111111.11111111 <--------- 24bit --------->
뒤의 8비트가 Host 부분이다.
00000000 <-- 8bit -->
따라서:
192.168.10.100/24
는:
Network 192.168.10 Host 100
처럼 이해할 수 있다.
정확히는 Network Address가:
192.168.10.0
이고 Host 부분이 100인 것이다.
5. CIDR 표기법이란?
현장에서 /24, /16, /8, /25 같은 표현을 많이 사용한다.
이것을 CIDR 표기법이라고 한다.
CIDR는:
Classless Inter-Domain Routing
의 약자다.
예를 들어:
192.168.10.100/24
에서:
/24
는 앞에서부터 24비트가 Network 부분이라는 의미다.
대표적인 예를 보면 다음과 같다.
CIDRSubnet MaskNetwork BitHost Bit/8255.0.0.0824/16255.255.0.01616/24255.255.255.0248/25255.255.255.128257/26255.255.255.192266/27255.255.255.224275/28255.255.255.240284/29255.255.255.248293/30255.255.255.252302
여기서 중요한 규칙은:
CIDR 숫자가 커질수록 Network는 커지고 Host 영역은 작아진다.
즉:
/24
보다
/26
이 더 작은 네트워크다.
6. /24 네트워크 완벽하게 이해하기
가장 많이 사용하는 /24를 자세히 보자.
192.168.10.0/24
Subnet Mask:
255.255.255.0
Binary:
11111111.11111111.11111111.00000000
구조는:
Network 192.168.10 Host 0 ~ 255
전체 주소 범위:
192.168.10.0 ~ 192.168.10.255
하지만 여기서 중요한 주소가 두 개 있다.
192.168.10.0 192.168.10.255
첫 번째는 Network Address다.
마지막은 Broadcast Address다.
일반적인 IPv4 서브넷에서는 이 두 주소를 일반 Host 주소로 사용하지 않는다.
따라서 일반적인 /24 환경에서는:
Network Address 192.168.10.0 사용 가능한 Host 192.168.10.1 ~ 192.168.10.254 Broadcast 192.168.10.255
이다.
7. Network Address란?
Network Address는 해당 네트워크 자체를 나타내는 주소다.
예를 들어:
192.168.10.100/24
의 Network Address는:
192.168.10.0
이다.
왜 그런지 Binary로 보면 이해하기 쉽다.
IP:
192.168.10.100
Binary:
11000000.10101000.00001010.01100100
Subnet Mask:
255.255.255.0
Binary:
11111111.11111111.11111111.00000000
AND 연산을 하면:
11000000.10101000.00001010.01100100 AND 11111111.11111111.11111111.00000000 ------------------------------------------------ 11000000.10101000.00001010.00000000
결과:
192.168.10.0
즉:
192.168.10.100/24
의 Network Address는:
192.168.10.0
이다.
8. Broadcast Address란?
Broadcast Address는 해당 Subnet의 모든 Host에게 데이터를 전달하기 위한 주소다.
192.168.10.0/24의 Broadcast Address는:
192.168.10.255
이다.
구조는 다음과 같다.
192.168.10.0
│
└── Network Address
192.168.10.1
│
├── Host
192.168.10.2
│
├── Host
...
192.168.10.254
│
└── Host
192.168.10.255
│
└── Broadcast Address
따라서 /24에서는 일반적으로:
256개 전체 주소 - 1개 Network - 1개 Broadcast ----------------- 254개 Host
를 사용할 수 있다.
9. Host 개수 계산 방법
IPv4 Subnet에서 Host 개수를 계산하는 기본 공식은:
2^(Host Bit) - 2
이다.
예를 들어 /24:
32 - 24 = 8 Host Bit
따라서:
2^8 - 2 = 256 - 2 = 254
/26이라면:
32 - 26 = 6
따라서:
2^6 - 2 = 64 - 2 = 62
/28이라면:
32 - 28 = 4 2^4 - 2 = 16 - 2 = 14
정리하면:
CIDR전체 주소일반적인 Host 수/24256254/25128126/266462/273230/281614/2986/3042
실무에서 /31이나 /32처럼 특수한 용도로 사용하는 경우에는 이 일반적인 -2 계산 규칙을 그대로 적용하지 않는다.
10. /25부터 Subnet이 조금 어려워진다
다음 네트워크를 보자.
192.168.10.0/25
Subnet Mask:
255.255.255.128
Binary:
11111111.11111111.11111111.10000000
마지막 Octet에서:
10000000
이다.
따라서 네트워크는 두 개로 나뉜다.
192.168.10.0/25
그리고:
192.168.10.128/25
첫 번째 범위:
192.168.10.0 ~ 192.168.10.127
두 번째 범위:
192.168.10.128 ~ 192.168.10.255
각각을 다시 나누면:
Network 1 192.168.10.0 192.168.10.1 ~ 126 192.168.10.127 Network 2 192.168.10.128 192.168.10.129 ~ 254 192.168.10.255
즉 하나의 /24를 두 개의 /25 네트워크로 나눈 것이다.
11. /26은 어떻게 나뉘는가?
192.168.10.0/26
Subnet Mask:
255.255.255.192
마지막 Octet:
11000000
Host Bit는 6개다.
따라서 한 네트워크당:
64개
주소가 필요하다.
전체 /24를 /26으로 나누면:
192.168.10.0/26 192.168.10.64/26 192.168.10.128/26 192.168.10.192/26
총 4개의 네트워크가 만들어진다.
NetworkHost 범위Broadcast192.168.10.0/26.1 ~ .62.63192.168.10.64/26.65 ~ .126.127192.168.10.128/26.129 ~ .190.191192.168.10.192/26.193 ~ .254.255
이 표를 이해하면 대부분의 기본적인 Subnet 계산이 가능해진다.
12. 서버가 같은 네트워크인지 판단하는 방법
시스템 엔지니어에게 매우 중요한 부분이다.
다음 두 서버가 있다고 하자.
Server A 192.168.10.10/24 Server B 192.168.10.20/24
Network Address를 계산하면:
A 192.168.10.0 B 192.168.10.0
같다.
따라서 같은 네트워크다.
이번에는:
Server A 192.168.10.10/24 Server B 192.168.11.20/24
를 보자.
Network Address:
A 192.168.10.0 B 192.168.11.0
다르다.
따라서 서로 다른 네트워크다.
이 차이에 따라 통신 방식이 달라진다.
13. 같은 Subnet이면 ARP
다음과 같은 서버를 보자.
Server A 192.168.10.10/24 Server B 192.168.10.20/24
A가 B에게 데이터를 보내려고 한다.
A는 먼저:
192.168.10.20
이 자신의 Local Network에 있는지 판단한다.
같은 Network다.
따라서:
ARP
를 이용해서 B의 MAC Address를 찾는다.
192.168.10.20
│
▼
ARP
│
▼
B MAC Address
│
▼
Ethernet Frame
│
▼
Switch
│
▼
Server B
14. 다른 Subnet이면 Gateway
이번에는:
Server A 192.168.10.10/24 Server B 192.168.20.20/24
이다.
A의 Network:
192.168.10.0/24
B의 Network:
192.168.20.0/24
서로 다르다.
따라서 A는 B의 MAC Address를 직접 찾지 않는다.
대신 Routing Table을 확인하고 Gateway를 찾는다.
예:
Default Gateway 192.168.10.1
그리고:
192.168.10.1
의 MAC Address를 ARP로 확인한다.
Server A
192.168.10.10
│
│ ARP
▼
Gateway
192.168.10.1
│
▼
Router
│
▼
192.168.20.20
Server B
이것이 Subnet과 Routing이 연결되는 핵심 지점이다.
15. Linux에서 IP와 Subnet 확인하기
서버에서는 다음 명령어를 사용한다.
ip addr
예:
2: ens160:
inet 192.168.10.100/24
여기서:
IP = 192.168.10.100 Prefix = /24
이다.
좀 더 특정 인터페이스만 확인하려면:
ip addr show ens160
또는:
ip -4 addr show ens160
IPv4만 보고 싶을 때 유용하다.
16. Linux에서 실제 Network 정보를 확인하기
다음 명령어를 사용한다.
ip route
예:
192.168.10.0/24 dev ens160 proto kernel scope link src 192.168.10.100 default via 192.168.10.1 dev ens160
여기서 중요한 두 줄이 있다.
첫 번째:
192.168.10.0/24 dev ens160
의미:
192.168.10.0/24 → ens160을 통해 직접 연결되어 있다.
두 번째:
default via 192.168.10.1
의미:
직접 연결되지 않은 목적지는 192.168.10.1 Gateway로 보낸다.
17. ip route get으로 실제 경로 확인
시스템 엔지니어에게 매우 유용한 명령어다.
ip route get 192.168.10.20
예:
192.168.10.20 dev ens160
src 192.168.10.100
이 결과는:
192.168.10.20
으로 가는 패킷이:
ens160
을 사용한다는 의미다.
반대로:
ip route get 192.168.20.20
결과:
192.168.20.20 via 192.168.10.1 dev ens160
src 192.168.10.100
이라면:
192.168.20.20
으로 갈 때:
Gateway 192.168.10.1
을 사용한다는 의미다.
이 명령 하나만으로도 Routing과 Subnet 판단 결과를 상당히 빠르게 확인할 수 있다.
18. 실제 장애 상황 1 — Subnet Mask가 잘못 설정된 경우
실제 장애를 하나 만들어보자.
Server A:
IP 192.168.10.10/24
Server B:
IP 192.168.10.20/16
이렇게 설정되어 있다고 가정하자.
겉으로 보면 둘 다:
192.168.x.x
이므로 같은 네트워크처럼 보일 수 있다.
하지만 실제로는 두 서버가 네트워크를 판단하는 방식이 다르다.
A:
192.168.10.0/24
B:
192.168.0.0/16
B는 192.168.0.0/16 전체를 Local Network라고 생각한다.
이런 환경에서는 예상과 다른 ARP와 Routing 동작이 발생할 수 있다.
19. 실제 장애 상황 2 — /24와 /25 혼용
이번에는 더 현실적인 상황이다.
Server A:
192.168.10.10/24
Server B:
192.168.10.200/25
A는:
192.168.10.0/24
전체를 자신의 Local Network라고 생각한다.
B는:
192.168.10.128/25
만 자신의 Local Network라고 생각한다.
즉 두 서버의 네트워크 판단이 서로 다르다.
A 관점
192.168.10.0
~
192.168.10.255
│
└── Local
B 관점
192.168.10.128
~
192.168.10.255
│
└── Local
특히 서버 IP가 Subnet 경계 근처에 있으면 이런 설정 오류가 장애 원인이 될 수 있다.
20. Subnet 오류가 발생하면 왜 문제가 생기는가?
Subnet Mask는 단순한 숫자가 아니다.
서버가 다음 질문에 답하는 기준이다.
"이 목적지는 나와 같은 네트워크에 있는가?"
예를 들어:
내 IP 192.168.10.10/24 목적지 192.168.10.20
서버는:
같은 네트워크 → 직접 통신 → ARP → 목적지 MAC
으로 판단한다.
반면:
목적지 192.168.20.20
이라면:
다른 네트워크 → Gateway → Router
로 판단한다.
따라서 Subnet Mask가 잘못되면 서버가 목적지로 보내는 방법 자체를 잘못 판단할 수 있다.
21. 실제 장애 상황 3 — 잘못된 Gateway
다음 서버를 보자.
IP 192.168.10.100/24 Gateway 192.168.20.1
이 Gateway는 같은 Subnet에 있지 않다.
서버 입장에서는:
내 Network 192.168.10.0/24 Gateway 192.168.20.1
이다.
Gateway로 직접 Ethernet Frame을 전달할 수 있는 Local Network가 아니다.
정상적인 구성이라면 일반적으로:
IP 192.168.10.100/24 Gateway 192.168.10.1
처럼 같은 Local Network에 있는 Gateway를 사용한다.
22. 잘못된 Subnet 장애를 확인하는 방법
서버에서:
ip addr
확인한다.
inet 192.168.10.100/24
다음:
ip route
확인한다.
192.168.10.0/24 dev ens160 default via 192.168.10.1 dev ens160
정상적인 형태다.
이제:
ip route get 192.168.20.20
실행한다.
예:
192.168.20.20 via 192.168.10.1 dev ens160
Gateway를 통해 나가는 것을 확인할 수 있다.
그리고:
ip neigh
를 확인한다.
192.168.10.1 dev ens160
Gateway의 MAC Address가 정상적으로 해석되는지도 확인한다.
23. tcpdump로 Subnet 문제 분석
Subnet 문제는 패킷을 보면 훨씬 명확해진다.
다음 명령어를 실행한다.
tcpdump -nn -i ens160 'arp or icmp'
예를 들어 다른 네트워크의 서버로 Ping을 보낸다고 하자.
ping 192.168.20.20
정상적인 경우 서버는 목적지 192.168.20.20의 MAC을 직접 찾지 않는다.
대신 Gateway를 찾는다.
ARP Request Who has 192.168.10.1?
그 후:
ICMP 192.168.10.100 > 192.168.20.20
가 Ethernet Frame에 담겨 Gateway MAC으로 전달된다.
이것을 이해하면 tcpdump에서:
왜 목적지 IP는 192.168.20.20인데 Ethernet Destination MAC은 Gateway인가?
라는 질문에 답할 수 있다.
24. 실제 Packet 구조로 이해하기
다음 서버를 가정하자.
Source 192.168.10.100 Destination 192.168.20.20 Gateway 192.168.10.1
Ethernet Frame:
┌─────────────────────────────────────┐ │ Destination MAC = Gateway MAC │ │ Source MAC = Server MAC │ ├─────────────────────────────────────┤ │ IP Source = 192.168.10.100 │ │ IP Destination = 192.168.20.20 │ ├─────────────────────────────────────┤ │ TCP / UDP / ICMP │ └─────────────────────────────────────┘
여기서 중요한 점:
Ethernet Destination → Gateway MAC IP Destination → 실제 목적지 서버
이다.
이것이 Layer 2와 Layer 3의 관계를 이해하는 핵심이다.
25. tcpdump로 실제 확인하기
다음 명령을 실행한다.
tcpdump -e -nn -i ens160 icmp
예상되는 형태:
00:50:56:aa:bb:cc > 00:50:56:11:22:33, IP 192.168.10.100 > 192.168.20.20: ICMP echo request
여기서:
Source MAC 00:50:56:aa:bb:cc
Destination MAC:
00:50:56:11:22:33
이다.
이 Destination MAC이 Gateway의 MAC Address일 수 있다.
즉:
IP 목적지 192.168.20.20 MAC 목적지 Gateway
가 되는 것이다.
26. /32는 무엇인가?
실무에서 다음과 같은 설정도 볼 수 있다.
192.168.10.100/32
/32는 Host Bit가 0개라는 의미다.
32 Network Bit 0 Host Bit
즉 하나의 IP 주소만 표현한다.
192.168.10.100/32
는:
192.168.10.100
하나만을 나타낸다.
특정 Routing 구성이나 Loopback, VPN, 특수한 네트워크 구성 등에서 사용된다.
따라서 /32를 단순히 "사용할 수 있는 서버가 1대"라고만 이해하기보다는 하나의 Host Route를 표현하는 방식으로 이해하는 것이 좋다.
27. Private IP Address
기업 내부 서버 환경에서는 Private IP를 매우 많이 사용한다.
대표적인 IPv4 Private Address 대역은 다음과 같다.
10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
예:
10.10.10.10 172.16.10.10 192.168.10.10
이 주소들은 일반적인 인터넷 Public Address 용도로 직접 사용하지 않고 내부 네트워크에서 사용하는 대표적인 사설 주소 대역이다.
실제 기업 환경에서는:
Server 10.x.x.x DB 10.x.x.x Management 172.16.x.x DMZ 192.168.x.x
처럼 용도별로 네트워크를 분리하기도 한다.
28. Loopback Address
Linux 서버에서 또 하나 반드시 알아야 할 IP가 있다.
127.0.0.1
이것이 Loopback Address다.
대표적인 Loopback 대역은:
127.0.0.0/8
이다.
가장 많이 사용하는 것은:
127.0.0.1
이다.
서버 자기 자신을 가리킨다.
예:
ping 127.0.0.1
또는:
curl http://127.0.0.1:8080
이 통신은 외부 네트워크를 거치지 않는다.
따라서:
127.0.0.1 통신 성공
만으로 서버의 실제 네트워크가 정상이라고 판단하면 안 된다.
29. 서버 장애 분석에서 흔한 실수
실수 1
ping 127.0.0.1
이 성공했으니 네트워크가 정상이라고 판단한다.
잘못된 판단이다.
Loopback 통신이 정상이라는 것만 확인한 것이다.
실수 2
ping Gateway
가 성공했으니 모든 네트워크가 정상이라고 판단한다.
이것도 아니다.
Gateway까지의 통신만 확인한 것이다.
실수 3
IP 주소만 확인한다.
ip addr
그리고:
IP가 있으니까 정상
이라고 판단한다.
실제 장애에서는:
Subnet Mask Gateway Routing ARP VLAN
까지 함께 봐야 한다.
30. 실제 서버 장애 분석 순서
IPv4와 Subnet 문제가 의심된다면 다음 순서로 확인하면 좋다.
① IP Address
↓
② Subnet Prefix
↓
③ Network Address
↓
④ Gateway
↓
⑤ Routing Table
↓
⑥ ARP / Neighbor
↓
⑦ Ping
↓
⑧ tcpdump
Linux 명령어로 표현하면:
ip -4 addr
↓
ip route
↓
ip route get
↓
ip neigh
↓
ping
↓
tcpdump -nn -i ens160 'arp or icmp'
이 순서로 접근하면 된다.
31. 장애 분석 예제
다음과 같은 서버가 있다고 하자.
Server A IP : 192.168.10.100 Subnet : /24 Gateway : 192.168.10.1
목적지:
Server B 192.168.20.100
통신이 안 된다.
먼저:
ip addr show ens160
확인.
192.168.10.100/24
정상.
다음:
ip route
확인.
192.168.10.0/24 dev ens160 default via 192.168.10.1 dev ens160
정상.
다음:
ip route get 192.168.20.100
결과:
192.168.20.100 via 192.168.10.1 dev ens160
정상.
다음:
ip neigh
확인.
192.168.10.1 dev ens160
lladdr 00:11:22:33:44:55 REACHABLE
Gateway의 MAC도 정상이다.
이제:
ping 192.168.20.100
실패한다.
이때는 Subnet 문제보다는 다음 영역을 확인해야 한다.
Gateway 이후 Routing Firewall ACL 목적지 서버 중간 네트워크 장비
반대로 ip route get 결과부터 이상하다면 서버의 Routing/Subnet 설정을 먼저 의심해야 한다.
이처럼 장애 분석은 어느 단계까지 정상인지 증명하는 과정이다.
32. IPv4와 Subnet을 한 번에 이해하는 그림
전체 과정을 하나의 그림으로 정리하면 다음과 같다.
IPv4 Address
192.168.10.100/24
│
▼
Subnet Mask
255.255.255.0
│
▼
Network Address
192.168.10.0/24
│
┌─────────┴─────────┐
│ │
Same Network Different Network
│ │
▼ ▼
ARP Gateway
│ │
▼ ▼
Target MAC Router
│ │
▼ ▼
Switch Routing
│ │
▼ ▼
Destination Destination
Server Server
이 그림을 이해하면 IPv4, Subnet, ARP, Gateway, Routing이 하나의 흐름으로 연결된다.
33. 시스템 엔지니어가 반드시 외워야 하는 기본 Subnet
실무에서 다음 정도는 바로 떠올릴 수 있으면 좋다.
/24 255.255.255.0 254 Hosts /25 255.255.255.128 126 Hosts /26 255.255.255.192 62 Hosts /27 255.255.255.224 30 Hosts /28 255.255.255.240 14 Hosts /29 255.255.255.248 6 Hosts /30 255.255.255.252 2 Hosts
특히:
/24 /25 /26 /27 /28 /29 /30
은 서버와 네트워크 장비를 운영하면서 자주 접하게 된다.
34. 이번 편의 핵심 정리
이번 편에서 반드시 기억해야 하는 것은 다음이다.
1. IPv4는 32비트다
192.168.10.100
은 4개의 Octet으로 구성된다.
8 + 8 + 8 + 8 = 32bit
2. Subnet은 Network와 Host를 구분한다
192.168.10.100/24
에서:
/24
가 Network와 Host의 경계를 결정한다.
3. Network Address가 있다
192.168.10.100/24
의 Network Address:
192.168.10.0
4. Broadcast Address가 있다
192.168.10.255
5. 일반적인 /24 Host 범위
192.168.10.1 ~ 192.168.10.254
6. 같은 Subnet이면 직접 통신한다
ARP ↓ Destination MAC ↓ Switch
7. 다른 Subnet이면 Gateway를 사용한다
ARP ↓ Gateway MAC ↓ Router ↓ Destination Network
8. Subnet Mask 오류는 실제 장애를 만든다
잘못된 Prefix
↓
잘못된 Network 판단
↓
잘못된 ARP / Routing
↓
통신 장애
마무리
네트워크를 처음 배우는 단계에서는 IP 주소를 단순히:
192.168.10.100
이라는 숫자로 생각하기 쉽다.
하지만 시스템 엔지니어 관점에서는 이것만 봐서는 부족하다.
192.168.10.100/24
라는 정보를 보면 바로 다음을 생각해야 한다.
IP 192.168.10.100 Prefix /24 Subnet Mask 255.255.255.0 Network 192.168.10.0 Broadcast 192.168.10.255 Host Range 192.168.10.1 ~ 192.168.10.254
그리고 목적지가:
192.168.10.20
이면:
같은 Subnet → ARP → 목적지 MAC → Switch
목적지가:
192.168.20.20
이면:
다른 Subnet → Gateway → Router → 다른 Network
라는 흐름을 머릿속에서 바로 그릴 수 있어야 한다.
결국 Subnet은 단순한 IP 계산 문제가 아니라 서버가 패킷을 어디로 보낼지를 결정하는 기준이다.
따라서 실제 장애 상황에서도 다음과 같이 접근해야 한다.
통신 장애
│
▼
IP 확인
│
▼
Subnet 확인
│
▼
Network Address 계산
│
▼
목적지가 같은 Network인가?
│
├── YES → ARP → MAC → Switch
│
└── NO → Gateway → Router
│
▼
Routing
다음 편에서는 이 개념을 한 단계 더 발전시켜 **「Subnet Mask와 CIDR 계산 완벽 이해」**를 다루는 것이 좋다.
특히 다음과 같은 실무 문제를 직접 계산할 수 있도록 구성하면 된다.
192.168.10.0/24를 4개의 네트워크로 나누려면? 192.168.10.0/24에서 30대의 서버를 수용할 Subnet은? 192.168.10.65/26은 어느 Network에 속하는가? 192.168.10.126/26은 사용 가능한 Host인가? 192.168.10.128/26에서 Network Address와 Broadcast는? 서버의 /24와 /25가 서로 다르면 실제 패킷은 어떻게 달라지는가?
그리고 계산 결과를 단순히 외우는 것이 아니라 Linux ip addr, ip route, ip route get, ip neigh, tcpdump를 이용해 실제 서버에서 검증하는 과정까지 연결하면 네트워크 실전 교육으로 이어진다.
댓글
아직 댓글이 없습니다.
로그인 후 댓글을 남길 수 있습니다.