← 홈으로

01장. L2 인접성 & ARP

--:--

1. MAC 주소와 IP 주소

주소가 왜 두 개나 필요할까요? 이걸 알아야 "케이블은 꽂혀 있는데 왜 ARP가 안 되지?"가 보이기 시작합니다.

배달에는 층이 둘이에요.

  • IP 주소 (L3): 우리가 설정으로 붙이는 논리 주소 — 편지 봉투의 "어디로". 예: 10.10.10.2
  • MAC 주소 (L2): NIC(랜카드)에 공장에서 박힌 고유 번호 — 옆방까지 손으로 건네줄 때 쓰는 이름. 예: aa:c1:ab:21:22:8d

이더넷 프레임은 결국 목적지 MAC으로 전달됩니다. 그런데 우리는 보통 목적지 IP만 알죠.
그래서 "그 IP의 MAC이 뭐야?"를 먼저 물어야 합니다 → 그 질문이 ARP예요.

브로드캐스트 도메인(같은 구간에서 전원에게 외치면 닿는 범위) = 스위치(브리지)에 같이 물린 포트들.
목적지가 같은 서브넷이면 ARP로 MAC을 구해 직접 전달하고, 다른 서브넷이면 라우터로 넘깁니다.

2. ARP — IP를 MAC으로

IP 통신의 첫 단추입니다. 캐시를 비우고 ping 한 번이면 눈에 보여요.

h1이 10.10.10.2로 보낼 때:

  1. h1 → 브로드캐스트(전원에게): who-has 10.10.10.2 tell 10.10.10.1
  2. 그 IP를 가진 h2만 유니캐스트(한 명에게) 응답: 10.10.10.2 is-at aa:c1:ab:…
  3. h1은 IP↔MAC을 ARP 캐시(ip neigh)에 저장하고, 이후엔 그 MAC으로 프레임을 보냅니다

단, 같은 서브넷일 때만 ARP를 시도합니다. 다른 서브넷이면 커널이 ARP조차 안 해요 — 단계 ③에서 그 지문을 봅니다.

3. 서브넷 마스크 — 판정자

"같은 네트워크냐?"는 케이블이 아니라 IP+마스크가 답합니다. 이 판정이 틀리면 ARP조차 시작 안 해요.

10.10.10.1/24/24가 마스크예요. 커널은 목적지 IP를 자기 IP/마스크로 계산해 같은 동네면 "직접", 아니면 "게이트웨이(라우터)로"라고 판단합니다.

  • 같은 서브넷 → ARP로 직접 전달
  • 다른 서브넷 → 라우터로 (없으면 즉시 Network unreachable)

핵심: 같은 스위치에 꽂혀 있어도 서브넷이 다르면 L2 직행은 없습니다. 물리 = 논리라고 착각하지 마세요.

터미널 연결 준비됨
우측 상단의 [실습 환경 시작] 버튼을 누르면 이 영역에 Xterm.js 웹 터미널이 로드됩니다.