이것저것

[SK shieldus Rookies 29기] 11일차 본문

SK Shieldus Rookies 29

[SK shieldus Rookies 29기] 11일차

atfield1988 2025. 12. 4. 11:32

1️⃣ 보안의 분류

보안의 기본 공식

보안 = 해킹(공격) + 대응 정책(방어)


보안의 4가지 영역

1. 애플리케이션 보안

  • 애플리케이션 해킹 + 대응 정책
  • 특정 앱의 보안 취약점 해결

2. 웹 보안

  • 웹 해킹 + 대응 정책
  • SQL Injection, XSS, CSRF 등
  • 웹 애플리케이션 보호

3. 시스템 보안

  • 시스템 해킹(운영체제) + 대응 정책
  • Kernel(명령어 실행기) 보안
  • OS 차원의 보호

4. 네트워크 보안

  • 네트워크 해킹 + 대응 정책
  • 패킷 조작, 스니핑, 라우팅 공격 등
  • 네트워크 인프라 보호

2️⃣ 네트워크 공격 종류

계층별 공격 분류

System Hacking

  • Browser, OS, Kernel 공격

Web Hacking

  • Web Server, Application 공격

Network Hacking

  • Internet, Router, Switch 공격

Application Hacking

  • Telnet, FTP, 기타 서비스 공격

3️⃣ 네트워크 기초 개요

기본 네트워크 구조

Gateway-1 (192.168.1.254/24) 관리

  • SWITCH-1
    • 호스트 A (192.168.1.10)
    • 호스트 B (192.168.1.20)
    • 내부망: 192.168.1.0

Gateway-2 (192.168.5.254/24) 관리

  • SWITCH-2
    • 호스트 C (192.168.5.10)
    • 내부망: 192.168.5.0 (외부망으로 분류)

4️⃣ 네트워크 주소 (Network Address)

4가지 주요 주소

계층 주소 이름 특징 예시
L7 FQDN 도메인 이름 www.test.com
L3 IP Address 논리적 주소 192.168.1.10
L2 MAC Address 물리적 주소 00-40-D0-15-81-C5
L4 Port Number 애플리케이션 번호 80, 443, 22

5️⃣ IP Address (L3 주소)

IP 주소의 구성

IP Address = Network ID + Host ID

예시: 192.168.1.10

  • 192.168.1 → Network ID
  • 10 → Host ID

Subnet Mask의 역할

Subnet Mask는 IP 주소에서 Network ID와 Host ID를 구분합니다.

계산 방법:

IP Address:    192.168.1.10
Subnet Mask:   255.255.255.0
AND 연산 후:   192.168.1.0 (Network ID)


6️⃣ 내부망과 외부망

내부망 (Internal Network)

  • 송신자와 수신자가 동일한 Network ID 사용
  • 예: A(192.168.1.10) → B(192.168.1.20)
  • 직접 통신 가능

외부망 (External Network)

  • 송신지와 수신지가 서로 다른 Network ID 사용
  • 예: A(192.168.1.0) → C(192.168.5.0)
  • Gateway를 거쳐 통신

7️⃣ MAC Address (L2 주소)

MAC 주소 구성 (48비트)

00-40-D0-15-81-C5
└─────┬─────┘  └───┬────┘
   제조회사 ID   카드 일련번호

주요 제조회사 OUI

제조회사 OUI
Intel 00-A0-C9
3Com 00-50-DA
Realtek 00-40-D0

8️⃣ FQDN (L7 주소)

Fully Qualified Domain Name

구조: www.test.com

  • www → 호스트명 (서브도메인)
  • test → 도메인명
  • com → 최상위 도메인 (TLD)

일반적인 서브도메인

  • www: 웹 서버
  • ftp: 파일 서버
  • smtp: 메일 서버
  • mail: 메일 클라이언트
  • gildong: 개인 서버

9️⃣ 포트 번호 (L4 주소)

정의

포트 번호 = 서비스 번호 = 애플리케이션 번호

  • 총 65,535개 포트 (0 ~ 65535)

포트 분류

포트 범위 분류 용도
0-1023 Well-Known Port 표준 서비스
1024-49151 Registered Port 등록된 애플리케이션
49152-65535 Dynamic Port 임시 포트

주요 Well-Known 포트

포트 서비스 용도
20, 21 FTP 파일 전송
22 SSH 원격 접속 (보안)
23 Telnet 원격 접속
25 SMTP 메일 전송
80 HTTP 웹 서버
443 HTTPS 웹 서버 (암호화)
3306 MySQL 데이터베이스

포트 주소 (송수신 흐름)

송신 시:

  • 송신지: 192.168.10.10:50010
  • 수신지: 200.10.10.10:80 (웹 서버)

수신 시 (응답):

  • 송신지: 200.10.10.10:80
  • 수신지: 192.168.10.10:50010
Windows Services 기준 포트 정리
포트 번호의 이해

포트 번호 = 서비스 번호 = 애플리케이션 번호

  • 총 65,535개 포트 (0 ~ 65535)
  • Well-Known Port: 0-1023 (표준 서비스)
  • Registered Port: 1024-49151 (등록된 애플리케이션)
  • Dynamic Port: 49152-65535 (임시 포트)

1️⃣ 기본 네트워크 서비스 (1-100)

포트 프로토콜 서비스명 설명
7 TCP/UDP echo Echo 서비스
9 TCP/UDP discard 데이터 폐기
11 TCP/UDP systat Active Users
13 TCP/UDP daytime 날짜/시간 제공
17 TCP/UDP qotd 명언 제공
19 TCP/UDP chargen 문자 생성
20 TCP ftp-data FTP 데이터 전송
21 TCP ftp FTP 제어
22 TCP ssh SSH 원격 접속 ⭐
23 TCP telnet Telnet 원격 접속
25 TCP smtp 메일 전송
37 TCP/UDP time 시간 서버
42 TCP/UDP nameserver 호스트명 서버
43 TCP whois WHOIS 조회
53 TCP/UDP domain DNS 서비스 ⭐
67 UDP bootps DHCP 서버
68 UDP bootpc DHCP 클라이언트
69 UDP tftp 파일 전송
70 TCP gopher Gopher 프로토콜
79 TCP finger 사용자 정보 조회
80 TCP http 웹 서버 ⭐
81 TCP/UDP hosts2-ns HOSTS2 Name Server
88 TCP/UDP kerberos Kerberos 인증
101 TCP hostname 호스트명 서버
102 TCP iso-tsap ISO-TSAP

