로그인 회원가입
모두인포
전체IT경제사회생활스포츠시사여행연애

Subnet Mask와 CIDR 계산 완벽 이해 — 서버 엔지니어가 반드시 알아야 할 IP 계산법

admin · 2026-10-02 · 조회 2
Subnet Mask와 CIDR 계산 완벽 이해 — 서버 엔지니어가 반드시 알아야 할 IP 계산법


시스템 엔지니어를 위한 네트워크 5편

Subnet Mask와 CIDR 계산 완벽 이해 — 서버 엔지니어가 반드시 알아야 할 IP 계산법

네트워크를 공부하다 보면 다음과 같은 표현을 자주 만나게 된다.


192.168.10.100/24
10.10.10.10/16
172.16.20.50/26
192.168.100.10/27

처음 보면 /24, /16, /26, /27 같은 숫자가 단순한 네트워크 설정값처럼 보인다.

하지만 시스템 엔지니어에게 이 숫자는 매우 중요하다.

/24라는 숫자를 보면 다음을 바로 판단할 수 있어야 한다.


Subnet Mask
Network Address
Broadcast Address
사용 가능한 Host 범위
Host 개수
같은 Network인지
Gateway가 필요한지

예를 들어:


192.168.10.70/26

이라는 서버가 있다면 다음 질문에 바로 답할 수 있어야 한다.


이 서버가 속한 Network는?

Broadcast는?

사용 가능한 IP 범위는?

192.168.10.100과 같은 Subnet인가?

192.168.10.130과 통신할 때
직접 통신하는가?
Gateway를 사용하는가?

이것을 계산할 수 있어야 실제 서버 장애 분석에서도 Subnet 문제를 빠르게 찾아낼 수 있다.

이번 글에서는 Subnet Mask와 CIDR을 계산하는 방법을 처음부터 끝까지 알아본다.



1. Subnet Mask를 왜 알아야 하는가?

IP Address만 보면 네트워크의 크기를 알 수 없다.

예를 들어:


192.168.10.100

만 봐서는 이 서버가:


192.168.10.0/24

에 있는지,


192.168.10.0/25

에 있는지,


192.168.10.64/26

에 있는지 알 수 없다.

따라서 IP Address와 함께 Subnet 정보가 필요하다.


IP Address
+
Subnet Mask

또는 CIDR 방식으로:


192.168.10.100/24

처럼 표현한다.

Subnet Mask는 서버에게 다음 질문에 답할 수 있게 해준다.


"이 목적지 IP가 나와 같은 네트워크에 있는가?"

이 판단은 서버의 통신 방식 자체를 결정한다.


같은 Network
    ↓
ARP
    ↓
목적지 MAC
    ↓
Switch

반대로:


다른 Network
    ↓
Gateway
    ↓
Router
    ↓
목적지 Network

따라서 Subnet 계산은 단순한 수학 문제가 아니라 서버의 패킷 전달 방식과 직접 연결된 문제다.



2. Subnet Mask의 기본 구조

IPv4는 총 32비트다.


8 bit       8 bit       8 bit       8 bit
   ↓           ↓           ↓           ↓
192         168          10          100

Binary로 표현하면:


11000000.10101000.00001010.01100100

Subnet Mask가 /24라면:


11111111.11111111.11111111.00000000

10진수로:


255.255.255.0

이다.

이를 그림으로 보면:


IP Address

11000000.10101000.00001010.01100100
<----------- Network -----------><Host>


Subnet Mask

11111111.11111111.11111111.00000000
<----------- 24bit -------------><8bit>

즉 /24는:


Network Bit = 24
Host Bit    = 8

이다.



3. CIDR란 무엇인가?

CIDR는 다음의 약자다.


Classless Inter-Domain Routing

CIDR 표기법에서는 Subnet Mask를 /숫자로 표현한다.

예:


192.168.10.100/24

여기서:


/24

는:


IPv4 32비트 중 앞의 24비트가 Network 부분이다.

라는 의미다.

따라서:


32 - 24 = 8

Host Bit는 8비트다.



4. CIDR와 Subnet Mask의 관계

가장 먼저 다음 표를 익혀두면 좋다.

CIDRSubnet MaskHost Bit일반적인 Host 수/8255.0.0.02416,777,214/16255.255.0.01665,534/24255.255.255.08254/25255.255.255.1287126/26255.255.255.192662/27255.255.255.224530/28255.255.255.240414/29255.255.255.24836/30255.255.255.25222/31255.255.255.2541특수 용도/32255.255.255.2550단일 Host

