LabHub
배우기 러닝패스 코스

ネットワーク基礎

アドレスを手で分けてみる

LabHub 에서 이어서 보기

한국어 원문으로 표시합니다.

목표

대역을 나누는 일은 되돌리기가 가장 어려운 결정 중 하나입니다. VPC 의 대역은 만든 뒤에 줄일 수 없고, 서브넷은 안에 자원이 있으면 지울 수 없습니다. 처음 30분에 정한 것이 몇 년 갑니다.

여기서는 계산기를 쓰지 않고 경계와 길이로 답을 냅니다.

재료

/opt/lab/netplan/allocations.txt   사내 대역 배정표
/opt/lab/netplan/routes.txt        어느 라우터의 표

먼저 작업 디렉터리로 가져옵니다.

mkdir -p /root/netplan && cp /opt/lab/netplan/* /root/netplan/ && cd /root/netplan

남길 것

01-here.txt     내 주소·프리픽스·기본 경로
02-split.txt    /16 을 나눈 계획
03-overlap.txt  겹치는 짝
04-longest.txt  세 목적지가 가는 길
05-usable.txt   크기별로 실제 쓸 수 있는 수

나는 지금 어디에 있나

이 파드의 IPv4 주소와 프리픽스, 그리고 기본 경로를 01-here.txt 에 남기고 그 프리픽스가 무슨 뜻인지 한 줄 적으세요.

ip -4 -o addr showip route.

프리픽스가 /32 라면 같은 대역에 이웃이 하나도 없다는 뜻입니다. 그런데도 밖으로 나갈 수 있는 것은 scope link 경로가 따로 있기 때문입니다.

경계에 맞게 나눈다

10.20.0.0/16네 개의 /18 로 나누고, 앞의 셋을 AZ 세 곳에 배정하세요. 각 AZ 의 /24 를 퍼블릭 서브넷으로 잡습니다. 넷째 /18 은 남기고, 왜 남기는지 적으세요. 결과는 02-split.txt 에.

python3 -c "import ipaddress as ip; print([str(n) for n in ip.ip_network('10.20.0.0/16').subnets(new_prefix=18)])"

/18 의 첫 /24 는 그 /18 의 시작 주소에 /24 를 붙인 것입니다.

넷째를 남기는 이유를 적으세요. VPC 대역은 나중에 늘리기가 번거롭고, AZ 가 하나 늘거나 용도가 하나 늘 때 붙일 자리가 없으면 다른 대역을 끌어와야 합니다.

겹치는 짝을 찾는다

allocations.txt 에서 서로 겹치는 대역 짝을 전부 찾아 03-overlap.txt 에 적고, 겹치면 무엇이 막히는지 한 줄 덧붙이세요.

ipaddress.ip_network(a).overlaps(ip_network(b)) 로 모든 짝을 봅니다.

겹치는 짝은 입니다. 겹치지 않는 것을 넣으면 안 됩니다 — 안 겹치는데 겹친다고 보고하면 멀쩡한 대역을 다시 잡게 됩니다.

순서가 아니라 길이가 정한다

routes.txt 를 보고 10.20.4.200 · 10.20.9.5 · 172.20.1.1 이 각각 어느 경로로 나가는지 04-longest.txt 에 적으세요. 다음 홉 주소까지 적습니다.

커널은 표의 순서를 보지 않습니다. 맞는 경로가 여럿이면 프리픽스가 가장 긴 것을 고릅니다.

10.20.4.200/24/25 에 모두 맞습니다. 10.20.9.5scope link 경로에 맞는데, 그것은 게이트웨이를 거치지 않는다는 뜻입니다.

실제로 쓸 수 있는 수

/24 · /25 · /26 · /28 각각에 대해 전체 주소 수클라우드가 다섯을 예약한 뒤 실제로 쓸 수 있는 수05-usable.txt 에 표로 적고, 그 다섯이 어디로 가는지 한 줄 덧붙이세요.

전체는 2^(32-프리픽스) 입니다. 대부분의 클라우드가 서브넷마다 다섯 개를 가져갑니다 — 네트워크 주소, 게이트웨이, DNS, 예비, 브로드캐스트.

작은 서브넷일수록 이 손실의 비율이 큽니다. /28 은 16개 중 다섯이 사라집니다.

쓸 수 있는 자리는 어디까지인가

사설로 쓸 수 있는 대역 전부를 06-private.txt 에 적고, allocations.txt 의 각 대역이 어느 사설 대역에 드는지 표시하세요. 그리고 어느 자리를 피해야 하는지 한 줄 덧붙이세요.

RFC 1918 이 셋이고, 여기에 RFC 6598 이 정한 대역이 하나 더 있습니다. 사설은 아니지만 인터넷으로 라우팅되지 않아 사내에서 쓸 수 있습니다.

피할 자리도 함께 적으세요. 10.0.0.0/16192.168.0.0/24누구나 먼저 고르는 대역이라, 언젠가 이어야 할 상대와 겹칠 확률이 가장 높습니다.

표가 아니라 규칙을 남긴다

다음 사람이 문서를 안 보고도 스스로 대역을 고를 수 있는 규칙07-decide.md 에 적으세요. 리전·AZ·용도 세 단위 각각에 어떤 크기를 쓸지와, 왜 넉넉하게 잡는지를 함께 씁니다.

"어느 팀이 어느 대역을 쓴다" 는 표는 곧 낡습니다. 대신 "리전마다 /16, AZ 마다 /20, 용도마다 /24" 처럼 규칙을 적어 두면 표를 안 봐도 충돌하지 않습니다.

왜 크게 잡는지도 적으세요. IP 는 공짜이고 부족은 비쌉니다 — 파드마다 IP 를 쓰는 컨테이너 네트워크를 붙이는 순간 /24 는 바닥납니다.