2️⃣ 메일 및 통신 서비스 (100-200)

포트 프로토콜 서비스명 설명
107 TCP rtelnet 원격 Telnet
109 TCP pop2 POP2 메일 ⭐
110 TCP pop3 POP3 메일 ⭐
111 TCP/UDP sunrpc SUN RPC
113 TCP auth Ident 프로토콜
117 TCP uucp-path UUCP
118 TCP sqlserv SQL Services
119 TCP nntp 뉴스 그룹
123 UDP ntp 네트워크 시간 ⭐
135 TCP/UDP epmap RPC 엔드포인트
137 TCP/UDP netbios-ns NetBios 명칭
138 UDP netbios-dgm NetBios 데이터그램
139 TCP netbios-ssn NetBios 세션
143 TCP imap IMAP4 메일 ⭐
150 TCP sql-net SQL 네트워크
156 TCP sqlsrv SQL 서버
158 TCP pcmail-srv PCMail 서버
161 UDP snmp SNMP 모니터링 ⭐
162 UDP snmptrap SNMP Trap
170 TCP print-srv 네트워크 프린터
179 TCP bgp BGP 라우팅
194 TCP irc IRC 채팅
213 UDP ipx IPX over IP

3️⃣ 암호화된 보안 서비스 (300-500)

포트 프로토콜 서비스명 설명
322 TCP/UDP rtsps RTSP 보안
349 TCP/UDP mftp 멀티캐스트 FTP
389 TCP ldap LDAP 디렉토리
443 TCP/UDP https HTTPS 웹 서버 ⭐
445 TCP/UDP microsoft-ds 마이크로소프트 DS
464 TCP/UDP kpasswd Kerberos 암호
500 UDP isakmp IKE 키 교환
507 TCP/UDP crs 콘텐츠 복제

4️⃣ 원격 접속 및 관리 서비스 (500-600)

포트 프로토콜 서비스명 설명
512 TCP exec 원격 실행
512 UDP biff Comsat 메일 알림
513 TCP login 원격 로그인
513 UDP who 사용자 확인
514 TCP cmd 원격 셸
514 UDP syslog 시스템 로그
515 TCP printer 프린터 스풀러
517 UDP talk Talk 통신
518 UDP ntalk Network Talk
520 TCP efs 확장 파일명
520 UDP router 라우팅 정보
522 TCP/UDP ulp Ulysses
525 UDP timed 시간 서버
526 TCP tempo 새 날짜
529 TCP/UDP irc-serv IRC 서버
530 TCP courier 택배 RPC
531 TCP conference 회의 채팅
532 TCP netnews 뉴스 읽기
533 UDP netwall 긴급 방송
540 TCP uucp UUCP 데몬
543 TCP klogin Kerberos 로그인
544 TCP kshell Kerberos 셸
546 TCP/UDP dhcpv6-client DHCPv6 클라이언트
547 TCP/UDP dhcpv6-server DHCPv6 서버
548 TCP/UDP afpovertcp AFP over TCP
550 UDP new-rwho 새 RWHO
554 TCP/UDP rtsp RTSP 스트리밍
556 TCP remotefs 원격 파일시스템
560 UDP rmonitor 원격 모니터링
561 UDP monitor 모니터링
563 TCP/UDP nntps NNTP 보안
565 TCP/UDP whoami 사용자 확인
568 TCP/UDP ms-shuttle Microsoft Shuttle
569 TCP/UDP ms-rome Microsoft Rome
593 TCP/UDP http-rpc-epmap HTTP RPC 맵

5️⃣ 엔터프라이즈 서비스 (600-1000)

포트 프로토콜 서비스명 설명
612 TCP/UDP hmmp-ind HMMP 지시
613 TCP/UDP hmmp-op HMMP 작동
636 TCP ldaps LDAP 보안
666 TCP/UDP doom Doom 게임
691 TCP/UDP msexch-routing MS Exchange
749 TCP/UDP kerberos-adm Kerberos 관리
750 UDP kerberos-iv Kerberos v4
800 TCP/UDP mdbs-daemon MDBS 데몬
989 TCP ftps-data FTPS 데이터
990 TCP ftps FTPS 제어 ⭐
992 TCP telnets Telnet 보안
993 TCP imaps IMAP 보안 ⭐
994 TCP ircs IRC 보안
995 TCP/UDP pop3s POP3 보안 ⭐

6️⃣ 데이터베이스 및 미들웨어 (1000-2500)

포트 프로토콜 서비스명 설명
1109 TCP kpop Kerberos POP
1110 TCP/UDP nfsd-* Cluster 상태
1155 TCP/UDP nfa 네트워크 파일
1167 UDP phone 회의 전화
1270 TCP/UDP opsmgr Operations Manager
1433 TCP/UDP ms-sql-s SQL Server ⭐
1434 TCP/UDP ms-sql-m SQL Monitor
1477 TCP/UDP ms-sna-server SNA 서버
1478 TCP/UDP ms-sna-base SNA 베이스
1512 TCP/UDP wins WINS 서비스
1524 TCP ingreslock Ingres 잠금
1607 TCP/UDP stt Structured Text
1701 UDP l2tp L2TP 터널링
1711 TCP/UDP pptconference 슬라이드쇼 회의
1723 TCP pptp PPTP VPN
1731 TCP/UDP msiccp 메시지 서비스
1745 TCP/UDP remote-winsock 원격 Winsock
1755 TCP/UDP ms-streaming 미디어 스트리밍
1801 TCP/UDP msmq 메시지 큐
1812 UDP radius RADIUS 인증
1813 UDP radacct RADIUS 계정
1863 TCP/UDP msnp MSN Messenger
1900 TCP/UDP ssdp UPnP 발견
1944 TCP/UDP close-combat 근접 전투
2049 UDP nfsd NFS 서버
2053 TCP knetd Kerberos 멀티플렉싱
2106 TCP/UDP mzap 멀티캐스트 공시
2177 TCP/UDP qwave QWAVE
2234 TCP/UDP directplay DirectPlay
2382 TCP/UDP ms-olap3 OLAP 3
2383 TCP/UDP ms-olap4 OLAP 4
2393 TCP/UDP ms-olap1 OLAP 1
2394 TCP/UDP ms-olap2 OLAP 2
2460 TCP/UDP ms-theater Microsoft Theater
2504 TCP/UDP wlbs 부하 분산 서버
2525 TCP/UDP ms-v-worlds V-Worlds

