🌐 IP 주소와 MAC 주소
1️⃣ 왜 주소가 필요한가?
-
네트워크에서 장치들이 서로 대화하려면 “누구에게 보내야 하는지” 를 알아야 함
-
현실 비유
- IP 주소 = 집 주소 (어느 동네, 어느 집)
- MAC 주소 = 주민등록번호 (그 집 안의 특정 사람)
2️⃣ IP 주소 (논리적 주소)
- 네트워크에서 장치를 구분하는 위치 정보
- IPv4 : 32비트,
192.168.0.10같은 형태 (현재 대부분 사용) - IPv6 : 128비트, 주소 부족 문제 해결용 (아직 IPv4 중심)
3️⃣ MAC 주소 (물리적 주소)
- 네트워크 카드(NIC)에 새겨진 고유 식별 번호
- 48비트, 16진수 6쌍 (예:
00:1A:2B:3C:4D:5E) - 전 세계적으로 유일, 바뀌지 않음
4️⃣ IP와 MAC의 관계
- IP 주소는 네트워크에서 “누구에게 보낼지” 를 정함
- 하지만 실제 데이터 전송은 MAC 주소로 이루어짐
- 즉, IP = 논리적 목적지 / MAC = 실제 수신자
5️⃣ ARP(Address Resolution Protocol)
IP와 MAC을 이어주는 다리 역할
- 상황: PC1이
192.168.0.20에 데이터 보내고 싶음
- PC1: “192.168.0.20의 MAC 주소 누구야?” (ARP 요청, 브로드캐스트)
- PC2: “그건 나야, MAC은 BB:BB:BB” (ARP 응답)
- PC1 → PC2: 실제 데이터 전송 (목적지 MAC = BB:BB:BB)
6️⃣ 시각적 흐름 (ARP 예시)
sequenceDiagram
participant PC1 as PC1 (IP 192.168.0.10, MAC AA:AA)
participant PC2 as PC2 (IP 192.168.0.20, MAC BB:BB)
participant SW as 스위치
PC1->>SW: ARP 요청 (192.168.0.20 누구야?)
SW->>PC2: 브로드캐스트 전달
PC2->>SW: 응답 (내 MAC=BB:BB)
SW->>PC1: 응답 전달
PC1->>PC2: 실제 데이터 전송 (목적지 MAC=BB:BB)
✅ 요약
- IP 주소 = 집 주소 (논리적 위치)
- MAC 주소 = 주민등록번호 (고유 식별자)
- 데이터 통신은 IP로 목적지를 찾고, MAC으로 최종 전달
- ARP = IP 주소를 MAC 주소로 변환해주는 중간 과정
🌐 IP 주소와 MAC 주소
1️⃣ IP 주소 (논리 주소)
- 네트워크 상에서 장치를 구분하기 위한 논리적인 주소
- 사람이 읽고 관리하기 쉽도록 숫자로 표현 (예:
192.168.0.10) - 네트워크 관리자나 DHCP 서버가 변경 가능
- 같은 네트워크 대역 안에서만 직접 통신 가능
👉 집 주소와 비슷 (동네와 번지가 있어서 위치를 알 수 있음)
2️⃣ MAC 주소 (물리 주소)
-
네트워크 카드(NIC) 에 새겨진 고유 식별자 (제조 시 하드웨어에 할당)
-
48비트(6바이트)로 구성, 16진수로 표현
- 예:
00:1A:2B:3C:4D:5E
- 예:
-
전 세계에서 중복되지 않음 (제조사 코드 + 일련번호)
-
하드웨어 수준에서 실제 통신 시 사용
👉 사람의 주민등록번호와 비슷 (바뀌지 않는 유일한 값)
3️⃣ IP ↔ MAC 관계 (ARP 프로토콜)
- 같은 네트워크 안에서 IP만 알면 바로 통신할 수 없음
- 실제 데이터는 MAC 주소로 전송됨
- 그래서 장치는 ARP(Address Resolution Protocol) 으로 “이 IP를 가진 장치의 MAC 주소가 뭐지?” 하고 물어봄
예:
- PC1이
192.168.0.20에 데이터를 보내려 함 - PC1이 네트워크에 ARP 요청: “192.168.0.20 가진 MAC 주소 알려줘”
- 해당 PC가 MAC 주소 응답:
00:1A:2B:3C:4D:5E - 실제 데이터는 MAC 주소를 목적지로 해서 전송
4️⃣ 그림으로 표현
sequenceDiagram
participant PC1 as PC1 (192.168.0.10, MAC AA:AA)
participant PC2 as PC2 (192.168.0.20, MAC BB:BB)
participant SW as 스위치
PC1->>SW: ARP 요청 (192.168.0.20 누구야?)
SW->>PC2: 브로드캐스트 전달
PC2->>SW: 나는 192.168.0.20, MAC=BB:BB
SW->>PC1: 응답 전달
PC1->>PC2: 실제 데이터 전송 (목적지 MAC=BB:BB)
🌐 IP 주소의 구조
1️⃣ IP 주소의 구성
IPv4 주소(32비트)는 두 부분으로 나뉩니다:
- 네트워크 주소(Network Part) : 네트워크 자체를 구분
- 호스트 주소(Host Part) : 네트워크 안에서 개별 장치 구분
예: 192.168.10.15 (서브넷 마스크 255.255.255.0 = /24)
- 네트워크 주소 =
192.168.10 - 호스트 주소 =
15
2️⃣ 호스트 수 계산
호스트 영역이 n비트라면:
👉 사용 가능한 호스트 수 = 2^n - 2
-
-2이유:- 전부 0 = 네트워크 주소 (예약됨)
- 전부 1 = 브로드캐스트 주소 (예약됨)
예: /24 → 호스트 영역 8비트 → 2^8 - 2 = 254대 사용 가능
3️⃣ 클래스풀(Classful) 주소 체계
과거에는 주소를 크게 A/B/C 클래스로 나눠 사용했습니다.
| 클래스 | 시작 비트 | 첫 옥텟 범위 | 네트워크/호스트 구분 | 호스트 수 |
|---|---|---|---|---|
| A | 0xxx | 0 ~ 127 | 네트워크(8) + 호스트(24) | 약 1,600만 |
| B | 10xx | 128 ~ 191 | 네트워크(16) + 호스트(16) | 약 6만 5천 |
| C | 110x | 192 ~ 223 | 네트워크(24) + 호스트(8) | 약 254 |
4️⃣ 클래스가 생긴 이유
- 호스트 수가 너무 크면 → 주소 낭비
- 호스트 수가 너무 작으면 → 주소 부족
- 그래서 필요에 따라 A/B/C 클래스를 정해 할당
5️⃣ 특별히 사용할 수 없는 주소
- 호스트 부분 = 0 → 네트워크 자체 주소
- 호스트 부분 = 1 → 브로드캐스트 주소
예: 192.168.10.0/24
192.168.10.0= 네트워크 주소192.168.10.255= 브로드캐스트 주소- 사용 가능:
192.168.10.1 ~ 192.168.10.254
6️⃣ 한계와 CIDR
-
클래스 방식은 단순했지만,
- 예: 200대 필요한데 C 클래스(254개) → 애매하게 낭비
- 예: 3000대 필요한데 B 클래스(65,534개) → 심각한 낭비
-
결국 주소 낭비 문제는 여전히 존재
👉 그래서 요즘은 CIDR(Classless Inter-Domain Routing) 방식을 사용
/n(비트 수)로 네트워크 크기를 유연하게 나눔- 예:
/26= 호스트 62대,/28= 호스트 14대
📘 서브넷 마스크와 CIDR 이해하기
1️⃣ 서브넷 마스크란?
-
IP 주소는 네트워크 부분 + 호스트 부분으로 나눔
-
구분 기준은 서브넷 마스크
- 네트워크 부분 = 1
- 호스트 부분 = 0
예)
- IP:
192.168.10.15 - 서브넷 마스크:
255.255.255.0 (/24)
👉 앞 24비트는 네트워크, 뒤 8비트는 호스트
2️⃣ 클래스별 기본 서브넷 마스크
| 클래스 | 예시 IP | 기본 서브넷 마스크 | 네트워크/호스트 비트 | 호스트 수 |
|---|---|---|---|---|
| A | 10.0.0.1 | 255.0.0.0 (/8) | 8 / 24 | 약 1,600만 |
| B | 172.16.0.1 | 255.255.0.0 (/16) | 16 / 16 | 약 65,534 |
| C | 192.168.1.1 | 255.255.255.0 (/24) | 24 / 8 | 약 254 |
⚠️ 규칙:
- 호스트 부분이 전부
0→ 네트워크 주소 (사용 불가) - 호스트 부분이 전부
1→ 브로드캐스트 주소 (사용 불가) - 실제 사용 가능한 호스트 수 =
2^호스트비트 - 2
3️⃣ CIDR 표기법 (현대 방식)
- 형식:
IP주소/숫자 /숫자= 서브넷 마스크에서 1의 개수
예시:
192.168.10.0/24→ 255.255.255.0192.168.10.0/26→ 255.255.255.192 (62대 사용 가능)
4️⃣ 실습 예제
📌 192.168.0.2/25
- 서브넷 마스크:
255.255.255.128 - 네트워크 비트 = 25 → 호스트 비트 = 7
- 가능한 호스트 수 =
2^7 - 2 = 126
| 구분 | 값 |
|---|---|
| 네트워크 주소 | 192.168.0.0 |
| 브로드캐스트 주소 | 192.168.0.127 |
| 할당 가능한 호스트 | 192.168.0.1 ~ 192.168.0.126 |
👉 즉, 192.168.0.2/25는 192.168.0.0 ~ 192.168.0.127 네트워크 안에 있는 주소이고,
실제로는 126개의 호스트가 사용 가능해요.
📘 정적 IP, 동적 IP, DHCP, 그리고 NAT
1️⃣ 정적 IP (Static IP)
-
관리자가 직접 지정한 고정된 주소
-
항상 변하지 않음
-
사용 예시:
- 회사 서버 (웹서버, DB 서버)
- 네트워크 프린터 (모든 직원이 같은 주소로 접근해야 함)
- 라우터/스위치 같은 장비 관리
👉 장점: 변하지 않아서 접속하기 쉬움
👉 단점: 사람이 직접 설정해야 하고, 많아지면 관리 힘듦
2️⃣ 동적 IP (Dynamic IP)
- 네트워크에 연결할 때 자동으로 주소를 받는 방식
- 보통 DHCP 서버가 알아서 배분해줌
👉 장점: 편리, 자동 관리, 충돌 없음
👉 단점: 시간이 지나면 주소가 바뀔 수 있음 → 서버용으로는 부적합
3️⃣ DHCP (Dynamic Host Configuration Protocol)
- IP 주소를 자동으로 배분하는 기능
- 네트워크에 연결된 PC, 노트북, 스마트폰이 “주소 주세요!” 하면 → DHCP 서버가 IP, 게이트웨이, DNS까지 세트로 줌
DHCP 서버는 누구?
- 작은 네트워크(집, 소규모 회사) → 보통 라우터(공유기)가 DHCP 서버 역할을 함
- 큰 회사 → 별도의 DHCP 서버(Windows Server, Linux DHCP)에서 관리
4️⃣ NAT (Network Address Translation)
- 사설 IP ↔ 공인 IP 변환 기술
- 내부 PC는 보통 사설 IP(
192.168.x.x)를 쓰고, 인터넷은 공인 IP가 필요함 - 라우터(NAT)가 중간에서 변환해줌
👉 예시:
- 내부 PC1:
192.168.0.10 - 내부 PC2:
192.168.0.11 - 라우터의 공인 IP:
203.0.113.25
PC1, PC2가 인터넷에 접속할 때 → NAT을 거쳐 모두 203.0.113.25로 나감
5️⃣ 전체 흐름 예시
📌 PC가 처음 네트워크에 연결해서 인터넷에 접속하는 과정
- PC → “IP 주소 주세요!” (DHCP Discover)
- 라우터(DHCP 서버) → “너 192.168.0.10 써” (DHCP Offer/ACK)
- PC는 IP 주소를 받고 내부 네트워크에 합류
- PC가 구글(8.8.8.8)에 접속하려고 함
- 라우터(NAT)가
192.168.0.10을203.0.113.25로 변환해서 인터넷으로 보냄 - 구글이 응답할 때도 NAT이 다시 변환해서 PC에게 돌려줌
6️⃣ 그림으로 이해하기
graph TD
I[인터넷 공인 IP: 203.0.113.25] <--NAT--> R[라우터: NAT + DHCP]
R --DHCP--> PC1[PC1: 192.168.0.10 동적 할당]
R --DHCP--> PC2[PC2: 192.168.0.11 동적 할당]
R --> P1[프린터: 192.168.0.200 정적 IP]
R --> S1[사내 서버: 192.168.0.100 정적 IP]
- DHCP: 내부 장치에 주소를 자동으로 배분
- NAT: 공인 IP 하나로 내부 장치 여러 대를 인터넷에 연결
🌐 공인 IP와 사설 IP, 그리고 NAT
1️⃣ 공인 IP (Public IP)
-
인터넷에서 직접 사용되는 주소
-
전 세계에서 유일해야 함 (중복 불가)
-
ISP(통신사)가 고객에게 할당
-
예:
203.0.113.25,8.8.8.8(구글 DNS) -
특징:
- 인터넷 어디서나 접근 가능
- 주소 개수가 한정되어 있음 (IPv4 부족 문제 발생)
2️⃣ 사설 IP (Private IP)
- 회사나 가정 내부 네트워크에서만 사용
- 외부 인터넷에서는 직접 사용 불가
- 누구나 자유롭게 쓸 수 있음 (중복 가능)
사설 IP 대역 (RFC1918 규정):
10.0.0.0 ~ 10.255.255.255(/8)172.16.0.0 ~ 172.31.255.255(/12)192.168.0.0 ~ 192.168.255.255(/16)
예: 192.168.0.10, 10.1.1.5
👉 그래서 집에서 쓰는 공유기 IP는 보통 192.168.x.x
3️⃣ 왜 공인/사설로 나눴을까?
- 인터넷에 연결된 모든 장치에 공인 IP를 주기에는 IPv4 주소가 부족
- 그래서 내부망은 사설 IP를 쓰고,
- 외부와 연결할 때만 공인 IP 하나(or 소수)를 사용
4️⃣ NAT (Network Address Translation)
NAT = 사설 IP ↔ 공인 IP 변환 기술
-
라우터(공유기, pfSense)가 수행
-
내부 장치가 인터넷에 나갈 때:
- 사설 IP(192.168.0.10) → 라우터가 가진 공인 IP(203.0.113.25)로 변환
-
외부 서버가 응답할 때:
- 공인 IP로 들어온 데이터 → 내부의 올바른 사설 IP로 전달
5️⃣ NAT의 종류
-
SNAT (Source NAT)
- 내부 → 외부로 나갈 때 출발지 주소를 공인 IP로 바꿔줌 (일반적인 인터넷 사용)
-
DNAT (Destination NAT)
- 외부 → 내부로 들어올 때 목적지 주소를 사설 IP로 변환 (포트포워딩)
- 예: 회사 내부 웹서버를 외부에서 접속 가능하게 만들 때 사용
6️⃣ 예시 (가정/회사 네트워크)
graph TD
PC1[PC1 192.168.0.10] --> R1[라우터 NAT 공인 IP: 203.0.113.25]
PC2[PC2 192.168.0.11] --> R1
R1 --> I[인터넷 예: Google 8.8.8.8]
- 내부 PC1, PC2는 사설 IP만 가짐
- 라우터는 인터넷과 연결된 공인 IP 하나만 가짐
- NAT 덕분에 PC1, PC2 모두 인터넷에 접속 가능
✅ 요약
-
공인 IP: 인터넷에서 직접 통신 가능한 유일한 주소
-
사설 IP: 내부 전용 주소 (외부에서는 직접 통신 불가)
-
NAT: 사설 IP ↔ 공인 IP 변환 기술
- 내부 장치 여러 대가 공인 IP 하나를 공유해 인터넷 사용 가능
- 포트포워딩(DNAT)으로 외부에서 내부 서버 접속 가능
📘 특수한 목적을 위해 예약된 IP 주소
인터넷에서 모든 IP를 마음대로 쓸 수 있는 건 아닙니다.
몇몇 IP 주소들은 특별한 의미를 가지고 있어서, 일반 장치에 할당하지 않고 정해진 용도로만 사용합니다.
이걸 예약된 IP 주소라고 합니다.
1️⃣ 사설 네트워크 주소 (Private IP)
- 내부 네트워크(LAN) 전용
- 인터넷에서는 직접 사용 불가 → NAT을 거쳐야 외부와 통신 가능
| 범위 | 설명 | 사용 예 |
|---|---|---|
| 10.0.0.0 ~ 10.255.255.255 (/8) | 대규모 네트워크 | 대기업 사내망 |
| 172.16.0.0 ~ 172.31.255.255 (/12) | 중간 규모 | 연구소, 학교 |
| 192.168.0.0 ~ 192.168.255.255 (/16) | 소규모 | 가정, 소규모 사무실 |
👉 집 공유기에서 흔히 쓰는 192.168.x.x 대역이 바로 이거예요.
2️⃣ 네트워크 주소
- 호스트 비트가 전부
0 - 네트워크 자체를 의미
- 예:
192.168.0.0/24→ 네트워크 주소는192.168.0.0
3️⃣ 브로드캐스트 주소
- 호스트 비트가 전부
1 - 같은 네트워크의 모든 장치에 동시에 전송할 때 사용
- 예:
192.168.0.255
4️⃣ 루프백 주소
- 자기 자신을 의미
- 범위:
127.0.0.0/8 - 보통
127.0.0.1사용 → 내 컴퓨터 자신을 가리킴 - 테스트용:
ping 127.0.0.1
5️⃣ APIPA (자동 사설 IP)
- DHCP 서버가 없을 때 자동으로 할당
- 범위:
169.254.0.0/16 - 인터넷 불가, 같은 네트워크 장치끼리만 제한적 통신 가능
6️⃣ 멀티캐스트 주소
- 여러 장치에 동시에 데이터를 전송할 때 사용
- 범위:
224.0.0.0 ~ 239.255.255.255 - IPTV, 화상회의, 스트리밍에 활용
7️⃣ 도큐멘테이션 주소
-
문서, 예제용으로만 사용하도록 예약
-
실제 네트워크에서는 사용 불가
-
예:
192.0.2.0/24198.51.100.0/24203.0.113.0/24
8️⃣ 0.0.0.0 관련 주소
-
0.0.0.0/8
- 범위:
0.0.0.0 ~ 0.255.255.255 - 특별한 상황에서만 사용 (예: 아직 자기 IP를 모를 때 출발지 주소로 사용)
- 범위:
-
0.0.0.0/0
- “모든 IP 주소”를 의미
- 라우팅 테이블에서 디폴트 라우트로 쓰임
- 즉, “목적지를 모르겠으면 이쪽(게이트웨이)으로 보내라”는 규칙
✅ 요약 표
| 구분 | 범위/예시 | 의미/용도 | 장치에 할당 가능 |
|---|---|---|---|
| 사설 IP | 10.x.x.x, 172.16~31.x.x, 192.168.x.x | 내부망 전용 | ❌ (인터넷 직접 불가) |
| 네트워크 주소 | 예: 192.168.0.0 (/24) | 네트워크 자체 | ❌ |
| 브로드캐스트 주소 | 예: 192.168.0.255 (/24) | 모든 장치에 전송 | ❌ |
| 루프백 | 127.0.0.0/8 (보통 127.0.0.1) | 자기 자신 | ❌ |
| APIPA | 169.254.0.0/16 | DHCP 실패 시 자동 할당 | ❌ |
| 멀티캐스트 | 224.0.0.0 ~ 239.255.255.255 | 그룹 통신 | ❌ |
| 도큐멘테이션 | 192.0.2.0/24 등 | 문서/예시 | ❌ |
| 0.0.0.0/8 | 0.0.0.0 ~ 0.255.255.255 | 특별 용도(출발지 없음 등) | ❌ |
| 0.0.0.0/0 | 모든 IP 주소 | 디폴트 라우트 | ❌ |
📘 허브(Hub)
1️⃣ 허브란?
- 네트워크 장비의 가장 기본 형태
- 여러 PC를 단순히 전기적으로 연결 → 모든 포트에 신호를 똑같이 전달
- 네트워크의 멀티탭 같은 역할
👉 예: 내가 보낸 데이터가 모든 포트로 퍼짐
→ 내 PC가 보낸 데이터가 프린터, 다른 PC 등 모든 장치에게 다 전달됨
→ 목적지가 아닌 장치는 그냥 무시
2️⃣ 허브의 문제점
-
네트워크 효율 저하
- 모든 장치가 동시에 데이터를 보내면 충돌(Collision) 발생
- 충돌이 많아질수록 속도가 급격히 느려짐
-
반이중(Half-Duplex)만 지원
- 동시에 송신과 수신이 불가능
- 예: 내가 말할 때는 듣지 못하고, 듣고 있을 때는 말할 수 없음
-
보안 문제
- 데이터가 모든 포트로 전달되므로 스니핑(도청) 가능
3️⃣ CSMA/CD (Carrier Sense Multiple Access with Collision Detection)
허브 시절 충돌 문제를 해결하기 위해 나온 방식
- Carrier Sense: 전송하기 전에 네트워크가 사용 중인지 확인
- Multiple Access: 여러 장치가 네트워크를 공유
- Collision Detection: 동시에 전송하면 충돌 발생 → 충돌 감지 후 일정 시간 랜덤 대기 → 재전송
👉 마치 여러 사람이 동시에 말하려다 부딪히면 “아, 겹쳤네” 하고 서로 잠깐 기다린 뒤 다시 말하는 것과 같음
4️⃣ 스위치의 등장
- 스위치는 허브의 단점을 보완한 장비
- 데이터를 목적지 포트에만 전달 (MAC 주소 기반)
- 전이중(Full-Duplex) 통신 지원 → 동시에 송신과 수신 가능
- 충돌이 사라지고 속도가 빨라짐
- 현재는 허브 대신 대부분 스위치를 사용
5️⃣ 그림으로 비교
flowchart TD
subgraph HUB[허브]
A1[PC A] --> H[Hub]
B1[PC B] --> H
C1[PC C] --> H
H --> A1
H --> B1
H --> C1
end
subgraph SW[스위치]
A2[PC A] <--> S[Switch]
B2[PC B] <--> S
C2[PC C] <--> S
end
- 허브: 모든 데이터가 모든 장치로 퍼짐
- 스위치: 목적지 장치에만 전달
📘 스위치(Switch)와 VLAN
1️⃣ 스위치란?
- 흔히 말하는 “스위치”는 보통 L2 스위치(데이터링크 계층)
- 허브와 달리, 목적지 장치에게만 데이터 전달
- 전이중(Full-Duplex) 통신 지원 → 동시에 송수신 가능
- 이 때문에 CSMA/CD 프로토콜이 필요 없음 (충돌 없음)
👉 허브와의 차이:
- 허브 = 멀티탭, 무조건 전체 방송
- 스위치 = 똑똑한 우체국, 목적지만 골라서 배달
2️⃣ MAC 주소 테이블
스위치는 MAC 주소 테이블을 만들어서 장치와 포트를 매핑합니다.
- 내 PC(MAC: AA:BB:CC…) → 스위치 Port 1
- 프린터(MAC: DD:EE:FF…) → 스위치 Port 5
👉 이렇게 “누가 어디 있는지” 주소록을 자동으로 작성
3️⃣ MAC 주소 학습 과정
-
플러딩(Flooding)
- 처음에는 목적지를 모르니까, 프레임을 모든 포트에 뿌림
-
포워딩(Forwarding) & 필터링(Filtering)
- 목적지 MAC이 테이블에 있으면 해당 포트로만 전송 (포워딩)
- 다른 포트로는 보내지 않음 (필터링)
-
에이징(Aging)
- 일정 시간 동안 통신이 없으면 테이블에서 삭제
- (장치가 이동하거나 꺼졌을 때 반영하기 위함)
4️⃣ VLAN (가상 LAN)
스위치는 기본적으로 모든 포트가 같은 네트워크에 속함.
하지만 VLAN을 사용하면 하나의 스위치를 여러 개의 네트워크처럼 나눌 수 있음.
👉 예:
- 개발팀 PC는 VLAN 10
- 마케팅팀 PC는 VLAN 20
- 물리적으로 같은 스위치에 꽂혀 있어도 서로 통신 불가
5️⃣ VLAN의 종류
-
포트 기반 VLAN (Port-based VLAN)
- 특정 포트를 특정 VLAN에 할당
- 가장 많이 쓰이는 방식
- 예: Port 1~10 → VLAN 10, Port 11~20 → VLAN 20
-
MAC 기반 VLAN
- 장치의 MAC 주소를 기준으로 VLAN 할당
- 포트가 바뀌어도 같은 VLAN에 속하게 가능
6️⃣ VLAN 트렁킹 (VLAN Trunking)
- VLAN은 스위치 내부에서는 나눠지지만, 스위치 간 연결 시에도 구분이 필요
- 이때 사용하는 것이 트렁크 포트(Trunk Port)
👉 특징:
- 트렁크 포트는 여러 VLAN의 데이터를 동시에 전달
- VLAN을 구분하기 위해 VLAN 태그를 붙여 전송
- 이때 사용하는 표준: 802.1Q VLAN Tagging
7️⃣ 그림으로 이해하기
flowchart TD
subgraph Devices1["1층 사무실 장비"]
PC1["개발 PC1"]
PC2["개발 PC2"]
PC3["마케팅 PC1"]
PC4["마케팅 PC2"]
PC5["마케팅 PC3"]
PR1["컬러 프린터"]
AP1["무선 AP"]
end
subgraph SwitchA["스위치 A (1층)"]
direction LR
P1A["Port1<br/>VLAN1"]
P2A["Port2<br/>VLAN1"]
P3A["Port3<br/>VLAN2"]
P4A["Port4<br/>VLAN2"]
P5A["Port5<br/>VLAN2"]
P6A["Port6<br/>VLAN3"]
P7A["Port7<br/>VLAN3"]
P8A["Port8<br/>Trunk"]
end
subgraph SwitchB["스위치 B (2층)"]
direction LR
P1B["Port1<br/>VLAN1"]
P2B["Port2<br/>VLAN1"]
P3B["Port3<br/>VLAN2"]
P4B["Port4<br/>VLAN2"]
P5B["Port5<br/>VLAN2"]
P6B["Port6<br/>VLAN2"]
P7B["Port7<br/>VLAN3"]
P8B["Port8<br/>Trunk"]
end
subgraph Devices2["2층 사무실 장비"]
PC6["개발 PC3"]
PC7["개발 PC4"]
PC8["마케팅 PC4"]
PC9["마케팅 PC5"]
PC10["영업 PC1"]
PC11["영업 PC2"]
ADMIN["관리자 PC"]
end
PC1 --> P1A
PC2 --> P2A
PC3 --> P3A
PC4 --> P4A
PC5 --> P5A
PR1 --> P6A
AP1 --> P7A
P8A -.->|"모든 VLAN<br/>802.1Q 태깅"| P8B
P1B --> PC6
P2B --> PC7
P3B --> PC8
P4B --> PC9
P5B --> PC10
P6B --> PC11
P7B --> ADMIN
classDef vlan1 fill:#bbdefb,stroke:#1976d2,stroke-width:2px,color:#000
classDef vlan2 fill:#ffcdd2,stroke:#d32f2f,stroke-width:2px,color:#000
classDef vlan3 fill:#dcedc8,stroke:#689f38,stroke-width:2px,color:#000
classDef trunk fill:#fff3e0,stroke:#f57c00,stroke-width:3px,color:#000
class PC1,PC2,P1A,P2A,PC6,PC7,P1B,P2B vlan1
class PC3,PC4,PC5,P3A,P4A,P5A,PC8,PC9,PC10,PC11,P3B,P4B,P5B,P6B vlan2
class PR1,AP1,P6A,P7A,ADMIN,P7B vlan3
class P8A,P8B trunk
- SW1과 SW2 사이 연결은 트렁크 포트로 → VLAN 태그 붙여 전달
📘 라우팅(Routing)과 IP 주소의 역할
1️⃣ LAN에서 WAN으로
- 지금까지 다룬 스위치는 같은 네트워크(LAN) 안에서만 통신 가능
- 하지만 지구 반대편 컴퓨터와 통신하려면, 수많은 네트워크 장비를 거쳐야 함
- 이때 단순히 “연결”이 아니라, 최적의 경로를 선택해 전달해야 하는데 → 이것이 라우팅(Routing)
2️⃣ 라우팅(Routing)이란?
- 데이터를 목적지까지 전달하기 위해 최적의 경로(Path)를 선택하는 과정
- 라우팅을 수행하는 대표적인 장비가 바로 라우터(Router)
- 라우터는 라우팅 테이블을 참고하여, 패킷을 어디로 보낼지 결정
👉 즉, 라우팅 = 네트워크 세계의 네비게이션 🚗
3️⃣ MAC 주소만으로는 부족한 이유
-
스위치는 MAC 주소를 기반으로 같은 네트워크 안에서는 목적지를 찾을 수 있음
-
하지만 MAC 주소는 전 세계적으로 경로를 알 수 없음
- 이유: MAC 주소는 위치 정보가 없음 (단순히 장치 식별용)
-
따라서, 전 세계 어디에 있든 경로를 지정할 수 있는 논리 주소 = IP 주소가 필요
4️⃣ MAC 주소 vs IP 주소
| 구분 | MAC 주소 | IP 주소 |
|---|---|---|
| 의미 | 물리 주소 (하드웨어 고유) | 논리 주소 (네트워크 상 위치) |
| 할당 | NIC 제조 시 고정 | 수동 할당 / DHCP 자동 할당 가능 |
| 개수 | 보통 1개 고정 | 한 호스트에 여러 개 가질 수 있음 |
| 범위 | 동일 네트워크(LAN) | 네트워크 간(WAN/인터넷) |
5️⃣ IP 주소 할당
- 고정(Static): 관리자가 직접 IP 부여
- 동적(DHCP): DHCP 서버가 자동으로 IP, 서브넷 마스크, 게이트웨이 할당
- 하나의 장치가 여러 개의 IP를 가질 수도 있음 (가상 인터페이스, 멀티홈 등)
6️⃣ 주소 해석: ARP (Address Resolution Protocol)
LAN 안에서 IP만으로 통신하려면, 실제로는 상대방 MAC 주소를 알아야 함.
-
동일 네트워크 내:
- 내 PC → ARP 요청: “192.168.0.5는 누구냐? MAC 주소 알려줘”
- 해당 장치가 MAC 주소 응답 → 통신 시작
-
다른 네트워크에 있는 경우:
- 내 PC는 목적지의 MAC을 모름 → 대신 게이트웨이(라우터)의 MAC 주소를 사용
- 라우터가 패킷을 받아서 다음 라우터로 전달 (계속 반복)
👉 정리:
- 같은 네트워크 → 목적지 MAC 주소 직접 획득 (ARP)
- 다른 네트워크 → 게이트웨이 MAC 주소 획득 → 라우터 통해 전달
📘 라우터와 라우팅 테이블
1️⃣ 라우팅 테이블이란?
- 라우터가 패킷을 전달할 때 참고하는 경로 정보 목록
- “어떤 네트워크 대역은 어느 인터페이스로 가야 한다”는 지도를 저장
👉 쉽게 말해, 네트워크용 주소록 + 네비게이션 지도
2️⃣ 라우팅 테이블의 주요 항목
라우팅 테이블에는 보통 다음과 같은 정보가 들어있습니다:
-
Destination (목적지 네트워크)
- 예:
192.168.1.0/24
- 예:
-
Netmask (서브넷 마스크)
- 네트워크 범위를 지정 (예:
255.255.255.0)
- 네트워크 범위를 지정 (예:
-
Gateway (게이트웨이 주소)
- 목적지로 가려면 거쳐야 할 다음 라우터의 주소
-
Interface (출구 인터페이스)
- 어느 네트워크 카드(포트)로 내보낼지
-
Metric (비용/우선순위)
- 여러 경로가 있을 때, 값이 작은 경로를 우선 사용
3️⃣ 디폴트 라우트(Default Route)
- 라우팅 테이블에 없는 목적지 네트워크로 가는 경우, 디폴트 라우트를 사용
- 표기:
0.0.0.0/0 - 보통 인터넷으로 나갈 때 쓰이는 기본 경로
- 예: 내 PC에서 구글(8.8.8.8) 접속 → 라우팅 테이블에 없으니 디폴트 라우트(게이트웨이)로 보냄
4️⃣ 정적 라우팅 (Static Routing)
- 관리자가 직접 경로를 등록
- 장점: 단순, 예측 가능, 작은 네트워크에 적합
- 단점: 네트워크 구조가 바뀌면 수동으로 다 수정해야 함
👉 예시:
192.168.2.0/24네트워크로 가려면192.168.1.1게이트웨이로 보내라
5️⃣ 동적 라우팅 (Dynamic Routing)
- 라우터끼리 라우팅 정보를 교환하면서 자동으로 최적 경로를 학습
- 대규모 네트워크(기업, ISP)에서 사용
- 장점: 장애 발생 시 자동으로 우회 경로 선택
- 단점: 프로토콜에 따른 부하 발생 (CPU, 대역폭 소모)
👉 대표적인 동적 라우팅 프로토콜:
- RIP (거리 벡터, 홉 수 기반)
- OSPF (링크 상태, 대규모 네트워크에 강함)
- BGP (인터넷 백본에서 사용, ISP 간 경로 교환)