여기서 일반적인 Host 수 계산은:


2^(Host Bit) - 2

이다.

다만 /31, /32는 일반적인 LAN Host 계산 규칙과 다르게 사용될 수 있으므로 별도로 이해해야 한다.



5. 가장 먼저 외워야 하는 Binary 값

Subnet 계산을 빠르게 하려면 1 Octet의 Binary 값을 익혀두면 좋다.


128 64 32 16 8 4 2 1

각 비트가 1이면 해당 값을 더한다.

예:


11000000

는:


128 + 64
= 192

따라서:


11000000 = 192

다음:


11100000

은:


128 + 64 + 32
= 224

따라서:


11100000 = 224

자주 사용하는 값은 다음과 같다.

BinaryDecimal1000000012811000000192111000002241111000024011111000248111111002521111111025411111111255

이 표를 익혀두면 /25부터 /30까지 계산하기가 매우 쉬워진다.



6. /24를 기준으로 생각하기

실무에서는 /24를 기준으로 생각하면 편하다.


192.168.10.0/24

Subnet Mask:


255.255.255.0

전체 주소:


256개

Network:


192.168.10.0

Broadcast:


192.168.10.255

Host:


192.168.10.1
~
192.168.10.254

그런데 /24를 더 작은 네트워크로 나눌 수 있다.


/24
 ↓
/25
 ↓
/26
 ↓
/27
 ↓
/28
 ↓
/29
 ↓
/30

CIDR 숫자가 커질수록 Network Bit가 증가한다.

즉:


Network ↑
Host ↓

이다.



7. /25 계산하기

다음 네트워크를 보자.


192.168.10.0/25

/25는:


Network Bit = 25
Host Bit = 7

이다.

Subnet Mask:


255.255.255.128

왜 128인가?

마지막 Octet이:


10000000

이기 때문이다.

Host Bit가 7개이므로:


2^7 = 128

개의 주소를 갖는다.

따라서:


Network
192.168.10.0

Broadcast
192.168.10.127

Host
192.168.10.1 ~ 192.168.10.126

이다.



8. /25가 /24를 어떻게 나누는가?

192.168.10.0/24를 /25로 나누면:


192.168.10.0/25
192.168.10.128/25

두 개가 된다.

첫 번째:


Network
192.168.10.0

Host
192.168.10.1 ~ 126

Broadcast
192.168.10.127

두 번째:


Network
192.168.10.128

Host
192.168.10.129 ~ 254

Broadcast
192.168.10.255

그림으로 보면:


192.168.10.0/24
│
├── 192.168.10.0/25
│      .0 ~ .127
│
└── 192.168.10.128/25
       .128 ~ .255



9. /26 계산하기

이번에는:


192.168.10.0/26

이다.

Network Bit:


26

Host Bit:


32 - 26 = 6

Host Bit가 6개이므로:


2^6 = 64

주소가 하나의 Subnet에 들어간다.

Subnet Mask:


255.255.255.192

왜 192인가?


11000000

이기 때문이다.

Network는 64 단위로 증가한다.


0
64
128
192

따라서:


192.168.10.0/26
192.168.10.64/26
192.168.10.128/26
192.168.10.192/26

총 4개의 Subnet이 만들어진다.



10. /26 네트워크 하나를 완벽하게 분석하기

다음 IP를 보자.


192.168.10.70/26

여기서 가장 중요한 것은:


70

이 어느 구간에 속하는지를 찾는 것이다.

/26은 64 단위다.


0
64
128
192

70은:


64 ~ 127

사이에 있다.

따라서:


Network
192.168.10.64

Broadcast:


192.168.10.127

Host:


192.168.10.65
~
192.168.10.126

정답은:


IP
192.168.10.70

Network
192.168.10.64

Broadcast
192.168.10.127

Host Range
192.168.10.65 ~ 192.168.10.126

이다.



11. /26 계산을 빠르게 하는 방법

실무에서는 매번 Binary AND 연산을 하지 않는다.

Block Size를 이용하면 훨씬 빠르다.

공식:


Block Size = 256 - Subnet Mask의 해당 Octet

/26의 Subnet Mask:


255.255.255.192

마지막 Octet:


192

따라서:


256 - 192 = 64

즉 Block Size는:


64

이다.

따라서 Network는:


0
64
128
192

단위로 증가한다.

이 방법을 익히면 Subnet 계산 속도가 크게 빨라진다.



12. /27 계산하기

192.168.10.0/27

Host Bit:


32 - 27 = 5

주소 개수:


2^5 = 32

Subnet Mask:


255.255.255.224

Block Size:


256 - 224 = 32

따라서 Network는:


0
32
64
96
128
160
192
224

로 증가한다.

즉:


192.168.10.0/27
192.168.10.32/27
192.168.10.64/27
192.168.10.96/27
192.168.10.128/27
192.168.10.160/27
192.168.10.192/27
192.168.10.224/27

총 8개의 Subnet이다.

각 Subnet은:


32개 주소

를 갖고 일반적으로:


30개 Host

를 사용할 수 있다.



13. /28 계산하기

192.168.10.0/28

Host Bit:


32 - 28 = 4

주소:


2^4 = 16

Subnet Mask:


255.255.255.240

Block Size:


256 - 240
= 16

따라서:


0
16
32
48
64
80
96
112
128
144
160
176
192
208
224
240

단위로 Network가 나뉜다.

예를 들어:


192.168.10.50/28

을 계산해보자.

50은:


48 ~ 63

에 들어간다.

따라서:


Network
192.168.10.48

Broadcast
192.168.10.63

Host
192.168.10.49
~
192.168.10.62

이다.



14. /29 계산하기

192.168.10.0/29

Host Bit:


3

주소 개수:


2^3 = 8

Subnet Mask:


255.255.255.248

Block Size:


256 - 248
= 8

따라서:


0
8
16
24
32
40
48
56
...

단위로 나뉜다.

예:


192.168.10.35/29

35는:


32 ~ 39

에 속한다.

따라서:


Network
192.168.10.32

Host
192.168.10.33 ~ 38

Broadcast
192.168.10.39

이다.



15. /30 계산하기

/30은 네트워크 장비 간 Point-to-Point 연결에서 전통적으로 많이 사용되어 왔다.


192.168.10.0/30

Host Bit:


2

주소:


2^2 = 4

Subnet Mask:


255.255.255.252

Block Size:


256 - 252
= 4

따라서:


Network
192.168.10.0

Host
192.168.10.1
192.168.10.2

Broadcast
192.168.10.3

다음 네트워크는:


192.168.10.4/30

이다.



16. CIDR 계산 핵심 공식

여기까지 배운 것을 공식으로 정리해보자.


Host Bit

Host Bit = 32 - Prefix

예:


/26

32 - 26
= 6



전체 주소 개수

2^(Host Bit)

예:


/26

2^6
= 64



일반적인 Host 개수

2^(Host Bit) - 2

예:


/26

64 - 2
= 62



Block Size

특정 Octet에서:


256 - Subnet Mask 값

예:


/26
Subnet Mask
255.255.255.192

256 - 192
= 64

따라서:


0
64
128
192

단위로 Network가 증가한다.



17. 가장 중요한 Subnet 계산 공식표

CIDRMaskBlock Size전체 주소일반 Host/24255.255.255.0256256254/25255.255.255.128128128126/26255.255.255.192646462/27255.255.255.224323230/28255.255.255.240161614/29255.255.255.248886/30255.255.255.252442

이 표는 시스템 엔지니어라면 자주 사용하는 범위이므로 익숙해지는 것이 좋다.



18. 실제 문제 1 — 192.168.10.70/26

다음 IP를 계산해보자.


192.168.10.70/26

Step 1. Mask

255.255.255.192

Step 2. Block Size

256 - 192
= 64

Step 3. Network 구간

0 ~ 63
64 ~ 127
128 ~ 191
192 ~ 255

70은:


64 ~ 127

Step 4. 결과

Network
192.168.10.64

Broadcast
192.168.10.127

Host
192.168.10.65 ~ 192.168.10.126



19. 실제 문제 2 — 192.168.10.130/26

192.168.10.130/26

Block Size:


64

구간:


0 ~ 63
64 ~ 127
128 ~ 191
192 ~ 255

130은:


128 ~ 191

이다.

따라서:


Network
192.168.10.128

Broadcast
192.168.10.191

Host
192.168.10.129 ~ 192.168.10.190



20. 실제 문제 3 — 192.168.10.200/27