7️⃣ 관리 및 모니터링 서비스 (2700-5000)

포트 프로토콜 서비스명 설명
2701 TCP/UDP sms-rcinfo SMS RC 정보
2702 TCP/UDP sms-xfer SMS 전송
2703 TCP/UDP sms-chat SMS 채팅
2704 TCP/UDP sms-remctrl SMS 원격제어
2725 TCP/UDP msolap-ptp2 MSOLAP PTP2
2869 TCP/UDP icslap ICSlap
3020 TCP/UDP cifs CIFS 공유
3074 TCP/UDP xbox Xbox 게임
3126 TCP/UDP ms-dotnetster .NET Stereo
3132 TCP/UDP ms-rule-engine 규칙 엔진
3268 TCP/UDP msft-gc Global Catalog
3269 TCP/UDP msft-gc-ssl Global Catalog SSL
3343 TCP/UDP ms-cluster-net 클러스터 네트워크
3389 TCP/UDP ms-wbt-server 원격 데스크톱 ⭐
3535 TCP/UDP ms-la 클래스 서버
3540 TCP/UDP pnrp-port P2P 포트
3544 TCP/UDP teredo Teredo 터널
3587 TCP/UDP p2pgroup P2P 그룹
3702 TCP/UDP ws-discovery WS-Discovery
3776 TCP/UDP dvcprov-port 디바이스 프로비저닝
3847 TCP msfw-control 방화벽 제어
3882 TCP msdts1 DTS 서비스
3935 TCP/UDP sdp-portmapper SDP 포트 맵퍼
4350 TCP/UDP net-device 네트 디바이스
4500 TCP/UDP ipsec-msft IPsec NAT-T
5355 TCP/UDP llmnr LLMNR
5357 TCP wsd 웹 서비스
5358 TCP wsd 웹 서비스 (alt)
5678 TCP/UDP rrac 원격 복제 에이전트
5679 TCP/UDP dccm 직접 케이블 연결
5720 TCP/UDP ms-licensing 라이센싱

8️⃣ 고급 서비스 (6000-50000)

포트 프로토콜 서비스명 설명
6073 TCP/UDP directplay8 DirectPlay 8
7680 TCP/UDP ms-do Delivery Optimization
9535 TCP man 원격 MAN 서버
9753 TCP/UDP rasadv RAS 광고
11320 TCP/UDP imip-channels IMIP 채널
47624 TCP/UDP directplaysrvr DirectPlay 서버

🎯 가장 중요한 포트 (필수 암기)

포트 서비스 설명 우선순위
22 SSH 원격 접속 (보안) ⭐⭐⭐
53 DNS 도메인 서비스 ⭐⭐⭐
80 HTTP 웹 서버 ⭐⭐⭐
443 HTTPS 웹 서버 (보안) ⭐⭐⭐
25 SMTP 메일 전송 ⭐⭐
110 POP3 메일 수신 ⭐⭐
143 IMAP 메일 수신 (고급) ⭐⭐
3306 MySQL 데이터베이스 ⭐⭐⭐
1433 SQL Server 데이터베이스 ⭐⭐⭐
3389 RDP 원격 데스크톱 ⭐⭐
161 SNMP 모니터링 ⭐⭐
123 NTP 시간 동기화 ⭐⭐
389 LDAP 디렉토리 ⭐⭐

💡 포트별 프로토콜 특징

TCP vs UDP 사용 기준

프로토콜 신뢰성 속도 용도
TCP 높음 ✅ 느림 메일, 웹, FTP, 데이터베이스
UDP 낮음 ⚠️ 빠름 DNS, NTP, 스트리밍, 게임

🔐 보안 포트 정리

암호화된 서비스 (SSL/TLS)

일반 포트 보안 포트 서비스
80 (HTTP) 443 (HTTPS) 웹 서버
21 (FTP) 990 (FTPS) 파일 전송
23 (Telnet) 992 (Telnets) 원격 접속
110 (POP3) 995 (POP3S) 메일
143 (IMAP) 993 (IMAPS) 메일
119 (NNTP) 563 (NNTPS) 뉴스

🔟 DNS & ARP 프로토콜

DNS (Domain Name System)

Hostname → IP Address 변환

www.test.com → 192.168.200.3

역할: 도메인 이름을 IP 주소로 변환


ARP (Address Resolution Protocol)

IP Address → MAC Address 변환

192.168.200.3 → 00-00-E8-CD-03-E0

역할: IP 주소를 MAC 주소로 변환


1️⃣1️⃣ 주소 통합 이해

통신 대상 정보 (예시)

Server B

  • MAC: 1111.2222.3333 (제조회사 + 일련번호)
  • IP: 192.168.1.20 (네트워크 ID + 호스트 ID)
  • FQDN: www.test.com (호스트명 + 도메인명)

Client A에서 Server B로 통신할 때:

  1. FQDN 조회: www.test.com
  2. DNS 변환: IP 192.168.1.20 확인
  3. ARP 변환: MAC 1111.2222.3333 확인
  4. 데이터 전송

1️⃣2️⃣ 전송 모드 (Transmission Mode)

3가지 전송 방식

  • Unicast: 1:1 (일대일)
  • Broadcast: 1:m (불특정다수)
  • Multicast: 1:n (특정다수)

1️⃣3️⃣ Unicast 전송 (1:1)

구조

클라이언트 (송신지)

  • IP: 192.168.1.10
  • MAC: 1111.2222.1111
  • Port: 50030

서버 (수신지)

  • IP: 192.168.1.20
  • MAC: 1111.2222.2222
  • Port: 80

전송 과정

  1. OS (운영체제) 처리

    • IP 주소 확인
    • 내부망/외부망 판별
  2. DNS 처리

    • FQDN → IP 변환
  3. ARP 처리

    • IP → MAC 변환
  4. 결과

    • L4, L3, L2 헤더 모두 포함된 프레임 전송

