CCNA 200-301

CCNA 200–301 따라잡기 4장

IPv4 주소와 서브넷팅, 손으로 계산하는 법

3장까지는 같은 네트워크 안에서 프레임이 어떻게 움직이는지 봤다. 스위치는 MAC 주소를 보고 같은 동네 안에서 프레임을 전달한다. 이제 질문이 바뀐다. “다른 동네로 가려면 어떻게 해야 하는가?”

그 답이 IPv4 주소, 서브넷 마스크, 라우팅이다. 4장의 목표는 단순히 192.168.1.10 같은 주소를 읽는 것이 아니다. 어떤 주소가 어느 네트워크에 속하는지, 사용 가능한 호스트 범위가 어디부터 어디까지인지, 브로드캐스트 주소가 무엇인지, 그리고 요구 호스트 수에 맞춰 서브넷을 어떻게 나눌지 손으로 계산할 수 있어야 한다.

CCNA에서 IPv4와 서브넷팅은 피할 수 없다. 계산 문제도 나오고, 라우팅 테이블을 읽는 문제도 나오고, ACL이나 VLAN, DHCP 문제에서도 계속 따라 나온다. 여기서 흔들리면 뒤 장 전체가 느려진다.

  1. IPv4 주소는 32비트다

IPv4 주소는 32비트 숫자다. 사람이 보기 쉽게 8비트씩 네 덩어리로 나눠 10진수로 쓴다. 그래서 192.168.10.37 같은 형태가 된다.

각 덩어리를 옥텟(octet)이라고 부른다. 하나의 옥텟은 8비트이므로 0부터 255까지 표현할 수 있다.

192.168.10.37을 2진수로 쓰면 다음과 같다.

192 = 11000000 168 = 10101000 10 = 00001010 37 = 00100101

즉 192.168.10.37은 실제로는 11000000.10101000.00001010.00100101이라는 32비트 값이다.

여기서 중요한 점은 IP 주소 자체만으로는 네트워크를 알 수 없다는 것이다. 192.168.10.37이라는 주소가 192.168.10.0 네트워크에 속하는지, 192.168.10.32 네트워크에 속하는지는 서브넷 마스크를 봐야 알 수 있다.

  1. 서브넷 마스크는 네트워크 부분과 호스트 부분을 나눈다

서브넷 마스크는 IP 주소의 어느 비트까지가 네트워크 부분이고, 어느 비트부터가 호스트 부분인지 알려준다.

예를 들어 /24는 앞 24비트가 네트워크, 뒤 8비트가 호스트라는 뜻이다.

192.168.10.37/24라면 네트워크 부분은 192.168.10이고, 호스트 부분은 37이다. 이 주소는 192.168.10.0/24 네트워크에 속한다.

/24를 10진수 서브넷 마스크로 쓰면 255.255.255.0이다. 앞 24비트가 모두 1이고, 뒤 8비트가 모두 0이기 때문이다.

11111111.11111111.11111111.00000000

이 값이 255.255.255.0이다.

CIDR 표기와 dotted decimal 마스크는 서로 같은 의미다.

/8 = 255.0.0.0 /16 = 255.255.0.0 /24 = 255.255.255.0 /25 = 255.255.255.128 /26 = 255.255.255.192 /27 = 255.255.255.224 /28 = 255.255.255.240 /29 = 255.255.255.248 /30 = 255.255.255.252

CCNA에서 자주 쓰는 것은 /24부터 /30까지다. 특히 /25, /26, /27, /28, /30은 손으로 즉시 계산할 수 있어야 한다.

  1. 네트워크 주소, 브로드캐스트 주소, 사용 가능 호스트

하나의 서브넷에는 세 가지 중요한 주소가 있다.

네트워크 주소 — 서브넷을 대표하는 주소. 호스트 부분이 모두 0이다. 장비에 할당하지 않는다.