192.168.10.200/27

/27:


Mask
255.255.255.224

Block Size:


256 - 224
= 32

Network 구간:


0 ~ 31
32 ~ 63
64 ~ 95
96 ~ 127
128 ~ 159
160 ~ 191
192 ~ 223
224 ~ 255

200은:


192 ~ 223

에 있다.

따라서:


Network
192.168.10.192

Broadcast
192.168.10.223

Host
192.168.10.193 ~ 192.168.10.222



21. 실제 문제 4 — 172.16.50.77/28

이번에는 세 번째 Octet이 아니라 네 번째 Octet을 계산하면 된다.


172.16.50.77/28

/28:


Mask
255.255.255.240

Block Size:


16

범위:


64 ~ 79

77은 여기에 포함된다.

따라서:


Network
172.16.50.64

Host
172.16.50.65 ~ 172.16.50.78

Broadcast
172.16.50.79



22. 세 번째 Octet에서 Subnet이 발생하는 경우

지금까지는 대부분 마지막 Octet에서 계산했다.

하지만 /16보다 크고 /24보다 작은 Prefix에서는 세 번째 Octet을 계산해야 한다.

예:


172.16.70.10/20

/20의 Subnet Mask는:


255.255.240.0

이다.

세 번째 Octet의 Mask가:


240

이므로 Block Size:


256 - 240
= 16

이다.

따라서 세 번째 Octet은:


0
16
32
48
64
80
96
...

단위로 나뉜다.

70은:


64 ~ 79

에 들어간다.

따라서:


Network
172.16.64.0/20

Broadcast
172.16.79.255

Host
172.16.64.1
~
172.16.79.254

이다.

이것이 매우 중요한 계산법이다.



23. /20 계산을 단계별로 다시 보기

172.16.70.10/20

Prefix

/20

Binary Mask

11111111.11111111.11110000.00000000

Decimal Mask

255.255.240.0

중요한 Octet

세 번째 Octet:


240

Block Size

256 - 240
= 16

Network

70이 속하는 구간:


64 ~ 79

따라서:


172.16.64.0

Broadcast

다음 Network:


172.16.80.0

바로 이전 주소:


172.16.79.255

최종 결과

Network
172.16.64.0

Host
172.16.64.1
~
172.16.79.254

Broadcast
172.16.79.255



24. /21 계산

172.16.70.10/21

Subnet Mask:


255.255.248.0

Block Size:


256 - 248
= 8

세 번째 Octet이:


0
8
16
24
32
40
48
56
64
72
80
...

으로 증가한다.

70은:


64 ~ 71

범위다.

따라서:


Network
172.16.64.0

Broadcast
172.16.71.255

Host:


172.16.64.1
~
172.16.71.254



25. /22 계산

172.16.70.10/22

Subnet Mask:


255.255.252.0

Block Size:


256 - 252
= 4

세 번째 Octet:


0
4
8
12
...
64
68
72
...

70은:


68 ~ 71

에 포함된다.

따라서:


Network
172.16.68.0

Broadcast
172.16.71.255

Host
172.16.68.1
~
172.16.71.254



26. /23 계산

172.16.70.10/23

Mask:


255.255.254.0

Block Size:


256 - 254
= 2

세 번째 Octet:


0
2
4
6
...
68
70
72
...

70은 정확히 Network 시작점이다.

따라서:


Network
172.16.70.0

Broadcast
172.16.71.255

Host
172.16.70.1
~
172.16.71.254



27. /17 ~ /23을 계산하는 방법

중간 Prefix를 계산할 때 핵심은 하나다.


Subnet Mask에서 255가 아닌 Octet을 찾는다.

예:


/20
255.255.240.0
          ↑

세 번째 Octet에서 계산한다.


/22
255.255.252.0
          ↑

역시 세 번째 Octet이다.

반면:


/26
255.255.255.192
              ↑

네 번째 Octet에서 계산한다.

즉:


/1 ~ /8
→ 첫 번째 Octet

/9 ~ /16
→ 두 번째 Octet

/17 ~ /24
→ 세 번째 Octet

/25 ~ /32
→ 네 번째 Octet

라고 생각하면 된다.



28. CIDR 계산 실전 공식

어떤 IP든 다음 5단계로 계산할 수 있다.


Step 1

Prefix를 확인한다.


192.168.10.70/26
                 ↑