1️⃣4️⃣ Broadcast 전송 (1:m)

정의

모든 호스트에게 동시에 데이터를 전송합니다.


Broadcast 주소

Limited Broadcast

  • 255.255.255.255 (로컬 브로드캐스트)

Directed Broadcast

  • 192.168.1.255/24 (특정 네트워크 브로드캐스트)

Broadcast MAC 주소

FFFF.FFFF.FFFF

예시: DHCP 통신

클라이언트가 IP 요청

  • 송신 IP: 192.168.1.10
  • 송신 MAC: 1111.2222.1111
  • 송신 Port: 68
  • 수신 IP: 255.255.255.255 (브로드캐스트)
  • 수신 MAC: FFFF.FFFF.FFFF
  • 수신 Port: 67 (DHCP 서버)

네트워크의 모든 호스트가 수신
→ DHCP 서버만 응답


1️⃣5️⃣ Multicast 전송 (1:n)

정의

특정 그룹의 호스트들에게만 데이터를 전송합니다.

예시

트위치, 아프리카 티비, 유튜브 등 송출 플랫폼에서 많이 사용
tmi) 트위치는 서버 비용이 비싸다고 철수...
이런 걸 해결하기 위해서는 그리드를 도입했으나 모 통신사의 해킹으로 인해 그리드가 차단... 자세한 건 뉴스 찾아보시길


Multicast 주소

IP 범위: 224.0.0.0 ~ 239.255.255.255

예시:

  • 224.0.0.22 (IGMPv3)
  • 227.154.65.50 (라디오 스트리밍)
  • 239.255.255.250 (장치 발견)

Multicast MAC 주소 매핑

Multicast IP: 227.154.65.50
         ↓
Multicast MAC: 0100.5E1A.4132

형식: 0100.5EXX.XXXX


1️⃣6️⃣ ARP (Address Resolution Protocol)

정의

IP 주소에 대응되는 MAC 주소를 조회/변환합니다.


ARP Request 패킷

질문: "여기 있는 분! IP 192.168.1.20의 MAC 주소가 뭐예요?"

특징:

  • 송신자의 IP에 대응되는 MAC 주소 조회
  • 브로드캐스트 방식으로 전송
  • 모든 호스트가 수신

ARP Reply 패킷

응답: "제 IP는 192.168.1.20이고, MAC은 3333.4444.5555입니다"

특징:

  • ARP Request의 응답 패킷
  • 유니캐스트 방식으로 전송 (송신자에게만)
  • 송신자의 ARP 캐시에 저장

ARP Cache Table

IP Address          MAC Address
192.168.1.10        1111.2222.1111
192.168.1.20        1111.2222.2222
192.168.1.30        1111.2222.3333

확인 명령어:

C:\> arp -a


1️⃣7️⃣ 계층별 장비

3가지 주요 네트워크 장비

장비 계층 역할 참고 테이블
Hub L1 (물리계층) 신호 증폭 없음
Switch L2 (데이터링크) MAC 학습 MAC Table
Router L3 (네트워크) 경로 결정 Routing Table

Switch (L2 장비)

MAC Address Table

  • 목적지 → 출구번호 매핑
  • 예: A.MAC → 포트 1

동작 방식:

  1. 송신 MAC: A.MAC → 포트 1에서 수신 (학습)
  2. 수신 MAC: C.MAC → 포트 3으로 포워딩
  3. 포워딩: 특정 포트로만 전송
  4. 플러딩: 송신 포트 제외 모든 포트로 전송

Router (L3 장비)

Routing Table

  • 목적지 네트워크 → 출구번호 매핑
  • 예: 192.168.1.0 → 포트 1

동작 방식:

  1. 송신 IP: 192.168.1.10 → 라우팅 테이블 조회
  2. 목적지 네트워크 확인
  3. 해당 출구로 트래픽 포워딩
  4. Media Translation (L2 헤더 변환)

Hub (L1 장비)

특징:

  • 물리 계층 장비
  • MAC/IP/Port 정보 없음
  • 수신한 신호를 모든 포트로 플러딩
  • 데이터 충돌 가능성 높음

현재: 레거시 장비로 사용 안 함


1️⃣8️⃣ Media Translation

개념

패킷이 출발지에서 목적지까지 가는 동안, L3 이상의 장비(Router)를 거칠 때마다:

  • L3 주소 (IP): 변경 없음
  • ⚠️ L2 주소 (MAC): 각 구간마다 변경

실제 통신 경로

PC-1 (172.16.21.7) 
  ↓
Router A 
  ↓
Router B 
  ↓
FTP Server (172.16.34.250)

구간별 주소 변환:

1단계: PC-1 → Router A

  • Source IP: 172.16.21.7
  • Dest IP: 172.16.34.250
  • Source MAC: 6666 (PC-1)
  • Dest MAC: 2222 (Router A)

2단계: Router A → Router B

  • Source IP: 172.16.21.7 ✅ (변경 없음)
  • Dest IP: 172.16.34.250 ✅ (변경 없음)
  • Source MAC: 9999 (Router A)
  • Dest MAC: 3333 (Router B)

3단계: Router B → FTP Server

  • Source IP: 172.16.21.7 ✅ (변경 없음)
  • Dest IP: 172.16.34.250 ✅ (변경 없음)
  • Source MAC: 7777 (Router B)
  • Dest MAC: 5555 (FTP Server)

1️⃣9️⃣ 트래픽 흐름 (Traffic Flow)

2가지 통신 유형

  • 내부망 트래픽: 동일 네트워크에서의 통신
  • 외부망 트래픽: 다른 네트워크로의 통신

내부망 트래픽 흐름

상황: A(192.168.1.10) → B(192.168.1.20)

1단계: DNS 조회

  • DNS 캐시 조회
  • Hosts.txt 파일 확인: \windows\system32\drivers\etc\hosts
  • DNS 서버에 조회

2단계: 서브넷 마스크로 내/외부망 확인

A: 192.168.1.10 & 255.255.255.0 = 192.168.1.0
B: 192.168.1.20 & 255.255.255.0 = 192.168.1.0
→ 동일 네트워크! (내부망)