브로드캐스트 주소 — 그 서브넷의 모든 호스트에게 보내는 주소. 호스트 부분이 모두 1이다. 장비에 할당하지 않는다.

사용 가능 호스트 주소 — 네트워크 주소와 브로드캐스트 주소 사이에 있는 주소. 실제 PC, 서버, 라우터 인터페이스에 할당할 수 있다.

예를 들어 192.168.10.0/24를 보자.

네트워크 주소는 192.168.10.0이다.

브로드캐스트 주소는 192.168.10.255다.

사용 가능 호스트 범위는 192.168.10.1부터 192.168.10.254까지다.

총 주소 수는 256개지만, 네트워크 주소와 브로드캐스트 주소를 빼야 하므로 사용 가능 호스트는 254개다.

공식은 간단하다.

총 주소 수 = 2^(호스트 비트 수)

사용 가능 호스트 수 = 2^(호스트 비트 수) — 2

/24는 호스트 비트가 8개다. 2⁸ = 256, 사용 가능 호스트는 254개다.

/27은 호스트 비트가 5개다. 2⁵ = 32, 사용 가능 호스트는 30개다.

/30은 호스트 비트가 2개다. 2² = 4, 사용 가능 호스트는 2개다. 그래서 과거에는 라우터 간 point-to-point 링크에 /30을 많이 썼다.

  1. 서브넷팅의 핵심은 블록 크기다

서브넷팅 계산을 빠르게 하려면 블록 크기(block size)를 잡아야 한다.

블록 크기는 해당 서브넷이 몇 개 주소 단위로 끊어지는지 나타낸다.

공식은 다음과 같다.

블록 크기 = 256 — 흥미로운 옥텟의 마스크 값

흥미로운 옥텟은 마스크가 255도 아니고 0도 아닌 옥텟이다.

예를 들어 /27은 255.255.255.224다. 흥미로운 옥텟은 마지막 옥텟이고, 마스크 값은 224다.

256–224 = 32

따라서 /27은 32 단위로 네트워크가 끊어진다.

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

만약 IP가 192.168.10.37/27이라면 37은 32와 64 사이에 있다. 따라서 이 주소는 192.168.10.32/27 네트워크에 속한다.

네트워크 주소는 192.168.10.32.

다음 네트워크는 192.168.10.64.

브로드캐스트 주소는 다음 네트워크 바로 전인 192.168.10.63.

사용 가능 호스트는 192.168.10.33부터 192.168.10.62까지다.

이 방식은 대부분의 CCNA 서브넷팅 문제를 빠르게 푸는 핵심이다.

  1. 자주 쓰는 prefix 빠른 표

시험장에서 모든 값을 매번 2진수로 바꾸면 시간이 부족하다. 아래 표는 바로 외워야 한다.

/24 — 마스크 255.255.255.0 — 블록 256 — 호스트 254

/25 — 마스크 255.255.255.128 — 블록 128 — 호스트 126

/26 — 마스크 255.255.255.192 — 블록 64 — 호스트 62

/27 — 마스크 255.255.255.224 — 블록 32 — 호스트 30

/28 — 마스크 255.255.255.240 — 블록 16 — 호스트 14

/29 — 마스크 255.255.255.248 — 블록 8 — 호스트 6

/30 — 마스크 255.255.255.252 — 블록 4 — 호스트 2

외우는 방법은 호스트 수를 먼저 잡는 것이다. /24는 254이고, prefix가 1 증가할 때마다 주소 수는 절반이 된다. /25는 126, /26은 62, /27은 30, /28은 14, /29는 6, /30은 2다.

반대로 호스트 수가 필요한 문제에서는 이 표를 거꾸로 쓴다.

호스트 50개가 필요하면 /26이 필요하다. /27은 30개밖에 못 담는다.

호스트 20개가 필요하면 /27이면 충분하다.

호스트 10개가 필요하면 /28이면 충분하다.

호스트 2개짜리 point-to-point 링크는 /30이면 된다.

  1. 예제 1–192.168.10.37/27 분석

