Skip to content

KR_Net_OSI_Routing

somaz edited this page Mar 30, 2026 · 1 revision

네트워크 OSI 7계층 & 라우팅 (Q6-Q12)

OSI 7계층 & 라우팅 (6~12번)


Q6. OSI 7계층과 TCP/IP 4계층의 캡슐화 과정을 설명하세요.

데이터 송신 시 캡슐화 (Encapsulation):

Application Layer (L7):  "Hello" 
                         ↓
Presentation Layer (L6): [Encoding] "Hello"
                         ↓
Session Layer (L5):      [Session ID] + Data
                         ↓
Transport Layer (L4):    [TCP Header (Port)] + Segment
                         ↓
Network Layer (L3):      [IP Header (Src/Dst IP)] + Packet
                         ↓
Data Link Layer (L2):    [Ethernet Header + MAC] + Frame + [FCS]
                         ↓
Physical Layer (L1):     Bits (전기 신호)

각 계층별 PDU (Protocol Data Unit):

  • L7-L5 (Application/Presentation/Session): Data
  • L4 (Transport): Segment (TCP) / Datagram (UDP)
  • L3 (Network): Packet
  • L2 (Data Link): Frame
  • L1 (Physical): Bits

TCP/IP 4계층 매핑:

OSI 7계층                  TCP/IP 4계층
─────────────────────────────────────────
Application (7)    ┐
Presentation (6)   ├──→  Application Layer
Session (5)        ┘
                   
Transport (4)      ───→  Transport Layer (TCP/UDP)
                   
Network (3)        ───→  Internet Layer (IP, ICMP, ARP)
                   
Data Link (2)      ┐
Physical (1)       ┘──→  Network Interface Layer

실제 HTTP 요청 예시:

1. Application: HTTP GET /index.html
2. Transport: TCP Header (Src Port: 54321, Dst Port: 80, SEQ, ACK)
3. Network: IP Header (Src: 192.168.1.10, Dst: 93.184.216.34)
4. Data Link: Ethernet Header (Src MAC: aa:bb:cc:dd:ee:ff, Dst MAC: Gateway MAC)
5. Physical: 전기 신호로 전송

디캡슐화 (Decapsulation):

  • 수신 측은 역순으로 각 계층의 헤더를 제거하며 데이터 추출

Q7. TCP 3-Way Handshake와 4-Way Handshake의 동작 원리와 상태 변화는?

TCP 3-Way Handshake (연결 수립):

Client (CLOSED)                         Server (LISTEN)
    |                                       |
    |--------- SYN (SEQ=100) -------------->| (SYN_SENT)
    |                                       | (SYN_RECEIVED)
    |<-- SYN-ACK (SEQ=200, ACK=101) --------|
    | (ESTABLISHED)                         |
    |--------- ACK (ACK=201) -------------->| (ESTABLISHED)
    |                                       |
    |========= Data Transfer ===============|

상태 변화:

  • Client: CLOSED → SYN_SENT → ESTABLISHED
  • Server: LISTEN → SYN_RECEIVED → ESTABLISHED

TCP 4-Way Handshake (연결 종료):

Client                                  Server
    |                                       |
    |--------- FIN (SEQ=300) -------------->| (FIN_WAIT_1)
    |                                       | (CLOSE_WAIT)
    |<-------- ACK (ACK=301) ---------------|
    | (FIN_WAIT_2)                          |
    |                                       |
    |<-------- FIN (SEQ=400) ---------------| (LAST_ACK)
    | (TIME_WAIT)                           |
    |--------- ACK (ACK=401) -------------->| (CLOSED)
    |                                       |
    | (2*MSL 대기 후 CLOSED)                |

TIME_WAIT 상태 (2MSL):

  • 목적: 지연된 패킷 처리, 마지막 ACK 재전송 대비
  • MSL (Maximum Segment Lifetime): 보통 30초~2분
  • 문제: 많은 연결 생성/종료 시 소켓 고갈
  • 해결: SO_REUSEADDR, Connection Pooling

Half-Close:

Client: shutdown(SHUT_WR) → 송신 종료, 수신 가능
Server: 데이터 계속 전송 가능
→ 양방향 독립적 종료 가능

비정상 종료 (RST):

RST 플래그: 즉시 연결 종료 (4-Way 없음)
사용 경우:
- 존재하지 않는 포트 접속
- 타임아웃
- 애플리케이션 강제 종료

Q8. BGP의 경로 선택 알고리즘과 AS-PATH 속성을 설명하세요.

BGP Path Selection Process (13단계):

1. Weight (Cisco 전용, 높을수록 우선)
2. Local Preference (AS 내부, 높을수록 우선)
3. Locally Originated (자체 생성 경로 우선)
4. AS-PATH Length (짧을수록 우선)
5. Origin Type (IGP > EGP > Incomplete)
6. MED (Multi-Exit Discriminator, 낮을수록 우선)
7. eBGP > iBGP
8. IGP Metric (낮을수록 우선)
9. Oldest Route (가장 오래된 경로)
10. Router ID (낮을수록 우선)
11. Cluster List Length (짧을수록 우선)
12. Neighbor IP (낮을수록 우선)

AS-PATH 속성:

AS-PATH: 65001 65002 65003
→ 패킷이 거쳐온 AS 번호 순서

목적:
1. 루프 방지 (자신의 AS 번호가 있으면 거부)
2. 경로 길이 계산
3. 라우팅 정책 적용 (특정 AS 경유 방지)

AS-PATH Prepending (트래픽 제어):

Normal:     AS-PATH: 65001
Prepended:  AS-PATH: 65001 65001 65001 (인위적으로 길게)
→ 다른 경로 선호하도록 유도

BGP Communities:

- NO_EXPORT (65535:65281): 다른 AS로 광고 금지
- NO_ADVERTISE (65535:65282): 다른 BGP 피어에 광고 금지
- Custom: 예) 100:10 (백업 경로)

실무 예시 (AWS Direct Connect):

AS-PATH Prepending으로 Primary/Secondary 링크 제어
Primary:   AS-PATH 64512
Secondary: AS-PATH 64512 64512 64512
→ Primary 장애 시 자동 Secondary 전환

BGP Hijacking 방지:

  • RPKI (Resource Public Key Infrastructure): AS와 IP 매핑 검증
  • Route Origin Validation (ROV): 유효한 AS만 prefix 광고 가능

Q9. OSPF의 Area 개념과 LSA 타입별 역할은?

OSPF Area 계층 구조:

                    Area 0 (Backbone)
                   [ABR]─────[ABR]
                    /           \
                   /             \
              Area 1           Area 2
           (Regular)         (Stub/NSSA)

Area 타입:

  • Backbone Area (Area 0): 모든 Area가 연결되는 중심
  • Regular Area: 모든 LSA 타입 허용
  • Stub Area: Type 4, 5 LSA 차단 (기본 경로로 대체)
  • Totally Stub Area: Type 3, 4, 5 LSA 차단
  • NSSA (Not-So-Stubby Area): Type 5 대신 Type 7 사용 (재분배 허용)

LSA (Link State Advertisement) 타입:

Type 1 (Router LSA):

  • 각 라우터가 자신의 링크 상태 광고
  • 같은 Area 내에만 전파

Type 2 (Network LSA):

  • DR (Designated Router)이 멀티액세스 네트워크 정보 광고
  • Ethernet, Frame Relay 등

Type 3 (Summary LSA):

  • ABR이 다른 Area의 네트워크 정보를 요약하여 광고
  • Inter-Area 라우팅

Type 4 (ASBR Summary LSA):

  • ABR이 ASBR (AS Boundary Router) 위치 광고
  • Type 5 LSA 도달 경로

Type 5 (External LSA):

  • ASBR이 외부 AS의 라우트 광고 (재분배)
  • 전체 OSPF 도메인에 전파

Type 7 (NSSA External LSA):

  • NSSA에서 사용하는 External LSA
  • ABR이 Type 5로 변환하여 Backbone으로 전파