3단계: 수신자 MAC 주소 조회

  • ARP 캐시 조회
  • ARP Request/Reply 실행

4단계: 직접 전송

  • 송신자 → 스위치 → 수신자

외부망 트래픽 흐름

상황: A(192.168.1.10) → C(192.168.5.10)

1단계: DNS 조회

  • DNS 캐시 조회
  • Hosts.txt 파일 확인
  • DNS 서버 조회

2단계: 서브넷 마스크로 내/외부망 확인

A: 192.168.1.10 & 255.255.255.0 = 192.168.1.0
C: 192.168.5.10 & 255.255.255.0 = 192.168.5.0
→ 다른 네트워크! (외부망)

3단계: Gateway MAC 주소 조회

  • ARP 캐시 조회
  • ARP Request/Reply (Gateway 대상)

4단계: Media Translation을 거쳐 전송

  • 송신자 → Gateway(Router) → 스위치 → 수신자

📋 핵심 요약

네트워크 주소 4계층

L7 L4 L3 L2
FQDN Port IP Address MAC Address
www.test.com 80 192.168.1.10 00-40-D0-15-81-C5

전송 모드 비교

구분 형태 IP 주소 MAC 주소
Unicast 1:1 개별 개별
Broadcast 1:m 255.255.255.255 FFFF.FFFF.FFFF
Multicast 1:n 224-239.x.x.x 0100.5E.x.x

계층별 장비

장비 계층 테이블 기능
Hub L1 없음 신호 증폭 (플러딩)
Switch L2 MAC Table MAC 학습, 플러딩, 포워딩
Router L3 Routing Table 경로 결정, 외부망 연결

1️⃣ 트래픽 흐름 개요(다시 한 번 정리)

트래픽 흐름이란?

데이터가 송신자에서 수신자에게 도달하기까지의 모든 과정

2가지 트래픽 유형

  • 내부망 트래픽: 동일 네트워크 내 통신
  • 외부망 트래픽: 다른 네트워크로의 통신 (Gateway 거침)

2️⃣ 내부망 트래픽 흐름

상황

Client: 192.168.1.10 (MAC: 1111.2222.3333)

Server: 192.168.1.20 (MAC: 1111.2222.2222)

요청: www.test.com으로 접속 (Port 80 - HTTP)


4단계 통신 과정

✅ 1단계: DNS를 이용하여 수신지 IP 주소 조회

목적: www.test.com → 192.168.1.20으로 변환

조회 방법 (우선순위):

  1. DNS 캐시 조회 (가장 빠름)

    C:\> ipconfig /displaydns

    이전에 조회한 DNS 정보 확인

  2. Hosts.txt 파일 조회 (다음 순서)

    C:\Windows\System32\drivers\etc\hosts

    로컬 파일에 저장된 도메인 정보

  3. DNS 서버 조회 (마지막)

    DNS 서버: 8.8.8.8

    DNS Request/Response 과정

결과: 192.168.1.20 확인


✅ 2단계: 송신자 서브넷마스크를 이용하여 내부망/외부망 확인

목적: 수신지가 같은 네트워크에 있는지 확인

계산:

수신지 IP:      192.168.1.20
Subnet Mask:    255.255.255.0
AND 연산 결과:  192.168.1.0

송신지 IP:      192.168.1.10
Subnet Mask:    255.255.255.0
AND 연산 결과:  192.168.1.0

결론: 192.168.1.0 = 192.168.1.0 ✅ 
→ 동일 네트워크 (내부망)

특징: 송신지와 수신지의 네트워크 ID가 동일하면 내부망 통신


✅ 3단계: ARP를 이용하여 수신자 MAC 주소 조회

목적: 192.168.1.20의 MAC 주소 → 1111.2222.2222 조회

조회 방법:

  1. ARP 캐시 조회 (우선)

    C:\> arp -a

    이미 알고 있는 MAC 주소 확인

  2. ARP Request/Reply (캐시 없을 시)

    • ARP Request: "192.168.1.20의 MAC 주소가 뭐예요?" (브로드캐스트)
    • ARP Reply: "제 MAC은 1111.2222.2222입니다" (유니캐스트)

ARP Cache Table:

IP Address      MAC Address
192.168.1.20    1111.2222.2222

✅ 4단계: 수신지로 트래픽 전송

완성된 패킷 정보:

항목
송신 IP 192.168.1.10
송신 MAC 1111.2222.3333
송신 Port 50030 (임시 포트)
수신 IP 192.168.1.20
수신 MAC 1111.2222.2222
수신 Port 80 (HTTP)
데이터 GET /www.test.com

전송 경로:

Client → Switch → Server
(직접 연결)


3️⃣ 외부망 트래픽 흐름

상황

Client: 192.168.1.10 (MAC: 1111.2222.3333)

  • Gateway: 192.168.1.1 (MAC: 4444.5555.6666)

Server: 172.16.2.10 (MAC: 1111.2222.2222)

  • Gateway: 172.16.2.1 (MAC: 7777.8888.9999)

요청: www.test.com으로 접속


4단계 통신 과정

✅ 1단계: DNS를 이용하여 수신지 IP 주소 조회

목적: www.test.com → 12.16.2.10으로 변환

조회 방법:

  1. DNS 캐시 조회

    C:\> ipconfig /displaydns
  2. Hosts.txt 파일 조회

    C:\Windows\System32\drivers\etc\hosts
  3. DNS 서버 조회

    DNS 서버: 8.8.8.8

결과: 172.16.2.10 확인


✅ 2단계: 송신자 서브넷마스크를 이용하여 내부망/외부망 확인

목적: 수신지가 다른 네트워크에 있는지 확인

계산:

수신지 IP:      172.16.2.10
Subnet Mask:    255.255.255.0
AND 연산 결과:  172.16.2.0

송신지 IP:      192.168.1.10
Subnet Mask:    255.255.255.0
AND 연산 결과:  192.168.1.0

결론: 172.16.2.0 ≠ 192.168.1.0 ❌
→ 다른 네트워크 (외부망)
→ Gateway를 거쳐야 함

✅ 3단계: Gateway의 MAC 주소 조회

목적: Gateway의 IP (192.168.1.1) → MAC (4444.5555.6666) 조회