문제: 192.168.10.37/27의 네트워크 주소, 브로드캐스트 주소, 사용 가능한 호스트 범위를 구하라.

1단계. /27의 마스크는 255.255.255.224다.

2단계. 블록 크기는 256–224 = 32다.

3단계. 마지막 옥텟을 32 단위로 끊는다.

0, 32, 64, 96, 128, 160, 192, 224.

4단계. 37은 32와 64 사이에 있다.

따라서 네트워크 주소는 192.168.10.32다.

다음 네트워크는 192.168.10.64다.

브로드캐스트 주소는 다음 네트워크 바로 전인 192.168.10.63이다.

사용 가능 호스트 범위는 192.168.10.33부터 192.168.10.62까지다.

사용 가능 호스트 수는 30개다.

이 문제를 10초 안에 풀 수 있어야 한다. 처음에는 표를 보고 풀어도 되지만, 결국 /25~30의 블록 크기는 바로 나와야 한다.

  1. 예제 2–172.16.35.200/20 분석

Get David Lee’s stories in your inbox

Join Medium for free to get updates from this writer.

Subscribe

Subscribe

Remember me for faster sign in

이번에는 흥미로운 옥텟이 세 번째 옥텟인 예제다.

/20은 255.255.240.0이다. 마스크가 255도 0도 아닌 옥텟은 세 번째 옥텟이고, 값은 240이다.

블록 크기 = 256–240 = 16.

세 번째 옥텟을 16 단위로 끊는다.

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

IP는 172.16.35.200이다. 세 번째 옥텟 35는 32와 48 사이에 있다.

따라서 네트워크 주소는 172.16.32.0/20이다.

다음 네트워크는 172.16.48.0/20이다.

브로드캐스트 주소는 다음 네트워크 바로 전인 172.16.47.255다.

사용 가능 호스트 범위는 172.16.32.1부터 172.16.47.254까지다.

이 예제에서 자주 하는 실수는 마지막 옥텟 200만 보고 계산하는 것이다. /20에서는 세 번째 옥텟이 흥미로운 옥텟이다. 마스크를 먼저 봐야 한다.

  1. 사설 IP 주소

CCNA에서 반드시 알아야 하는 IPv4 범위가 있다. 사설 IP 주소다.

RFC 1918 사설 주소 범위는 다음 세 개다.

10.0.0.0/8

172.16.0.0/12

192.168.0.0/16

이 주소들은 인터넷에서 직접 라우팅되지 않는다. 회사, 집, 데이터센터 내부에서 자유롭게 쓰고, 인터넷으로 나갈 때는 NAT를 거친다.

시험에서 자주 나오는 함정은 172 대역이다.

172.16.0.0부터 172.31.255.255까지만 사설 주소다. 172.15.x.x는 공인 주소이고, 172.32.x.x도 공인 주소다.

192.168은 192.168.0.0부터 192.168.255.255까지다.

10 대역은 10.0.0.0부터 10.255.255.255까지 전체가 사설이다.

  1. 특수 IPv4 주소

몇 가지 특수 주소도 알아야 한다.

0.0.0.0 — “아직 주소가 없다” 또는 default route에서 “모든 목적지”를 의미한다.

127.0.0.0/8 — loopback 주소. 자기 자신을 가리킨다. 가장 흔한 것은 127.0.0.1이다.

169.254.0.0/16 — APIPA 주소. DHCP 서버에서 주소를 받지 못했을 때 Windows 등에서 자동으로 잡는다.

255.255.255.255 — limited broadcast. 현재 로컬 네트워크에서 전체 브로드캐스트를 의미한다.

224.0.0.0/4 — multicast 주소 범위다.

이 주소들은 일반 호스트 주소로 배정하면 안 된다.

  1. VLSM — 필요한 만큼 다르게 나누기

VLSM은 Variable Length Subnet Mask의 약자다. 하나의 큰 네트워크를 요구 호스트 수에 따라 서로 다른 크기의 서브넷으로 나누는 방식이다.

