LabHub
배우기 러닝패스 코스

Network Fundamentals — Hands-on in a Linux VM

Read Interfaces and Addresses, Cut Subnets

LabHub 에서 이어서 보기

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

이 실습은 VM 에서 돕니다

우분투 24.04 VM 한 대입니다. root 이고 커널 권한이 있어서 인터페이스를 만들고 주소를 붙일 수 있습니다. 처음 뜨는 데 1~2분 걸립니다(패키지를 깔기 때문입니다).

목표

내 컴퓨터가 어떤 인터페이스로 어떤 주소를 갖고 어디로 나가는지 읽고, 서브넷을 계산하고, 인터페이스를 직접 만들어 주소를 붙입니다.

왜 중요한가

"같은 서브넷인가" 는 네트워크에서 가장 먼저 갈리는 질문입니다. 같으면 ARP 로 직접 부르고, 다르면 게이트웨이에 맡깁니다. 그래서 마스크를 하나 틀리면 옆 자리 컴퓨터가 지구 반대편이 되고, 게이트웨이 주소를 다른 대역에 적으면 "Network is unreachable" 이 납니다. 이 계산은 방화벽 규칙·쿠버네티스 파드 대역·VPC 설계의 바닥이라, 여기서 손에 익혀 두면 뒤의 모든 실습이 쉬워집니다.

단계

  1. ip -br link 결과를 /root/ip/links.txt 에 저장하세요. lo 와 기본 경로가 나가는 인터페이스(이 VM 은 enp1s0)가 UP 으로 보여야 합니다.
  2. 기본 경로 인터페이스의 IPv4 주소를 프리픽스와 함께 /root/ip/addr.txt 에 한 줄로 저장하세요(예: 10.0.2.2/24 꼴).
  3. 172.16.37.200/20 을 계산해 /root/ip/calc.txtnetwork=·broadcast=·first=·last=·hosts= 다섯 줄로 저장하세요.
  4. 10.42.0.0/24/26 넷으로 나눠 /root/ip/split.txt 에 한 줄에 하나씩 네트워크/26 첫호스트 마지막호스트 로 적으세요.
  5. 더미 인터페이스 lab0 을 만들어 192.0.2.10/28 을 붙이고 UP 하세요.
  6. lab0 에 두 번째 주소 192.0.2.20/28 을 더하고 ip -br -4 addr show lab0 결과를 /root/ip/lab0.txt 에 저장하세요.
  7. 다섯 쌍이 같은 서브넷인지 판정해 /root/ip/pairs.txt주소/프리픽스 상대주소 same|different 로 적으세요. 쌍은 10.0.0.5/24 10.0.0.200, 10.0.1.5/24 10.0.0.200, 192.168.1.77/25 192.168.1.130, 172.16.5.9/12 172.31.0.1, 172.16.5.9/16 172.31.0.1 입니다.
  8. /root/ip/report.mduplink=·address=·gateway= 세 줄과 함께 게이트웨이가 왜 반드시 같은 서브넷에 있어야 하는지를 적으세요.

참고

인터페이스 목록

ip -br link 결과를 /root/ip/links.txt 에 저장하세요. lo 와 기본 경로가 나가는 인터페이스가 UP 으로 보여야 합니다.

mkdir -p /root/ip 먼저. -br 은 brief 로, 인터페이스마다 이름·상태·MAC 한 줄입니다. 기본 경로 인터페이스는 ip route show defaultdev 뒤에 있습니다.

내 주소와 프리픽스

기본 경로 인터페이스의 IPv4 주소를 프리픽스와 함께 /root/ip/addr.txt 에 한 줄로 저장하세요.

ip -br -4 addr show <인터페이스> 의 세 번째 열이 주소/프리픽스 입니다. JSON 이 편하면 ip -j addr show <인터페이스> | jq.addr_info[].local.prefixlen 을 뽑으세요.

서브넷 계산

172.16.37.200/20 을 계산해 /root/ip/calc.txtnetwork=·broadcast=·first=·last=·hosts= 다섯 줄로 저장하세요.

ipcalc 172.16.37.200/20 이 전부 계산해 줍니다. /20 은 세 번째 옥텟의 앞 4비트까지가 네트워크라, 37 은 32~47 블록 안에 있습니다. hosts 는 전체에서 네트워크·브로드캐스트 둘을 뺀 수입니다.

서브넷 나누기

10.42.0.0/24/26 넷으로 나눠 /root/ip/split.txt 에 한 줄에 하나씩 네트워크/26 첫호스트 마지막호스트 로 적으세요.

/24 에서 /26 으로 2비트를 빌리면 64개짜리 블록 넷이 됩니다. 블록 경계는 0·64·128·192 입니다. 각 블록의 첫 호스트는 네트워크+1, 마지막은 브로드캐스트-1 입니다.

인터페이스를 만들어 주소 붙이기

더미 인터페이스 lab0 을 만들어 192.0.2.10/28 을 붙이고 UP 하세요.

ip link add lab0 type dummyip addr add 192.0.2.10/28 dev lab0ip link set lab0 up. 더미는 케이블이 없으니 상태가 UNKNOWN 으로 보여도 플래그에 UP 이 있으면 켜진 것입니다.

한 인터페이스에 주소 둘

lab0 에 두 번째 주소 192.0.2.20/28 을 더하고 ip -br -4 addr show lab0 결과를 /root/ip/lab0.txt 에 저장하세요.

ip addr add 를 한 번 더 하면 됩니다. 인터페이스 하나에 주소는 얼마든지 붙습니다. 저장한 파일에 두 주소가 모두 보여야 합니다.

같은 서브넷인가

다섯 쌍이 같은 서브넷인지 판정해 /root/ip/pairs.txt주소/프리픽스 상대주소 same|different 로 적으세요. 쌍은 10.0.0.5/24 10.0.0.200, 10.0.1.5/24 10.0.0.200, 192.168.1.77/25 192.168.1.130, 172.16.5.9/12 172.31.0.1, 172.16.5.9/16 172.31.0.1 입니다.

판정은 '상대 주소가 내 네트워크 안에 있는가' 입니다. /25 는 128 에서 갈리고, /12 는 172.16~172.31 을 한 덩어리로 봅니다. 파이썬 ipaddress.ip_address(b) in ipaddress.ip_network(a, strict=False) 로 검산하세요.

무엇을 배웠나

/root/ip/report.mduplink=·address=·gateway= 세 줄과 함께 게이트웨이가 왜 반드시 같은 서브넷에 있어야 하는지를 적으세요.

uplink 는 기본 경로 인터페이스 이름, address 는 2단계의 값, gateway 는 ip route show defaultvia 뒤 주소입니다. 설명에는 ARP 가 같은 링크에만 닿는다는 점이 들어가야 합니다.