조회 방법:

  1. ARP 캐시 조회 (우선)

    C:\> arp -a

    ARP Cache Table:

    IP Address      MAC Address
    192.168.1.1     4444.5555.6666
    172.16.2.1      7777.8888.9999
  2. ARP Request/Reply (캐시 없을 시)

    • 같은 과정으로 Gateway MAC 획득

✅ 4단계: Media Translation 방법으로 수신지로 트래픽 전송

목적: 각 구간마다 MAC 주소를 변환하여 전송


📋 전송 경로 상세 분석

Client → Gateway A → Gateway B → Server


구간 1️⃣: Client → Gateway A

패킷 정보:

계층 항목
L3 송신 IP 192.168.1.10 ✅
L3 수신 IP 172.16.2.10 ✅
L4 송신 Port 50030 ✅
L4 수신 Port 80 ✅
L2 송신 MAC 1111.2222.3333 (Client)
L2 수신 MAC 4444.5555.6666 (Gateway A) ⚠️ 변경

핵심: IP는 변경 없음, MAC만 변경


구간 2️⃣: Gateway A → Gateway B

패킷 정보:

계층 항목
L3 송신 IP 192.168.1.10 ✅ (변경 없음)
L3 수신 IP 172.16.2.10 ✅ (변경 없음)
L4 송신 Port 50030 ✅ (변경 없음)
L4 수신 Port 80 ✅ (변경 없음)
L2 송신 MAC 4444.5555.6666 (Gateway A) ⚠️ 변경
L2 수신 MAC 7777.8888.9999 (Gateway B) ⚠️ 변경

구간 3️⃣: Gateway B → Server

패킷 정보:

계층 항목
L3 송신 IP 192.168.1.10 ✅ (변경 없음)
L3 수신 IP 172.16.2.10 ✅ (변경 없음)
L4 송신 Port 50030 ✅ (변경 없음)
L4 수신 Port 80 ✅ (변경 없음)
L2 송신 MAC 7777.8888.9999 (Gateway B) ⚠️ 변경
L2 수신 MAC 1111.2222.2222 (Server) ⚠️ 변경


4️⃣ Media Translation 원리

개념

문제점: 라우터를 거칠 때마다 L2 헤더(MAC)를 변환해야 함

해결책: Media Translation (미디어 변환)


🎯 핵심 규칙

계층 거동 이유
L3 (IP) 변경 없음 ✅ 출발지/목적지 IP는 전체 경로에서 동일
L2 (MAC) 매 구간마다 변경 ⚠️ 각 링크에서 직접 연결된 기기의 MAC 필요

MAC 변환 과정 예시

┌─────────────────────────────────────────────────┐
│ Client (1111.2222.3333)                        │
│ 172.16.2.10으로 패킷 전송                     │
└───────────────┬─────────────────────────────────┘
                ↓
          Gateway A 도착
          MAC 변환 필요
                ↓
┌──────────────────────────────────────────────────┐
│ Gateway A (4444.5555.6666)                      │
│ 송신 MAC를 4444.5555.6666으로 변경           │
│ 수신 MAC을 7777.8888.9999 (Gateway B)로 설정  │
└───────────────┬──────────────────────────────────┘
                ↓
          Gateway B 도착
          MAC 재변환 필요
                ↓
┌──────────────────────────────────────────────────┐
│ Gateway B (7777.8888.9999)                      │
│ 송신 MAC을 7777.8888.9999로 변경             │
│ 수신 MAC을 1111.2222.2222 (Server)로 설정    │
└───────────────┬──────────────────────────────────┘
                ↓
          Server 도착 (최종)


5️⃣ 내부망 vs 외부망 비교

통신 특징

항목 내부망 외부망
네트워크 ID 동일 다름
Gateway 불필요 필수
경로 직접 연결 Gateway 거침
MAC 변환 1회 다회
Subnet 검사 필수 필수
ARP 대상 수신자 Gateway

6️⃣명령어

DNS 관련

DNS 캐시 확인:

C:\> ipconfig /displaydns

DNS 캐시 초기화:

C:\> ipconfig /flushdns

ARP 관련

ARP 캐시 확인:

C:\> arp -a

ARP 캐시 초기화:

C:\> arp -d

특정 IP의 ARP 확인:

C:\> arp -a 192.168.1.1

네트워크 진단

경로 추적:

C:\> tracert www.test.com

Ping 테스트:

C:\> ping 192.168.1.20

네트워크 연결 상태:

C:\> ipconfig /all


7️⃣ 트래픽 흐름 요약 (순서도)

내부망 통신 흐름

1. DNS 조회 (FQDN → IP)
   ↓
2. Subnet Mask로 내/외부망 판별 (내부망 확인)
   ↓
3. ARP로 수신자 MAC 조회
   ↓
4. 패킷 생성 (L2, L3, L4 헤더)
   ↓
5. 직접 전송 (Switch 거침)

외부망 통신 흐름

1. DNS 조회 (FQDN → IP)
   ↓
2. Subnet Mask로 내/외부망 판별 (외부망 확인)
   ↓
3. ARP로 Gateway MAC 조회 ⭐
   ↓
4. 패킷 생성 (L2, L3, L4 헤더)
   ↓
5. Media Translation 적용
   ↓
6. Gateway를 거쳐 전송
   ↓
7. 각 구간에서 MAC 주소 변환

추가: Switch와 Router의 포워딩/플러딩

1️⃣ ARP 프로토콜의 2가지 패킷 형식

📌 ARP Request 패킷

특징: 브로드캐스트 (Broadcast)

송신자가 수신자의 MAC 주소를 조회할 때 사용

질문: "누가 IP 192.168.1.20을 가지고 있나요?"

전송 방식:
- 송신 MAC: 송신자 MAC (예: 1111.2222.3333)
- 수신 MAC: FFFF.FFFF.FFFF (브로드캐스트)
- 송신 IP: 192.168.1.10
- 수신 IP: 192.168.1.20 (조회 대상)

결과: 네트워크의 모든 호스트가 수신

📌 ARP Reply 패킷

특징: 유니캐스트 (Unicast)

자신의 IP 주소를 가진 호스트가 응답

응답: "저입니다! 제 MAC은 1111.2222.2222입니다"