예를 들어 192.168.10.0/24를 다음 요구사항에 맞게 나눠야 한다고 하자.

부서 A: 호스트 60개

부서 B: 호스트 30개

부서 C: 호스트 12개

라우터 링크 2개: 각 2개

VLSM의 원칙은 큰 것부터 배정하는 것이다.

60개가 필요하면 /26이 필요하다. /26은 사용 가능 호스트 62개다.

30개가 필요하면 /27이 필요하다. /27은 사용 가능 호스트 30개다.

12개가 필요하면 /28이 필요하다. /28은 사용 가능 호스트 14개다.

2개짜리 링크는 /30이면 된다. /30은 사용 가능 호스트 2개다.

배정은 이렇게 할 수 있다.

192.168.10.0/26 — 부서 A

192.168.10.64/27 — 부서 B

192.168.10.96/28 — 부서 C

192.168.10.112/30 — 링크 1

192.168.10.116/30 — 링크 2

남은 주소는 이후 확장용으로 남길 수 있다.

VLSM 문제에서 가장 흔한 실수는 작은 서브넷부터 배정하는 것이다. 그렇게 하면 큰 서브넷을 넣을 연속 공간이 사라질 수 있다. 항상 큰 요구사항부터 처리한다.

  1. 서브넷팅 문제 풀이 루틴

시험장에서 다음 순서로 푼다.

첫째, prefix를 dotted decimal mask로 바꾼다.

둘째, 흥미로운 옥텟을 찾는다.

셋째, 블록 크기를 계산한다.

넷째, IP가 어느 블록 사이에 들어가는지 찾는다.

다섯째, 네트워크 주소를 구한다.

여섯째, 다음 네트워크 주소를 구한다.

일곱째, 브로드캐스트 주소를 다음 네트워크 바로 전으로 잡는다.

여덟째, 사용 가능 호스트 범위를 네트워크+1부터 브로드캐스트-1까지로 잡는다.

이 루틴을 외워두면 어떤 IPv4 서브넷팅 문제도 당황하지 않는다.

  1. 자주 틀리는 부분

첫째, 네트워크 주소를 호스트에 할당하는 것. 네트워크 주소는 장비에 넣으면 안 된다.

둘째, 브로드캐스트 주소를 호스트에 할당하는 것. 역시 장비에 넣으면 안 된다.

셋째, /24만 보고 마지막 옥텟만 계산하는 습관. /20, /21, /22처럼 세 번째 옥텟이 움직이는 문제가 나오면 틀린다.

넷째, 172 전체를 사설 IP로 착각하는 것. 172.16.0.0/12만 사설이다.

다섯째, VLSM을 작은 요구사항부터 배정하는 것. 반드시 큰 서브넷부터 배정한다.

  1. 4장 정리

IPv4 주소는 32비트이고, 8비트씩 네 옥텟으로 표기한다.

서브넷 마스크는 네트워크 부분과 호스트 부분을 나눈다.

/24는 255.255.255.0, /25는 255.255.255.128, /26은 255.255.255.192, /27은 255.255.255.224다.

총 주소 수는 2^(호스트 비트 수), 사용 가능 호스트 수는 거기서 2를 뺀 값이다.

블록 크기는 256 — 흥미로운 옥텟의 마스크 값이다.

네트워크 주소는 블록의 시작, 브로드캐스트 주소는 다음 블록 바로 전이다.

VLSM은 큰 요구사항부터 배정한다.

사설 주소는 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16이다.

  1. 다음 장 예고

5장에서는 라우팅의 기본으로 넘어간다. 라우터가 목적지 네트워크를 어떻게 고르는지, connected route와 static route가 무엇인지, default route가 언제 쓰이는지 다룬다. 4장에서 배운 “이 주소가 어느 네트워크에 속하는가”가 5장의 출발점이다.

댓글 0