Step 2

Subnet Mask로 변환한다.


/26
→ 255.255.255.192

Step 3

255가 아닌 Octet을 찾는다.


255.255.255.192
              ↑

Step 4

Block Size를 계산한다.


256 - 192
= 64

Step 5

IP가 속한 구간을 찾는다.


0
64
128
192

70은:


64 ~ 127

따라서:


Network
192.168.10.64

Broadcast
192.168.10.127

Host
192.168.10.65 ~ 126

이 5단계를 익히면 대부분의 기본 Subnet 계산을 빠르게 할 수 있다.



29. 두 IP가 같은 Subnet인지 판단하는 방법

실무에서 매우 자주 사용하는 계산이다.

다음 두 서버가 있다고 하자.


Server A
192.168.10.70/26

Server B
192.168.10.100/26

A의 Network:


192.168.10.64/26

B도:


192.168.10.64/26

이다.

따라서 같은 Subnet이다.

이번에는:


Server A
192.168.10.70/26

Server B
192.168.10.130/26

A:


192.168.10.64/26

B:


192.168.10.128/26

다르다.

따라서 서로 다른 Subnet이다.



30. 같은 Subnet인지 빠르게 판단하기

다음과 같은 환경을 생각해보자.


192.168.10.0/24

이것을 /26으로 나누면:


192.168.10.0/26
192.168.10.64/26
192.168.10.128/26
192.168.10.192/26

따라서:


192.168.10.10
192.168.10.50

은 같은 Subnet이다.

하지만:


192.168.10.10
192.168.10.70

은 다른 Subnet이다.

왜냐하면:


10
→ 0 ~ 63

70
→ 64 ~ 127

이기 때문이다.



31. 이것이 실제 서버 장애로 연결된다

서버 A:


192.168.10.10/26

서버 B:


192.168.10.70/26

이라고 하자.

두 서버 모두:


192.168.10.x

이므로 같은 네트워크처럼 보인다.

하지만 실제로는:


A
Network
192.168.10.0/26

B:


Network
192.168.10.64/26

이다.

따라서 다른 네트워크다.

그런데 A의 Gateway 설정이 없거나 잘못되어 있다면:


A
192.168.10.10/26
    │
    │ Destination
    │ 192.168.10.70
    ▼
다른 Network라고 판단
    │
    ▼
Gateway 필요

하지만 Gateway가 없다.

결과:


통신 실패

이런 장애가 실제 현장에서 발생할 수 있다.



32. 잘못된 Subnet Mask 장애

이번에는 실제 서버 설정 오류를 생각해보자.

Server A:


IP
192.168.10.10

Mask
255.255.255.0

Server B:


IP
192.168.10.70

Mask
255.255.255.192

A는:


192.168.10.0/24

전체를 자신의 Local Network라고 생각한다.

B는:


192.168.10.64/26

만 자신의 Local Network라고 생각한다.

따라서 서로의 네트워크 판단이 다르다.

이런 구성은 장애를 매우 어렵게 만든다.

서버 A:


"192.168.10.70은 같은 네트워크다."

서버 B:


"192.168.10.10은 다른 네트워크다."

즉 한쪽에서는 직접 통신하려 하고 다른 쪽에서는 Gateway를 사용하려는 상황이 발생할 수 있다.



33. Linux에서 Subnet 설정 확인

서버에서:


ip -4 addr show ens160

예:


inet 192.168.10.70/26

여기서 /26을 확인한다.

그리고:


ip route

결과:


192.168.10.64/26 dev ens160 proto kernel scope link src 192.168.10.70
default via 192.168.10.65 dev ens160

이렇게 나온다면:


Network
192.168.10.64/26

Gateway
192.168.10.65

임을 확인할 수 있다.



34. ip route get으로 Subnet 판단 확인

목적지가:


192.168.10.100

이라고 하자.


ip route get 192.168.10.100

결과:


192.168.10.100 dev ens160 src 192.168.10.70

이면 직접 연결된 것으로 판단하고 있다.

반면 목적지가:


192.168.10.130

이면:


ip route get 192.168.10.130

결과:


192.168.10.130 via 192.168.10.65 dev ens160

처럼 Gateway를 사용하게 된다.

이 명령은 서버가 실제로 목적지를 어떻게 판단하고 있는지 확인하는 매우 강력한 도구다.



35. tcpdump로 Subnet 문제 확인하기