전송 방식:
- 송신 MAC: 응답자 MAC (예: 1111.2222.2222)
- 수신 MAC: ARP Request 송신자 MAC (예: 1111.2222.3333)
- 송신 IP: 192.168.1.20
- 수신 IP: 192.168.1.10 (ARP Request 송신자)

결과: ARP Request 송신자에게만 전송

📊 ARP Request vs Reply 비교

항목 ARP Request ARP Reply
목적 MAC 주소 조회 MAC 주소 응답
전송 방식 브로드캐스트 ⭐ 유니캐스트 ⭐
수신 MAC FFFF.FFFF.FFFF 특정 MAC
수신 대상 모든 호스트 ARP Request 송신자
캐시 저장 X ✅ (송신자가 저장)

2️⃣ Switch의 포워딩과 플러딩

📌 정의

Switch는 MAC Address Table을 참고하여 패킷을 전송합니다.

MAC Address Table 구조:

목적지 MAC 주소 → 출구 포트 번호 매핑

예시:
1111.2222.2222 → 포트 1
1111.2222.3333 → 포트 2
1111.2222.4444 → 포트 3

3️⃣ 포워딩 (Forwarding) ✅

📌 정의

조건: 목적지 정보가 MAC Address Table에 있는 경우

Switch가 목적지 MAC 주소를 알고 있는 경우
→ 해당 포트로만 패킷 전송 (효율적!)

📊 포워딩 동작 흐름

1. 패킷 수신
   ↓
2. 패킷의 목적지 MAC 주소 확인
   ↓
3. MAC Address Table에서 검색
   ↓
4. 해당 포트 번호 찾음 ✅
   ↓
5. 그 포트로만 전송 (다른 포트는 전송 안 함)
   ↓
6. 송신 포트는 자동 제외

🎯 포워딩 예시

상황:

Switch의 MAC Address Table:
- 1111.2222.1111 → 포트 1
- 1111.2222.2222 → 포트 2
- 1111.2222.3333 → 포트 3

패킷 정보:
- 송신 MAC: 1111.2222.1111 (포트 1에서 수신)
- 목적지 MAC: 1111.2222.2222

동작:

1. 목적지 MAC(1111.2222.2222)을 테이블에서 검색
   ↓
2. 포트 2에 연결되어 있음을 확인
   ↓
3. 포트 2로만 패킷 전송 ✅
   ↓
4. 포트 3, 4, 5 등은 패킷 수신 안 함 (효율적!)

4️⃣ 플러딩 (Flooding) ⚠️

📌 정의

조건: 목적지 정보가 MAC Address Table에 없는 경우

Switch가 목적지 MAC 주소를 모르는 경우
→ 송신 포트 제외 모든 포트로 패킷 전송 (브로드캐스트 처럼 동작)

📊 플러딩 동작 흐름

1. 패킷 수신
   ↓
2. 패킷의 목적지 MAC 주소 확인
   ↓
3. MAC Address Table에서 검색
   ↓
4. 목적지 정보 없음 ❌
   ↓
5. 송신 포트를 제외한 모든 포트로 전송
   (포트 1,3,4,5... 모두 전송)
   ↓
6. 모든 포트로 플러딩

🎯 플러딩 예시

상황:

Switch의 MAC Address Table:
- 1111.2222.1111 → 포트 1
- 1111.2222.2222 → 포트 2
(1111.2222.9999는 등록 안 됨)

패킷 정보:
- 송신 MAC: 1111.2222.1111 (포트 1에서 수신)
- 목적지 MAC: 1111.2222.9999 (등록 안 된 MAC)

동작:

1. 목적지 MAC(1111.2222.9999)을 테이블에서 검색
   ↓
2. 정보 없음! ❌
   ↓
3. 송신 포트(포트 1) 제외 모든 포트로 전송
   → 포트 2, 3, 4, 5로 전송 ⚠️
   ↓
4. 모든 호스트가 패킷 수신

📊 포워딩 vs 플러딩 비교

항목 포워딩 플러딩
조건 MAC이 테이블에 있음 ✅ MAC이 테이블에 없음 ❌
전송 방식 특정 포트만 모든 포트 (송신 제외)
효율성 높음 ⭐ 낮음 ⚠️
패킷 손실 없음 가능
네트워크 부하 적음 많음

포워딩

플러딩


5️⃣ Router의 라우팅 동작

📌 라우팅 테이블

Router는 Routing Table을 참고하여 패킷을 전송합니다.

Routing Table 구조:

목적지 네트워크 주소 → 출구 포트 번호 매핑

예시:
192.168.1.0/24 → 포트 1
172.16.2.0/24 → 포트 2
10.0.0.0/24 → 포트 3

6️⃣ Router의 포워딩 ✅

📌 정의

조건: 목적지 네트워크가 Routing Table에 있는 경우

Router가 목적지 네트워크를 알고 있는 경우
→ 해당 포트로 패킷 전송

📊 Router 포워딩 동작 흐름

1. 패킷 수신
   ↓
2. 패킷의 목적지 IP 주소 확인
   ↓
3. Subnet Mask로 목적지 네트워크 ID 추출
   ↓
4. Routing Table에서 검색
   ↓
5. 해당 포트 번호 찾음 ✅
   ↓
6. 그 포트로 패킷 포워딩
   ↓
7. Media Translation (MAC 주소 변환)

🎯 Router 포워딩 예시

상황:

Router의 Routing Table:
- 192.168.1.0/24 → 포트 1
- 172.16.2.0/24 → 포트 2

패킷 정보:
- 송신 IP: 192.168.1.10
- 목적지 IP: 172.16.2.20

동작:

1. 목적지 IP(172.16.2.20)의 네트워크 ID 추출
   172.16.2.20 & 255.255.255.0 = 172.16.2.0
   ↓
2. Routing Table에서 검색
   → 172.16.2.0은 포트 2에 등록됨 ✅
   ↓
3. 포트 2로 패킷 포워딩
   ↓
4. MAC 주소 변환 (Media Translation)
   - 송신 MAC: Router의 포트 2 MAC
   - 수신 MAC: 다음 Gateway의 MAC

7️⃣ Router의 드롭 (Drop) 🚫

📌 정의

조건: 목적지 네트워크가 Routing Table에 없는 경우