OSPF 동작 흐름:

1. Hello 패킷 교환 → Neighbor 발견
2. DR/BDR 선출 (멀티액세스 네트워크)
3. DBD (Database Description) 교환 → LSDB 동기화
4. LSR/LSU 교환 → 누락된 LSA 요청/전송
5. SPF (Dijkstra) 알고리즘 실행 → 최단 경로 계산
6. 라우팅 테이블 업데이트

Area 설계 모범 사례:

  • Area당 라우터 50개 이하 권장
  • ABR은 최대 3개 Area에만 연결
  • Stub Area로 LSA 수 감소

Q10. NAT/PAT의 동작 원리와 NAT Traversal 기법은?

NAT (Network Address Translation) 타입:

Static NAT (1:1):

Private IP      Public IP
192.168.1.10 ←→ 203.0.113.5 (고정 매핑)
→ 서버 운영 시 사용 (웹서버, 메일서버)

Dynamic NAT (N:M):

Private Pool: 192.168.1.10~192.168.1.20
Public Pool:  203.0.113.5~203.0.113.10
→ 요청 시 동적 할당

PAT (Port Address Translation, NAPT):

Private                    Public
192.168.1.10:54321  ←→  203.0.113.5:10001
192.168.1.11:54322  ←→  203.0.113.5:10002
192.168.1.12:54323  ←→  203.0.113.5:10003
→ 하나의 Public IP로 수천 개의 내부 호스트 지원

NAT Translation Table:

| Inside Local   | Inside Global  | Outside Global | Outside Local  |
|----------------|----------------|----------------|----------------|
| 192.168.1.10:54321 | 203.0.113.5:10001 | 8.8.8.8:53 | 8.8.8.8:53 |

NAT Traversal 문제:

  • P2P 애플리케이션 (VoIP, 게임, 화상회의) 연결 실패
  • 내부 → 외부는 가능하지만 외부 → 내부 연결 불가

NAT Traversal 기법:

1. STUN (Session Traversal Utilities for NAT):

Client → STUN Server
STUN Server: "당신의 Public IP는 203.0.113.5:10001입니다"
→ Symmetric NAT에서는 실패

2. TURN (Traversal Using Relays around NAT):

Client A ← → TURN Server ← → Client B
→ 모든 트래픽이 중계 서버 경유 (대역폭 소모)

3. ICE (Interactive Connectivity Establishment):

1. STUN으로 Public IP 획득 시도
2. 실패 시 TURN으로 Fallback
3. 여러 Candidate 중 최적 경로 선택
→ WebRTC에서 사용

4. UPnP (Universal Plug and Play):

애플리케이션이 라우터에 포트 포워딩 자동 설정 요청
→ 보안 위험 (악성코드 악용 가능)

5. Port Forwarding (Static):

Router: 외부 80 → 192.168.1.10:80
       외부 443 → 192.168.1.10:443
→ 서버 운영 시 수동 설정

NAT 한계:

  • End-to-End 원칙 위배
  • IPsec ESP 모드 문제 (NAT-T로 해결)
  • FTP Active 모드 실패 (ALG로 해결)

Q11. ARP Spoofing 공격 원리와 방어 방법은?

ARP (Address Resolution Protocol) 동작:

1. Host A: "192.168.1.1의 MAC 주소가 뭐지?" (Broadcast)
2. Gateway: "192.168.1.1은 00:11:22:33:44:55입니다" (Unicast)
3. Host A: ARP Cache에 저장

ARP Cache Table:

$ arp -a
192.168.1.1      00:11:22:33:44:55   dynamic
192.168.1.10     aa:bb:cc:dd:ee:ff   dynamic

ARP Spoofing 공격 (중간자 공격):

Normal:
Client ← → Gateway ← → Internet

Attack:
Client ← → Attacker ← → Gateway ← → Internet
           (트래픽 가로채기)

공격자가 위조된 ARP Reply 전송:
"192.168.1.1(Gateway)의 MAC은 [Attacker MAC]입니다"
→ Client의 ARP Cache 오염
→ 모든 트래픽이 공격자를 경유