다음 서버를 생각해보자.


Server
192.168.10.70/26

Gateway
192.168.10.65

목적지:


192.168.10.100

이 서버는 같은 Subnet에 있다.

따라서 ARP 대상은:


192.168.10.100

이다.


tcpdump -e -nn -i ens160 arp

예:


ARP, Request who-has 192.168.10.100 tell 192.168.10.70

반면 목적지가:


192.168.10.130

이면 다른 Subnet이다.

따라서 ARP 대상은:


192.168.10.65

Gateway다.


ARP, Request who-has 192.168.10.65 tell 192.168.10.70

이 차이를 tcpdump에서 직접 확인할 수 있다.



36. Subnet 장애 분석의 핵심

장애가 발생했을 때 다음과 같이 생각하면 된다.


통신 대상
192.168.10.130
       │
       ▼
내 IP
192.168.10.70/26
       │
       ▼
같은 Network인가?
       │
       ├── YES
       │     ↓
       │    ARP
       │     ↓
       │   Target MAC
       │
       └── NO
             ↓
           Routing
             ↓
          Gateway

따라서 장애가 발생하면 먼저:


ip addr

그리고:


ip route

그리고:


ip route get <목적지>

를 확인하는 것이 좋다.



37. VLSM이란 무엇인가?

실제 네트워크에서는 모든 Subnet을 같은 크기로 만들 필요가 없다.

예를 들어:


Server Network
100대 필요

Management Network
20대 필요

Network Device
6대 필요

모두 /24를 사용하면 IP가 낭비된다.

따라서 필요한 Host 수에 맞게 서로 다른 Prefix를 사용할 수 있다.

이를 VLSM이라고 한다.


Variable Length Subnet Mask

즉:


서로 다른 크기의 Subnet을
하나의 네트워크 안에서 사용하는 방식

이다.



38. VLSM 실제 예제

다음 네트워크가 있다고 하자.


192.168.10.0/24

필요한 Host:


Server
100대

Management
30대

Network
10대

가장 큰 네트워크부터 배정한다.


Server 100대

100대를 수용하려면:


/25

가 필요하다.


192.168.10.0/25

Host:


192.168.10.1 ~ 126



Management 30대

30대를 수용하려면:


/27

이다.

남은 공간에서:


192.168.10.128/27

Host:


192.168.10.129 ~ 158



Network 10대

10대를 수용하려면:


/28

이 필요하다.


192.168.10.160/28

Host:


192.168.10.161 ~ 174

이렇게 필요한 크기만큼 나누어 사용할 수 있다.



39. VLSM을 사용할 때 주의할 점

Subnet을 나눌 때는 반드시 경계가 맞아야 한다.

예를 들어 /27은:


32

단위다.

따라서 Network Address는:


0
32
64
96
128
160
192
224

중 하나여야 한다.

다음은 올바른 Network Address다.


192.168.10.128/27

하지만:


192.168.10.130/27

은 Host IP이지 Network Address가 아니다.

즉:


192.168.10.130/27

이라는 서버가 있다면 실제 Network는:


192.168.10.128/27

이다.



40. CIDR과 Routing의 관계

CIDR은 IP 주소를 나누는 것뿐만 아니라 Routing에서도 매우 중요하다.

예를 들어 Router에:


10.0.0.0/8

이라는 Route가 있다고 하자.

그리고:


10.10.10.0/24

라는 더 구체적인 Route가 있다고 하자.

목적지가:


10.10.10.50

이면 Router는 더 구체적인 Prefix를 선택한다.


10.10.10.0/24

이것을 일반적으로 Longest Prefix Match라고 한다.

즉:


Prefix가 더 긴 Route
→ 더 구체적인 Network
→ 우선 선택

이라는 개념이다.

이것은 앞으로 Routing을 배울 때 매우 중요하다.



41. 서버 엔지니어가 CIDR을 알아야 하는 이유

실제 서버 운영에서는 다음과 같은 작업이 매우 많다.


서버 IP 설정
Subnet 변경
Gateway 변경
방화벽 Rule 작성
Routing 설정
VLAN 구성
Cloud VPC 구성
Kubernetes Network 구성
Docker Network 구성
Load Balancer 설정
ACL 설정

이 모든 영역에서 CIDR이 사용된다.

예를 들어 방화벽에서:


192.168.10.0/24

라고 설정하면:


192.168.10.1
~
192.168.10.254

범위를 의미할 수 있다.

다음과 같이:


192.168.10.0/26

이라면:


192.168.10.1
~
192.168.10.62

범위가 된다.

따라서 CIDR을 이해하지 못하면 서버 방화벽과 네트워크 정책을 정확하게 작성하기 어렵다.



42. Kubernetes에서도 CIDR은 중요하다

시스템 엔지니어라면 Kubernetes에서도 CIDR을 자주 만나게 된다.

예:


Pod CIDR
10.244.0.0/16

또는:


Service CIDR
10.96.0.0/12

이런 값들이 있다.

따라서 Kubernetes에서:


Pod Network
Service Network
Node Network

을 구분할 때도 CIDR 이해가 필요하다.

결국 서버 네트워크에서 배운 CIDR 계산 능력이 Kubernetes 네트워크를 이해하는 기반이 된다.



43. Docker에서도 CIDR은 사용된다

Docker Network를 확인하면:


docker network inspect bridge

다음과 같은 설정을 볼 수 있다.


Subnet:
172.17.0.0/16

Gateway:
172.17.0.1

이것 역시 동일한 Subnet 개념이다.

즉:


물리 서버
   ↓
Linux Network
   ↓
Docker Network
   ↓
Kubernetes Network

모두 IP와 CIDR이라는 같은 기본 원리를 사용한다.



44. 실전 장애 분석 예제

다음과 같은 서버가 있다고 하자.


Server A
IP      : 192.168.10.70
Subnet  : /26
Gateway : 192.168.10.65

목적지:


192.168.10.100

통신이 되지 않는다.

먼저:


ip -4 addr show ens160

확인.


192.168.10.70/26

정상.

다음:


ip route

확인.


192.168.10.64/26 dev ens160
default via 192.168.10.65 dev ens160

정상.

다음:


ip route get 192.168.10.100

결과:


192.168.10.100 dev ens160

직접 연결이라고 판단한다.

이제:


ip neigh

확인.


192.168.10.100 dev ens160 INCOMPLETE

이제 ARP 문제 가능성이 높다.

다음:


tcpdump -e -nn -i ens160 arp

결과:


ARP Request
Who has 192.168.10.100?

만 반복된다.

ARP Reply가 없다.

이때는:


Subnet 계산
→ 정상

Routing 판단
→ 정상

ARP
→ 실패

라는 식으로 장애 범위를 좁힐 수 있다.

가능한 원인은:


상대 서버 Down
상대 NIC 문제
VLAN 문제
Switch Port 문제
중복 IP
네트워크 장비 문제

등이다.

이것이 Subnet 계산이 실제 장애 분석으로 연결되는 과정이다.



45. Subnet 계산 실전 문제

다음 문제를 직접 계산해보자.


문제 1

192.168.1.100/24

정답:


Network
192.168.1.0

Broadcast
192.168.1.255

Host
192.168.1.1 ~ 254



문제 2

192.168.1.100/25

구간:


0 ~ 127
128 ~ 255

100은 첫 번째다.

정답:


Network
192.168.1.0

Broadcast
192.168.1.127

Host
192.168.1.1 ~ 126



문제 3

192.168.1.100/26

구간:


0 ~ 63
64 ~ 127
128 ~ 191
192 ~ 255

100은:


64 ~ 127

정답:


Network
192.168.1.64

Broadcast
192.168.1.127

Host
192.168.1.65 ~ 126



문제 4

192.168.1.100/27

구간:


96 ~ 127

정답:


Network
192.168.1.96

Broadcast
192.168.1.127

Host
192.168.1.97 ~ 126



문제 5

192.168.1.100/28

구간:


96 ~ 111

정답:


Network
192.168.1.96

Broadcast
192.168.1.111

Host
192.168.1.97 ~ 110

이처럼 Prefix가 증가할수록 Network가 작아진다.



46. CIDR 계산을 빠르게 하는 핵심 패턴

다음 패턴은 반드시 익숙해지는 것이 좋다.


/25 → 128 단위
/26 → 64 단위
/27 → 32 단위
/28 → 16 단위
/29 → 8 단위
/30 → 4 단위

예를 들어:


/27

이라고 하면 바로:


Block Size = 32

를 떠올린다.


/28

이면:


Block Size = 16

이다.