Router가 목적지 네트워크를 모르는 경우
→ 패킷 폐기 (Drop) ❌

📊 Drop 동작 흐름

1. 패킷 수신
   ↓
2. 목적지 IP 주소 확인
   ↓
3. Subnet Mask로 네트워크 ID 추출
   ↓
4. Routing Table에서 검색
   ↓
5. 정보 없음 ❌
   ↓
6. 패킷 폐기 (Drop) 🚫
   ↓
7. 송신자에게 ICMP 오류 전송
   (Destination Unreachable)

⚠️ Drop이 필요한 이유

1. 불필요한 트래픽 제거
   - Router가 무한 루프 방지

2. 보안 강화
   - 허가되지 않은 목적지로의 패킷 차단

3. 네트워크 효율성
   - 불필요한 패킷 전송 방지

8️⃣ 브로드캐스트/멀티캐스트 주소 처리

📌 특징

브로드캐스트 주소: 255.255.255.255
멀티캐스트 주소: 224.0.0.0 ~ 239.255.255.255

이들 주소는 Router의 Routing Table에 등록되지 않음!

📊 브로드캐스트 패킷 처리

✅ Switch에서의 처리

1. 브로드캐스트 패킷 수신
   ↓
2. MAC Address Table 참고
   → 브로드캐스트 MAC(FFFF.FFFF.FFFF)은 테이블에 없음
   ↓
3. 플러딩 동작 (모든 포트로 전송)
   → 송신 포트 제외 모든 포트로 전송

❌ Router에서의 처리

1. 브로드캐스트 패킷 수신
   ↓
2. 목적지 주소: 255.255.255.255 (브로드캐스트)
   ↓
3. Routing Table 확인
   → 브로드캐스트 주소는 라우팅 테이블에 없음!
   ↓
4. 패킷 폐기 (Drop) ❌
   ↓
5. 브로드캐스트 패킷은 외부망으로 나가지 않음 ⭐

🎯 브로드캐스트 패킷의 제한

내부망 (192.168.1.0/24):
- 브로드캐스트 주소: 192.168.1.255
- Switch: 플러딩으로 전송 (모든 호스트 수신) ✅
- Router: 이 패킷은 라우팅하지 않음 (Drop) ❌

결과: 브로드캐스트는 같은 네트워크 내에서만 유효!
외부 네트워크로는 전파되지 않음 (보안상 이점)

📊 멀티캐스트 패킷 처리

Switch에서의 처리

1. 멀티캐스트 패킷 수신 (예: 227.154.65.50)
   ↓
2. 멀티캐스트 MAC 생성: 0100.5E1A.4132
   ↓
3. MAC Address Table 확인
   → 멀티캐스트 MAC은 테이블에 특별히 등록되지 않음
   ↓
4. IGMP Snooping 기능 사용 (보통)
   - 멀티캐스트 그룹에 가입한 포트로만 전송

Router에서의 처리

1. 멀티캐스트 패킷 수신
   ↓
2. Routing Table 확인
   → 멀티캐스트 주소는 특별한 처리 필요
   ↓
3. 옵션 1: IGMP를 통한 그룹 전송
   → 멀티캐스트 그룹에 가입한 호스트들에게만 전송
   ↓
4. 옵션 2: Drop
   → 멀티캐스트 라우팅 미지원 시 폐기

9️⃣ 정리: Switch vs Router 동작

📊 완벽한 비교 표

항목 Switch (L2) Router (L3)
참고 테이블 MAC Address Table Routing Table
조회 주소 MAC 주소 네트워크 ID
포워딩 조건 MAC이 테이블에 있음 ✅ 네트워크가 테이블에 있음 ✅
포워딩 동작 특정 포트로 전송 특정 포트로 전송
미지정 대상 플러딩 (모든 포트) 드롭 (폐기)
브로드캐스트 플러딩 드롭 ⭐
멀티캐스트 플러딩 또는 IGMP IGMP 또는 드롭

🔟 핵심 포인트 정리

✅ 반드시 기억할 것

  1. ARP Request는 브로드캐스트 📣

    • 모든 호스트에게 "누가 이 IP를 가지고 있나?" 질문
  2. ARP Reply는 유니캐스트 📬

    • ARP Request 송신자에게만 응답
  3. Switch의 포워딩

    • MAC이 테이블에 있으면 특정 포트로 전송 (효율적)
  4. Switch의 플러딩 ⚠️

    • MAC이 테이블에 없으면 모든 포트로 전송 (비효율적)
  5. Router의 포워딩

    • 네트워크가 라우팅 테이블에 있으면 전송
  6. Router의 드롭 🚫

    • 네트워크가 라우팅 테이블에 없으면 패킷 폐기
  7. 브로드캐스트는 Router를 통과 불가 ⭐⭐⭐

    • Switch: 플러딩으로 전송
    • Router: 드롭으로 폐기
    • → 같은 네트워크 내에서만 유효!
  8. Media Translation 🔄

    • Router를 거칠 때 MAC 주소는 변경되지만 IP는 유지

📋 실무 명령어

Switch 관련

MAC Address Table 확인:
C:\> show mac-address-table (Cisco 스위치)

MAC 테이블 초기화:
C:\> clear mac-address-table dynamic

Router 관련

라우팅 테이블 확인:
C:\> route print

기본 게이트웨이:
C:\> route add 0.0.0.0 mask 0.0.0.0 <gateway_ip>

패킷 추적:
C:\> tracert <destination_ip>

💡 핵심 포인트

✅ 반드시 기억해야 할 것

  1. IP는 변경 없음 - 전체 경로에서 송신지 IP와 목적지 IP는 동일
  2. MAC은 매번 변경 - 각 링크(구간)마다 직접 연결된 기기의 MAC으로 변경
  3. Subnet Mask 검사 - 송신자가 먼저 내부망/외부망 판별
  4. Gateway 중요성 - 외부망 통신에서 Gateway 경로를 거쳐야 함
  5. ARP 캐시 - 반복 통신 시 캐시에서 MAC 주소 빠르게 조회

후기: 오늘 수업은 뭔가 그동안 공부했던 느낌이랑 좀 달라서 따라가는데 힘들었다... 책 보면서 읽는게 편한 타입인가???