방어 방법:

1. Static ARP Entry:

# Linux
arp -s 192.168.1.1 00:11:22:33:44:55

# Windows
arp -s 192.168.1.1 00-11-22-33-44-55
  • 장점: ARP Spoofing 완전 차단
  • 단점: 수동 관리 필요, MAC 변경 시 업데이트

2. DAI (Dynamic ARP Inspection):

Switch에서 ARP 패킷 검증:
- DHCP Snooping Database와 비교
- 유효한 ARP만 전달
- 신뢰할 수 있는 포트는 검증 생략

3. ARP 모니터링 도구:

# arpwatch (Linux)
arpwatch -i eth0
→ ARP 변경 감지 시 알림

# XArp (Windows)
→ GUI 기반 ARP 모니터링

4. 네트워크 세그멘테이션:

VLAN으로 브로드캐스트 도메인 분리
→ ARP Spoofing 영향 범위 축소

5. Port Security (MAC 주소 제한):

switchport port-security maximum 2
switchport port-security violation restrict
switchport port-security mac-address sticky

6. IPsec/VPN:

  • 암호화로 ARP Spoofing 무력화
  • 공격자가 트래픽을 가로채도 복호화 불가

Q12. Hub & Spoke 네트워크와 Transit Gateway 아키텍처 비교는?

기존 Hub & Spoke (VPN):

        ┌─────────┐
        │  Hub DC │ (Central VPN Gateway)
        └────┬────┘
      ┌──────┼──────┐
      │      │      │
   ┌──▼──┐┌──▼──┐┌──▼──┐
   │Spoke││Spoke││Spoke│
   │  1  ││  2  ││  3  │
   └─────┘└─────┘└─────┘

장점:

  • 중앙 집중식 보안 정책
  • 관리 단순화

단점:

  • Hub 장애 시 전체 통신 불가 (SPOF)
  • Hub 병목 현상
  • Spoke 간 통신은 Hub 경유 (2배 홉)

AWS Transit Gateway 아키텍처:

         ┌─────────────────┐
         │ Transit Gateway │ (Managed Service)
         └────────┬────────┘
      ┌───────────┼───────────┐
      │           │           │
   ┌──▼──┐     ┌──▼──┐     ┌──▼──┐
   │ VPC │     │ VPC │     │ VPC │
   │  A  │     │  B  │     │  C  │
   └─────┘     └─────┘     └─────┘
      │           │           │
   ┌──▼──┐     ┌──▼──┐     ┌──▼──┐
   │ DX  │     │ VPN │     │ VPC │
   └─────┘     └─────┘     │  D  │
                           └─────┘

Transit Gateway 장점:

1. 고가용성:

  • Multi-AZ 자동 배포
  • 리전 내 99.95% SLA

2. 확장성:

  • VPC당 최대 5,000개 연결
  • 50 Gbps 처리량

3. 라우팅 테이블 분리:

Route Table 1 (Production):
  VPC-Prod-A ↔ VPC-Prod-B

Route Table 2 (Development):
  VPC-Dev-A ↔ VPC-Dev-B

→ Isolation between environments

4. Transit Gateway Peering:

Region A TGW ← → Region B TGW
→ Cross-Region VPC 통신

5. Centralized Egress:

All VPCs → Transit Gateway → Egress VPC (NAT Gateway, Firewall)
→ 중앙 집중식 인터넷 출구

비용 비교:

Hub & Spoke (VPN):
- VPN 연결당 $0.05/hour * N개
- 데이터 전송 비용

Transit Gateway:
- Attachment당 $0.05/hour * N개
- 데이터 처리 $0.02/GB
→ 10개 이상 VPC 연결 시 Transit Gateway가 경제적

마이그레이션 전략:

1. Transit Gateway 생성
2. VPC Attachment 추가 (기존 VPN 유지)
3. 라우팅 테이블 점진적 전환
4. 검증 후 기존 VPN 제거

💡 용어 설명:


참고 자료

Clone this wiki locally