이것만 익혀도 현장에서 상당히 빠르게 계산할 수 있다.



47. CIDR 계산을 표로 정리

/24
255.255.255.0
Block 256
Host 254

/25
255.255.255.128
Block 128
Host 126

/26
255.255.255.192
Block 64
Host 62

/27
255.255.255.224
Block 32
Host 30

/28
255.255.255.240
Block 16
Host 14

/29
255.255.255.248
Block 8
Host 6

/30
255.255.255.252
Block 4
Host 2



48. 시스템 엔지니어의 Subnet 장애 분석 순서

Subnet과 관련된 장애가 발생했다면 다음 순서로 확인하는 것을 권장한다.


① IP Address
        ↓
② CIDR / Subnet Mask
        ↓
③ Network Address
        ↓
④ Destination Network
        ↓
⑤ Routing Table
        ↓
⑥ Gateway
        ↓
⑦ ARP / Neighbor
        ↓
⑧ tcpdump
        ↓
⑨ Switch / Router

Linux에서는:


ip -4 addr

↓


ip route

↓


ip route get <destination>

↓


ip neigh

↓


tcpdump -nn -i ens160 'arp or icmp'

순서로 확인할 수 있다.



49. 이번 편에서 반드시 기억해야 할 것

Subnet과 CIDR 계산은 복잡해 보이지만 핵심 원리는 간단하다.


첫 번째

IPv4는:


32bit

이다.


두 번째

CIDR:


/24
/25
/26

는 Network Bit의 개수다.


세 번째

Host Bit:


32 - Prefix

네 번째

전체 주소:


2^HostBit

다섯 번째

일반적인 Host 수:


2^HostBit - 2

여섯 번째

Block Size:


256 - 해당 Octet의 Subnet Mask

일곱 번째

Network Address:


IP가 속한 Block의 시작 주소

여덟 번째

Broadcast:


다음 Network Address - 1

아홉 번째

같은 Network면:


ARP
→ Destination MAC
→ Switch

다른 Network면:


Gateway
→ Router
→ Destination Network



마무리

Subnet Mask와 CIDR은 단순히 네트워크 자격증 시험을 위한 계산 문제가 아니다.

시스템 엔지니어가 서버를 운영하면서 실제로 매일 만나게 되는 개념이다.

서버 설정에서:


192.168.10.70/26

이라는 값을 봤을 때 단순히:


"IP가 192.168.10.70이구나."

에서 끝나는 것이 아니라:


/26
↓
255.255.255.192
↓
Block Size 64
↓
192.168.10.64/26
↓
Host 192.168.10.65 ~ 126
↓
Broadcast 192.168.10.127

까지 머릿속에서 바로 연결할 수 있어야 한다.

그리고 이것이 실제 장애 분석에서는:


목적지 IP
    ↓
같은 Subnet인가?
    │
    ├── YES
    │     ↓
    │    ARP
    │     ↓
    │  Destination MAC
    │     ↓
    │   Switch
    │
    └── NO
          ↓
        Gateway
          ↓
        Router
          ↓
     Destination Network

이라는 패킷 전달 과정으로 이어진다.

결국 Subnet Mask와 CIDR을 이해한다는 것은 서버가 목적지를 어떻게 판단하고 패킷을 어디로 보낼지를 이해한다는 의미다.

다음 네트워크 교육에서는 이 개념을 실제 네트워크 장비와 연결해서 **「Gateway와 Routing 완벽 이해」**를 다루는 것이 자연스럽다.

다음 편에서는 다음 내용을 중심으로 진행할 수 있다.


Gateway란 무엇인가?
        ↓
Default Gateway란?
        ↓
Routing Table이란?
        ↓
ip route 완벽 분석
        ↓
ip route get 활용
        ↓
Static Route
        ↓
Destination Network 판단
        ↓
Gateway 장애
        ↓
잘못된 Route 장애
        ↓
tcpdump로 Gateway 통신 확인
        ↓
실제 서버 Routing 장애 분석

이 과정을 거치면 지금까지 배운 Ethernet → MAC → ARP → IP → Subnet이 실제 Routing으로 자연스럽게 연결된다.

중복 계산 예제를 줄여 글을 압축해줘CIDR 계산 절차를 앞쪽에 통합해줘/31과 /32 예외를 명확히 설명해줘

댓글

아직 댓글이 없습니다.

로그인 후 댓글을 남길 수 있습니다.