03 네트워크 계층
03 -1 , LAN을 넘어서는 네트워크 계층
▶ 17강
- 03-1 LAN을 넘어서는 네트워크 계층
- 네트워크 계층의 기능
1. 네트워크 계층이란?- 네트워크 계층(3계층, Layer 3): **랜(Local Area Network, LAN)**을 넘어서 다른 네트워크와 통신하기 위한 계층
- 이전까지 배운 **물리 계층(1계층), 데이터 링크 계층(2계층)**은 같은 네트워크(LAN) 내 통신을 위한 기술
- IP 주소 할당 → 송신지 및 수신지 식별
- 라우팅(Routing) → 최적의 경로 결정
2. 네트워크 계층이 필요한 이유- 랜(LAN) 내부에서는 스위치, MAC 주소만으로 패킷을 주고받을 수 있음
- 다른 네트워크(인터넷)와 통신하려면 MAC 주소만으로는 부족함 → 네트워크 계층 필요
- 물리 계층과 데이터 링크 계층만으로는 최적의 경로 선택 불가
- 예시: 지구 반대편 친구에게 패킷을 보내려면 여러 네트워크를 거쳐야 함
- 패킷이 가야 할 경로(라우팅)를 결정하는 기능이 필요 → 네트워크 계층에서 해결
- MAC 주소는 네트워크 인터페이스(NIC)에 고유하게 할당
- 하지만 네트워크 환경에 따라 위치가 변할 수 있음 (ex. 노트북을 다른 네트워크에 연결하면 MAC 주소는 그대로지만 네트워크 주소는 달라짐)
- 따라서 IP 주소를 활용하여 네트워크 내 위치를 동적으로 관리
3. 네트워크 계층의 주요 기능- IP 주소 (Internet Protocol Address): 네트워크 상에서 각 호스트(장치)의 위치를 지정하는 주소
- MAC 주소는 고유하지만, IP 주소는 변경 가능
- IP 주소 = 네트워크 주소 + 호스트 주소
- 네트워크 주소: 어떤 네트워크에 속하는지 식별
- 호스트 주소: 네트워크 내 개별 장치 식별
정의 네트워크 카드(NIC)에 고유하게 부여된 주소 네트워크에서 호스트의 위치를 나타내는 주소 역할 네트워크 인터페이스 식별 (수신인) 네트워크 내에서 경로 지정 (수신지) 할당 방식 제조사에 의해 사전 할당 (변경 어려움) 네트워크 환경에 따라 변경 가능 변경 가능 여부 일반적으로 고정 (일부 변경 가능) 수동 설정 or DHCP를 통해 자동 할당 사용 계층 데이터 링크 계층 (2계층) 네트워크 계층 (3계층) - MAC 주소 = 택배 수신인 (고유 식별자, 물리적 주소)
- IP 주소 = 택배 배송 주소 (변경 가능, 네트워크 경로 지정)
2) 라우팅(Routing)- 라우팅(Routing): 패킷이 최적의 경로를 따라 목적지에 도착하도록 경로를 결정하는 과정
- 라우팅을 수행하는 대표적인 네트워크 장비: 라우터(Router)
- 라우터는 다양한 네트워크 간 경로를 설정하고 데이터 전송을 중계
- 라우팅 프로토콜: 네트워크 경로를 동적으로 관리하는 규칙
- 예: OSPF, BGP, RIP
- 동일한 네트워크 내에서는 스위치(MAC 주소 기반)로 통신 가능
- 다른 네트워크와 통신하려면 적절한 경로를 선택해야 하며, 이 역할을 라우터가 수행
4. DHCP를 통한 IP 주소 할당- IP 주소는 고정적이지 않음 → 유동적으로 할당 가능
- 네트워크에 접속할 때 자동으로 IP 주소를 받을 수도 있음
- DHCP(Dynamic Host Configuration Protocol): 네트워크에 연결된 장치가 자동으로 IP 주소를 할당받는 프로토콜
- 라우터(혹은 DHCP 서버)가 자동으로 사용 가능한 IP 주소를 부여
- IP 주소를 직접 설정하지 않아도 네트워크에 연결 가능
- 집에서 Wi-Fi에 연결할 때 IP 주소를 설정하지 않아도 자동으로 연결되는 이유 = DHCP가 동작하기 때문
📌 핵심 정리- 네트워크 계층의 역할
- 다른 네트워크와 통신 가능하게 함 (LAN을 넘어 WAN 통신 지원)
- IP 주소를 활용하여 목적지를 식별
- 라우팅을 통해 최적 경로 선택
- 네트워크 계층이 필요한 이유
- MAC 주소만으로는 다른 네트워크에 있는 호스트를 특정할 수 없음
- 패킷이 여러 네트워크를 거쳐 이동할 때 최적 경로를 결정하는 기능이 필요 (라우팅)
- 네트워크 계층의 주요 개념
- IP 주소: 네트워크 내 위치를 나타내는 주소
- 라우팅(Routing): 최적의 네트워크 경로를 찾아 패킷 전달
- DHCP: 네트워크 장치가 자동으로 IP 주소를 할당받는 프로토콜
▶ 18강
IP(인터넷 프로토콜)
1. IP(Internet Protocol)란?
- IP(인터넷 프로토콜): 네트워크 계층(3계층)에서 가장 중요한 프로토콜
- 네트워크에서 패킷을 주고받을 때 사용되는 주소 체계 및 데이터 전달 방식을 규정
- 물리 계층, 데이터 링크 계층의 한계를 극복하기 위해 사용됨
- IP 주소를 통해 송수신 대상 지정
- 라우팅을 통해 패킷 전달 경로 결정
✅ IP 프로토콜의 버전
IPv4 | 현재 가장 많이 사용되는 IP 버전 (32비트 주소 체계) |
IPv6 | IPv4 주소 부족 문제를 해결하기 위해 개발된 최신 버전 (128비트 주소 체계) |
2. IP 프로토콜의 주요 기능
- 주소 지정 (Addressing) → 송수신 호스트를 구별하는 IP 주소 체계 제공
- 단편화 (Fragmentation) → 패킷 크기가 너무 클 경우, 작은 단위로 분할하여 전송
📌 IP 표준 문서(RFC)
- RFC 791: IP 프로토콜을 정의하는 공식 문서
- RFC(Request for Comments): 인터넷 및 네트워크 기술을 제안하는 문서
- RFC 문서는 새로운 버전이 나와도 기존 문서는 그대로 유지됨 (폐지되지 않음)
3. IP 주소 체계
- IPv4 주소 형식: 192.168.1.1
- 32비트(4바이트)로 구성
- 각 숫자는 8비트(옥텟, Octet) → 0~255 사이의 값 사용
- 총 2³² (약 43억 개) IP 주소 가능
- IPv4 주소 체계는 전 세계 인터넷 기기를 감당하기 부족 → IPv6 등장
2) IPv6 주소 체계
- IPv6 주소 형식: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
- 128비트(16바이트)로 구성
- 16진수 사용, 콜론(:)으로 구분된 8개의 그룹
- 총 2¹²⁸개의 주소 가능 (사실상 무한대)
- IPv6는 주소 부족 문제 해결, 라우팅 효율성 증가, 보안 강화 등의 장점이 있음
✅ IPv4 vs. IPv6 비교
주소 크기 | 32비트 | 128비트 |
표현 방식 | 10진수, 점(.)으로 구분 | 16진수, 콜론(:)으로 구분 |
주소 개수 | 약 43억 개 | 사실상 무한 |
브로드캐스트 | 지원 | 미지원 (멀티캐스트로 대체) |
NAT 필요 여부 | 필요 | 불필요 |
보안 | 낮음 | 보안 강화 (IPSec 기본 지원) |
4. 단편화(Fragmentation)
- 패킷 크기가 네트워크에서 허용하는 최대 크기(MTU)를 초과하면, 작은 조각으로 나누어 전송
- MTU (Maximum Transmission Unit):
- 한 번에 전송 가능한 최대 패킷 크기 (일반적으로 1500바이트)
- MTU보다 큰 패킷은 여러 개의 작은 패킷으로 단편화됨
- 단편화된 패킷은 목적지에서 다시 조립됨
📌 단편화 과정
- 패킷 크기가 MTU보다 크면 여러 개의 작은 패킷으로 나눔
- *각 단편(프래그먼트)**에는 원래 데이터의 일부와 식별 정보(식별자, 오프셋 등) 포함
- 목적지에서 단편화된 패킷을 원래대로 조립
✅ 단편화의 주요 필드
식별자(Identification) | 원래 데이터에서 단편화된 패킷들을 식별 |
플래그(Flags) | 단편화된 패킷 여부 표시 (DF: 단편화 금지, MF: 더 많은 단편 존재) |
단편화 오프셋(Fragment Offset) | 원래 데이터에서 각 단편의 위치 지정 |
TTL (Time To Live) | 패킷의 생존 시간 (라우터를 거칠 때마다 감소) |
프로토콜(Protocol) | 상위 계층(TCP/UDP) 프로토콜 지정 |
송신지 IP / 수신지 IP | 패킷의 출발지 및 목적지 주소 |
📌 TTL(Time To Live)
- 패킷이 네트워크에서 영원히 남아있지 않도록 제한하는 값
- 패킷이 라우터를 지날 때마다 TTL 값이 1씩 감소
- TTL 값이 0이 되면 패킷은 폐기됨
- 라우팅에서 무한 루프 방지 역할
5. IP 패킷 구조 (IPv4 & IPv6)
- IPv4 헤더는 여러 필드로 구성됨
- 중요한 필드:
- 버전(Version): IPv4인지 IPv6인지 식별
- 헤더 길이(Header Length)
- TTL
- 송신지 IP 주소 / 수신지 IP 주소
- 프로토콜(Protocol): 상위 계층(TCP/UDP) 정보
2) IPv6 패킷 구조
- IPv6는 IPv4보다 헤더 구조가 간소화됨
- IPv6 헤더의 주요 필드:
- 버전(Version)
- 트래픽 클래스(Traffic Class): QoS(서비스 품질) 관련 정보 포함
- 플로우 라벨(Flow Label): 패킷 흐름 구분
- 페이로드 길이(Payload Length)
- 다음 헤더(Next Header): 상위 계층 정보 (TCP, UDP, ICMPv6 등)
- 송신지 / 수신지 IP 주소
- 확장 헤더(Extension Header): 추가적인 기능 지원
✅ IPv6 확장 헤더(Extension Header)
- IPv6는 확장 헤더를 사용하여 기능을 추가
- 주요 확장 헤더:
- Hop-by-Hop Options: 패킷이 경유하는 모든 라우터가 처리해야 하는 옵션
- Destination Options: 목적지에서만 처리하는 옵션
- Routing Header: 경로 지정 정보 포함 (소스 라우팅)
- Fragment Header: IPv6의 단편화 정보 포함
- Authentication Header (AH) & ESP (Encapsulating Security Payload): IPSec 보안 관련 정보
📌 핵심 정리
- IP(인터넷 프로토콜)는 네트워크 계층의 핵심 프로토콜
- IP 주소를 통해 송수신 대상 지정
- 라우팅을 통해 최적의 경로 선택
- 단편화를 통해 큰 패킷을 작은 단위로 나누어 전송
- IPv4 vs. IPv6
- IPv4는 32비트 주소(4바이트) → 약 43억 개 주소 한계
- IPv6는 128비트 주소(16바이트) → 사실상 무한한 주소 제공
- IP 패킷 단편화(Fragmentation)
- 패킷 크기가 MTU를 초과하면 단편화 진행
- 목적지에서 다시 조립
- TTL(Time To Live): 패킷의 생존 시간 설정, 무한 루프 방지
✅ 결론: IP 프로토콜은 네트워크 통신의 필수 요소!
▶ 19강
- ARP(Address Resolution Protocol)
1. ARP란?- ARP (Address Resolution Protocol, 주소 결정 프로토콜) → IP 주소를 기반으로 MAC 주소를 알아내는 프로토콜
- 네트워크에서 통신할 때 IP 주소와 MAC 주소가 모두 필요함
- IP 주소는 알고 있지만 MAC 주소를 모르는 경우 ARP를 사용하여 MAC 주소를 조회함
- 동일 네트워크(서브넷) 내에서 동작하는 프로토콜
2. ARP의 동작 과정- 호스트 A가 호스트 B에게 데이터를 전송하려고 함
- 호스트 A는 B의 IP 주소는 알고 있지만 MAC 주소는 모름
- MAC 주소를 알아내기 위해 ARP 요청(ARP Request) 메시지를 보냄
- ARP 요청(ARP Request)
- "이 IP 주소(192.168.1.2)를 가진 MAC 주소를 알고 있는 사람?"
- 브로드캐스트(모든 네트워크 노드가 받음)로 전송
- MAC 주소를 모를 때마다 실행됨
- ARP 응답(ARP Reply)
- IP 주소를 가진 호스트(B)가 자신의 MAC 주소를 포함하여 응답
- 유니캐스트(특정 대상에게만)로 응답
- "나는 192.168.1.2이고, 내 MAC 주소는 00:1A:2B:3C:4D:5E야!"
- ARP 테이블(ARP Cache) 저장
- A는 B의 MAC 주소를 ARP 테이블에 저장하여 이후에는 ARP 요청 없이 직접 통신 가능
- 일정 시간이 지나면 자동 삭제됨 (TTL)
3. ARP 패킷 구조- ARP 요청과 응답은 ARP 패킷을 사용하여 전달됨
- 주요 필드:
오퍼레이션 코드 ARP 요청(1)인지, ARP 응답(2)인지 식별 송신지 하드웨어 주소 요청을 보낸 호스트의 MAC 주소 수신지 하드웨어 주소 요청을 받는 호스트의 MAC 주소 (요청 시 빈 값) 송신지 프로토콜 주소 요청을 보낸 호스트의 IP 주소 수신지 프로토콜 주소 요청을 받는 호스트의 IP 주소
4. ARP 테이블 (ARP Cache)- ARP 요청을 통해 얻은 IP 주소 ↔ MAC 주소 매핑 정보를 저장
- OS마다 명령어로 확인 가능
- Windows: arp -a
- Mac/Linux: arp -a
- 일정 시간이 지나면 자동 삭제됨
- arp -d <IP> 명령어를 통해 수동 삭제 가능
5. ARP의 네트워크 범위- 같은 네트워크(서브넷) 내에서만 사용 가능
- 다른 네트워크(다른 서브넷)와 통신할 경우 라우터를 통해야 함
- A가 B의 IP 주소를 알고 있지만 MAC 주소는 모르는 경우
- A는 기본 게이트웨이(라우터)의 MAC 주소를 ARP를 통해 조회
- A는 패킷을 라우터로 보냄 → 라우터가 최종 목적지까지 전달
- 중간 라우터도 필요하면 ARP를 사용하여 목적지 MAC 주소를 조회
6. ARP와 라우터- 같은 네트워크에서는 직접 ARP 요청을 통해 MAC 주소를 조회
- 다른 네트워크에서는 라우터(게이트웨이) MAC 주소를 조회
- 라우터는 네트워크별로 ARP 요청을 수행하여 MAC 주소를 알아냄
- A(192.168.1.10)가 B(192.168.2.20)에게 패킷을 보낼 경우
- A는 B의 MAC 주소를 모르므로 기본 게이트웨이(192.168.1.1)의 MAC 주소를 ARP 요청으로 조회
- A는 B의 패킷을 라우터에게 보냄
- 라우터는 B의 네트워크에서 ARP 요청을 수행하여 B의 MAC 주소를 알아냄
- 라우터는 최종적으로 B에게 패킷을 전달
7. ARP의 한계 및 보안 문제- ARP 스푸핑(ARP Spoofing) 공격
- 공격자가 잘못된 MAC 주소를 응답하여 네트워크 트래픽을 가로챌 수 있음
- 가짜 ARP 응답을 보내 다른 호스트의 트래픽을 공격자가 지정한 MAC 주소로 유도
- 해결책: 정적 ARP 테이블 설정 or ARP 보안 기능 사용(Dynamic ARP Inspection, DAI)
- 브로드캐스트 트래픽 증가
- 모든 네트워크 장치가 ARP 요청을 받기 때문에 네트워크 부하 증가 가능
- 대규모 네트워크에서는 ARP 캐싱을 적극적으로 활용
📌 핵심 정리- ARP(Address Resolution Protocol)란?
- IP 주소를 기반으로 MAC 주소를 알아내는 프로토콜
- 같은 네트워크(서브넷) 내에서만 동작
- 요청(브로드캐스트) → 응답(유니캐스트) 과정 수행
- ARP의 동작 과정
- 호스트 A가 호스트 B의 MAC 주소를 모름
- ARP 요청(브로드캐스트) 전송
- B가 ARP 응답(유니캐스트) 전송
- A가 ARP 테이블에 저장 (추후 ARP 요청 없이 사용)
- ARP 테이블 (ARP Cache)
- ARP 요청을 줄이기 위해 IP ↔ MAC 매핑 정보를 저장
- 일정 시간이 지나면 자동 삭제됨
- arp -a 명령어로 확인 가능
- 네트워크 간 통신 시 ARP 역할
- 같은 네트워크에서는 직접 ARP 조회 후 통신
- 다른 네트워크에서는 라우터(게이트웨이)의 MAC 주소를 조회
- 라우터가 ARP를 통해 목적지 MAC 주소를 알아내 최종 전달
- ARP의 보안 문제 및 해결책
- ARP 스푸핑 공격 가능 → 정적 ARP 설정, 보안 기능(Dynamic ARP Inspection) 활용
- ARP 요청이 많아질 경우 네트워크 부하 발생 → ARP 캐싱 적극 활용
✅ 결론: ARP는 네트워크에서 필수적인 프로토콜로, IP 주소만 알고 있을 때 MAC 주소를 알아내는 역할을 한다. 하지만 보안 문제(ARP 스푸핑)와 네트워크 부하 문제를 해결하기 위한 추가적인 관리가 필요하다.
03 - 1 , 추가 : IP 단편화를 피하는 방법
▶ 20 강
03 - 1 , 추가 : IP 단편화를 피하는 방법
- 20강03 - 1 추가 : IP단편화를 피하는 방법IP 단편화를 피하는 방법 (네트워크 기초 강의 20강 요약)
1. IP 단편화(Fragmentation)란?- IP 단편화는 송신 패킷의 크기가 네트워크의 MTU(Maximum Transmission Unit)보다 클 경우 패킷을 쪼개서 보내는 과정
- MTU(Maximum Transmission Unit): 한 번에 전송할 수 있는 최대 패킷 크기
- 일반적인 이더넷 네트워크의 MTU: 1500 바이트
- MTU를 초과하는 패킷은 **IP 단편화(Fragmentation)**가 발생하여 쪼개짐
- 쪼개진 패킷들은 수신지에서 **재조립(Reassembly)**됨
2. IP 단편화의 문제점- 네트워크 대역폭 낭비
- 단편화된 각 패킷마다 추가적인 IP 헤더가 붙음 → 불필요한 데이터 전송 증가
- IP 헤더는 20바이트 이상이므로, 단편화가 많을수록 실제 데이터보다 헤더 비중이 커짐
- 네트워크 성능 저하
- 단편화된 패킷은 수신 측에서 재조립(Reassembly) 과정이 필요함 → 성능 저하 발생
- 라우터에서도 단편화된 패킷을 처리하는 데 추가적인 연산이 필요함
- 패킷 손실 증가
- 단편화된 패킷 중 하나라도 손실되면 전체 패킷을 재전송해야 함
- 패킷이 많이 단편화될수록 전송 오류 가능성 증가
- 보안 문제
- 일부 네트워크 방화벽과 IDS(침입 탐지 시스템)는 단편화된 패킷을 정상적으로 처리하지 못할 수 있음
- 공격자가 단편화를 이용해 **악성 트래픽을 숨기는 공격(예: Fragmentation 공격)**을 수행할 수 있음
3. IP 단편화를 피하는 방법✅ 방법 1: 경로 MTU(Path MTU, PMTU) 발견 기법 사용- 경로 MTU(Path MTU, PMTU): 송신지부터 수신지까지 모든 경로에서 허용하는 최소 MTU 크기
- 모든 네트워크 장비(라우터 포함) 중 가장 작은 MTU 값을 기준으로 패킷 크기를 조정
- 경로 MTU보다 작은 크기의 패킷만 보내면 IP 단편화 없이 통신 가능
-
장비 MTU 크기 호스트 A (송신지) 1500 바이트 라우터 1 1400 바이트 라우터 2 1300 바이트 라우터 3 1200 바이트 호스트 B (수신지) 1500 바이트 - IP 헤더의 DF(Don't Fragment) 플래그를 설정하면 단편화를 방지할 수 있음
- DF 플래그가 설정된 패킷이 MTU보다 크면 라우터가 패킷을 버리고 ICMP 오류 메시지를 보냄
- 이를 활용해 PMTU를 동적으로 탐색할 수 있음
- 송신지에서 DF 플래그가 설정된 패킷을 전송
- 중간 라우터에서 MTU보다 큰 패킷을 받으면 ICMP "Fragmentation Needed" 오류 발생
- 송신지는 ICMP 메시지를 받아 더 작은 크기로 패킷을 다시 전송
- 이를 반복하여 최적의 MTU 값을 찾아냄
- TCP 통신에서 MSS(Maximum Segment Size) 값을 조정하여 단편화를 피할 수 있음
- MSS = MTU - (IP 헤더 크기 + TCP 헤더 크기)
- 일반적으로 MSS = 1460 바이트 (이더넷 MTU 1500 - IP 20 - TCP 20)
- TCP 핸드셰이크 과정에서 MSS 값을 협상하여 단편화를 최소화
- TCP는 MSS 조정을 통해 단편화를 피할 수 있지만, UDP는 단편화 방지 기능이 없음
- UDP를 사용하는 애플리케이션(VoIP, 동영상 스트리밍 등)은 직접 패킷 크기를 조정해야 함
- PMTU를 고려하여 MTU 이하로 패킷 크기를 설정해야 함
4. IP 단편화가 적은 이유- 대부분의 네트워크 장비 및 운영체제가 DF 플래그 설정을 기본값으로 사용
- TCP MSS 조정을 통해 자동으로 단편화를 방지
- 경로 MTU 발견(PMTU Discovery) 기법이 일반적으로 적용됨
- IP 버전 4의 대부분 패킷에서 DF 플래그가 설정됨
- "Don't Fragment" 비트가 1로 설정되어 있어 단편화를 막음
- 즉, IP 단편화는 피하는 것이 일반적인 트렌드
- 성능 저하, 대역폭 낭비, 보안 문제를 막기 위해 단편화를 회피하는 방식이 선호됨
📌 핵심 정리- IP 단편화란?
- 패킷 크기가 MTU보다 클 경우 작은 단위로 나눠서 전송하는 과정
- 수신 측에서 다시 조립해야 함 (성능 저하 가능)
- 단편화의 문제점
- 불필요한 트래픽 증가 (IP 헤더 추가)
- 성능 저하 (재조립 부하)
- 패킷 손실 증가 (한 조각만 손실돼도 전체 패킷 재전송 필요)
- 보안 취약점 (Fragmentation 공격)
- 단편화를 피하는 방법 ✅ 경로 MTU 발견(PMTU Discovery)
- 송신지부터 수신지까지 모든 네트워크 장비 중 가장 작은 MTU 값을 기준으로 패킷 크기를 조정
- 단편화를 방지할 수 있음
- DF 플래그를 설정하여 단편화를 강제로 방지
- MTU보다 큰 패킷이 있으면 ICMP 오류 메시지를 통해 PMTU 값을 동적으로 조정
- TCP 통신에서 MSS(Maximum Segment Size) 값을 설정하여 단편화를 방지
- UDP 기반 애플리케이션(VoIP, 스트리밍 등)은 MTU를 고려하여 패킷 크기를 직접 설정해야 함
- 오늘날 단편화는 거의 발생하지 않음
- DF 플래그 설정이 일반적
- PMTU Discovery 기법 활용
- TCP MSS 조정이 자동으로 적용됨
✅ 결론: IP 단편화는 피하는 것이 좋으며, 이를 위해 PMTU Discovery, DF 플래그, TCP MSS 조정 등의 기법이 활용된다.
03 -2 , IP 주소
▶ 21 강
-
1. IP 주소의 개요- IP 주소는 네트워크 상에서 장치를 식별하는 주소 체계
- 32비트(IPv4)로 구성되며, 네트워크 주소(Network ID)와 호스트 주소(Host ID)로 나뉨
- 네트워크 주소: 네트워크 자체를 식별하는 부분
- 호스트 주소: 특정 네트워크 내에서 호스트를 구별하는 부분
- 192.168.1 → 네트워크 주소
- 10 → 호스트 주소
- /24 → 네트워크 주소에 24비트 할당됨 (나머지 8비트가 호스트 주소)
2. IP 주소의 클래스(Classful Addressing)클래스풀(Classful) 방식에서는 A, B, C, D, E 총 5개 클래스로 구분됨.클래스 네트워크 주소 크기 호스트 주소 크기 네트워크 개수 네트워크당 호스트 수 시작 주소 범위 A 8비트 (1옥텟) 24비트 (3옥텟) 128개 (2⁷) 16,777,214개 1.0.0.0 ~ 126.255.255.255 B 16비트 (2옥텟) 16비트 (2옥텟) 16,384개 (2¹⁴) 65,534개 128.0.0.0 ~ 191.255.255.255 C 24비트 (3옥텟) 8비트 (1옥텟) 2,097,152개 (2²¹) 254개 192.0.0.0 ~ 223.255.255.255 D 멀티캐스트용 사용 안됨 사용 안됨 사용 안됨 224.0.0.0 ~ 239.255.255.255 E 연구/실험용 사용 안됨 사용 안됨 사용 안됨 240.0.0.0 ~ 255.255.255.255
3. 각 클래스별 특징- 네트워크 ID: 8비트, 호스트 ID: 24비트
- 한 네트워크당 16,777,214개 호스트 할당 가능
- 대규모 네트워크(예: 글로벌 기업, 인터넷 제공업체(ISP))에서 사용
- 첫 번째 비트는 항상 0 (0xxxxxxx)
- 10.0.0.1 (A 클래스의 네트워크)
- 126.255.255.255 (A 클래스 최대 호스트 주소)
✅ B 클래스 (128.0.0.0 ~ 191.255.255.255)- 네트워크 ID: 16비트, 호스트 ID: 16비트
- 한 네트워크당 65,534개 호스트 할당 가능
- 중간 규모 네트워크(대기업, 기관, 대학교)에서 사용
- 첫 두 비트는 항상 10 (10xxxxxx)
- 172.16.0.1 (B 클래스의 네트워크)
- 191.255.255.255 (B 클래스 최대 호스트 주소)
✅ C 클래스 (192.0.0.0 ~ 223.255.255.255)- 네트워크 ID: 24비트, 호스트 ID: 8비트
- 한 네트워크당 254개 호스트 할당 가능
- 소규모 네트워크(소기업, 개인용 네트워크)에서 사용
- 첫 세 비트는 항상 110 (110xxxxx)
- 192.168.1.1 (C 클래스의 네트워크)
- 223.255.255.255 (C 클래스 최대 호스트 주소)
✅ D 클래스 (224.0.0.0 ~ 239.255.255.255)- 멀티캐스트(Multicast)용 IP 주소
- 특정 그룹에 패킷을 전송하는 **멀티캐스트 프로토콜(예: IPTV, 온라인 게임, 영상 스트리밍)**에 사용
- 호스트 주소 할당 불가
- 첫 네 비트는 1110 (1110xxxx)
- 224.0.0.1 (멀티캐스트 그룹 주소)
✅ E 클래스 (240.0.0.0 ~ 255.255.255.255)- 연구 및 실험용(Reserved for Future Use)
- 일반 네트워크에서는 사용되지 않음
- 첫 네 비트는 1111 (1111xxxx)
- 240.0.0.1 (연구용 IP)
4. 네트워크 주소와 브로드캐스트 주소- 네트워크 주소 (Network Address): 네트워크 자체를 나타내는 주소
- 호스트 부분이 모두 0 (192.168.1.0)
- 브로드캐스트 주소 (Broadcast Address): 네트워크 내 모든 호스트에게 데이터를 보내는 용도로 사용
- 호스트 부분이 모두 1 (192.168.1.255)
- 네트워크 주소: 192.168.1.0
- 사용 가능한 호스트 주소: 192.168.1.1 ~ 192.168.1.254
- 브로드캐스트 주소: 192.168.1.255
5. 클래스풀(Classful) 주소 체계의 문제점- A 클래스는 1,600만 개의 호스트 주소를 가질 수 있지만, 실제로 필요한 호스트 수는 훨씬 적을 수도 있음 → 낭비 심각
- 작은 네트워크에 C 클래스를 사용하면 최대 254개까지만 사용 가능 → 확장 어려움
- 네트워크의 크기를 조정할 방법이 없음 → 특정 크기의 네트워크만 할당 가능
- CIDR (Classless Inter-Domain Routing, 클래스리스 주소 체계)
- 네트워크 크기를 자유롭게 조정할 수 있도록 IP 주소를 서브넷 마스크와 함께 사용
- CIDR 방식에서는 A/B/C 클래스 구분 없이 유동적으로 네트워크 크기를 조정 가능
- 192.168.1.10/24 → 서브넷 마스크: 255.255.255.0
- 192.168.1.10/26 → 서브넷 마스크: 255.255.255.192 (더 작은 네트워크로 쪼갬)
📌 핵심 정리- IP 주소는 네트워크 주소 + 호스트 주소로 구성됨
- 클래스풀(Classful) 방식에서는 A/B/C/D/E 클래스로 구분됨
- A: 대규모 네트워크 (16M 호스트)
- B: 중규모 네트워크 (65K 호스트)
- C: 소규모 네트워크 (254 호스트)
- D: 멀티캐스트용
- E: 연구용
- 네트워크 주소와 브로드캐스트 주소는 호스트에 할당 불가
- 클래스풀 방식의 문제점을 해결하기 위해 CIDR(Classless) 방식이 도입됨
▶ 22 강
- 클래스리스 주소 체계와 서브네팅
1. 클래스풀 주소 체계(Classful Addressing)의 문제점 - 기존의 클래스풀(Classful) 주소 체계는 네트워크 크기를 A, B, C 클래스로 나누어 할당했으나 다음과 같은 문제점이 있음.
- ❌ 문제점
- IP 주소 낭비
- A 클래스(16M 개), B 클래스(65K 개), C 클래스(254 개)로만 네트워크를 구성해야 함.
- 실제 필요한 네트워크 크기보다 더 많은 IP 주소가 낭비됨 (예: 300명 필요한데 C 클래스(254명) 부족 → B 클래스(65K) 사용해야 함 → 낭비 발생)
- 유연성 부족
- 고정된 크기의 네트워크만 할당 가능 (A=8비트, B=16비트, C=24비트)
- 네트워크 크기를 세밀하게 조정할 수 없음.
2. 클래스리스 주소 체계(Classless Addressing) - IP 주소 낭비
- 위 문제를 해결하기 위해 클래스 개념을 제거하고 서브넷 마스크(Subnet Mask)를 활용하는 방식이 도입됨.
- CIDR (Classless Inter-Domain Routing) 라고도 부름.
- ✅ 클래스리스 주소 체계의 특징
- 네트워크 크기를 자유롭게 설정 가능 (A, B, C 구분 X)
- 서브넷 마스크를 이용해 네트워크와 호스트 주소 구분
- 낭비되는 IP 주소 최소화
- 유연한 네트워크 크기 할당 가능 (예: /20, /25, /30 등)
3. 서브넷 마스크(Subnet Mask)
서브넷 마스크란?
- IP 주소에서 네트워크 영역과 호스트 영역을 구분하는 1과 0으로 이루어진 비트열.
- 📌 예시: 기본 서브넷 마스크
- A 클래스: 255.0.0.0 (/8)
- B 클래스: 255.255.0.0 (/16)
- C 클래스: 255.255.255.0 (/24)
4. 서브네팅(Subnetting) - 서브네팅이란?
- 클래스리스 주소 체계를 기반으로 IP 주소를 더 작은 네트워크로 분할하는 과정.
- 📌 서브네팅 예제
- 기존 C 클래스 네트워크: 192.168.1.0/24
- 사용 가능한 호스트 수: 254개 (2⁸ - 2)
- 네트워크 주소: 192.168.1.0
- 브로드캐스트 주소: 192.168.1.255
- 서브넷 마스크를 변경하여 더 작은 네트워크로 분할
- /25 (255.255.255.128) → 호스트 126개
- /26 (255.255.255.192) → 호스트 62개
- /27 (255.255.255.224) → 호스트 30개
5. 서브넷 마스크를 이용한 네트워크 주소 구분 방법 - 기존 C 클래스 네트워크: 192.168.1.0/24
- IP 주소와 서브넷 마스크를 비트 AND 연산하면 네트워크 주소를 알 수 있음.
- 📌 예제
- IP 주소: 192.168.219.100
- 서브넷 마스크: 255.255.255.0
- 비트 연산 과정
📌 결과IP 주소 (10진수) : 192 . 168 . 219 . 100 IP 주소 (2진수) : 11000000.10101000.11011011.01100100 서브넷 마스크 : 11111111.11111111.11111111.00000000 --------------------------------------------- 네트워크 주소 : 11000000.10101000.11011011.00000000 네트워크 주소 (10진수) : 192.168.219.0
- 네트워크 주소: 192.168.219.0
- 호스트 주소 공간: 192.168.219.1 ~ 192.168.219.254
- 브로드캐스트 주소: 192.168.219.255
6. CIDR 표기법 - 서브넷 마스크를 비트 개수로 표시하는 방식
- 📌 예시
- 192.168.1.0/24 → 255.255.255.0
- 192.168.1.0/26 → 255.255.255.192
- 192.168.1.0/30 → 255.255.255.252
7. 서브넷 계산 예제 - 📌 예제: 192.168.0.2/25 분석
- 서브넷 마스크: /25 → 255.255.255.128
- 네트워크 주소:
-
192.168.0.2 (2진수) : 11000000.10101000.00000000.00000010 서브넷 마스크 (2진수): 11111111.11111111.11111111.10000000 --------------------------------------------- 네트워크 주소 (결과): 192.168.0.0
- 브로드캐스트 주소: 192.168.0.127
- 호스트 범위: 192.168.0.1 ~ 192.168.0.126
- 호스트 개수: 2⁷ - 2 = 126개
8. 서브넷 계산 자동화 - 직접 계산하지 않아도 인터넷에서 "서브넷 계산기" 검색하여 자동 계산 가능
- 📌 예시: Subnet Calculator
📌 핵심 정리- 클래스풀 주소 체계(Classful) 문제점:
- IP 주소 낭비
- 네트워크 크기 고정
- 유연성 부족
- 클래스리스 주소 체계(Classless)란?
- 클래스 구분 없이 서브넷 마스크를 활용하여 네트워크를 구분
- CIDR 표기법 (/24, /25, /26 등) 사용
- 서브넷 마스크(Subnet Mask)
- 1과 0으로 이루어진 비트열로 네트워크 영역과 호스트 영역 구분
- 255.255.255.0 → /24, 255.255.255.128 → /25
- 서브네팅(Subnetting)
- 네트워크를 더 작은 서브넷으로 나누어 IP 낭비 방지
- IP 주소와 서브넷 마스크를 비트 AND 연산하여 네트워크 주소 구함
- CIDR 표기법 (Classless Inter-Domain Routing)
- 서브넷 마스크를 비트 개수로 표기 (/24, /26 등)
- 서브넷 크기를 쉽게 관리 가능
- 서브넷 계산기 활용
- 서브넷 마스크, 네트워크 주소, 브로드캐스트 주소, 호스트 범위 등을 자동 계산 가능
- 클래스풀 주소 체계(Classful) 문제점:
▶ 23강
공인 IP 주소와 사설 IP 주소
1. IP 주소의 분류
IP 주소는 다양한 기준으로 분류될 수 있음.
- 공인 IP 주소 vs 사설 IP 주소 (Public vs Private)
- 정적 IP 주소 vs 동적 IP 주소 (Static vs Dynamic)
이번 강의에서는 공인 IP 주소와 사설 IP 주소에 집중.
2. 공인 IP 주소 (Public IP Address)
✔ 공인 IP란?
- 전 세계에서 유일한 IP 주소
- 인터넷에서 직접 접근 가능
- ISP(인터넷 서비스 제공자)나 ICANN(국제 인터넷 주소 관리 기관)에서 할당
- 네트워크 간의 통신(인터넷)을 할 때 사용
📌 공인 IP 주소의 특징
- 네트워크 외부에서 접근 가능
- *ISP(인터넷 제공 업체)**에서 유료로 할당
- 서버, 라우터 등에 주로 사용됨
📌 공인 IP 주소 예시
- 8.8.8.8 (Google DNS)
- 104.244.42.129 (Twitter 서버)
3. 사설 IP 주소 (Private IP Address)
✔ 사설 IP란?
- 외부 인터넷에서 직접 접근 불가능
- 사설 네트워크(Local Network)에서만 유효
- 같은 사설 IP 주소를 여러 네트워크에서 중복 사용 가능
- 보안이 강화되고 IP 주소를 절약할 수 있음
- 가정용 공유기(라우터)가 자동으로 할당
📌 사설 IP 주소 범위 (RFC 1918)
클래스 사설 IP 범위 서브넷
A 클래스 | 10.0.0.0 ~ 10.255.255.255 | /8 (255.0.0.0) |
B 클래스 | 172.16.0.0 ~ 172.31.255.255 | /12 (255.240.0.0) |
C 클래스 | 192.168.0.0 ~ 192.168.255.255 | /16 (255.255.0.0) |
📌 사설 IP 주소의 특징
- 인터넷에서 직접 사용 불가 (공인 IP 주소로 변환 필요)
- 회사, 가정, 학교 등의 내부 네트워크에서 사용
- 라우터가 자동으로 할당 (DHCP 활용)
📌 사설 IP 주소 예시
- 192.168.1.1 (일반적인 가정용 공유기)
- 10.0.0.1 (기업 내부 네트워크)
4. 공인 IP 주소와 사설 IP 주소 비교
비교 항목 | 공인 IP 주소 | 사설 IP 주소 |
고유성 | 전 세계에서 유일 | 네트워크 내부에서만 유효 |
인터넷 사용 | 직접 사용 가능 | 직접 사용 불가 (NAT 필요) |
할당 주체 | ISP, ICANN | 공유기, 라우터(DHCP) |
보안 | 보안에 취약 (공개됨) | 보안에 강함 (외부 접근 차단) |
사용 예시 | 웹 서버, 이메일 서버 | 가정용 PC, 회사 내부 네트워크 |
5. 사설 IP 주소의 인터넷 사용 (NAT - 네트워크 주소 변환)
✔ 사설 IP 주소는 인터넷에 직접 연결되지 않음
- 인터넷 사용을 위해서는 공인 IP 주소로 변환해야 함
- 이 역할을 하는 기술이 NAT(Network Address Translation, 네트워크 주소 변환)
📌 NAT(Network Address Translation)란?
- 사설 IP 주소 → 공인 IP 주소 변환 (출발지 변환)
- 공인 IP 주소 → 사설 IP 주소 변환 (목적지 변환)
- 공유기(라우터)가 NAT 기능을 수행
- 보안을 강화하면서 IP 주소를 절약 가능
📌 NAT 동작 과정
- 사설 네트워크의 PC(192.168.0.2)가 인터넷 접속 요청
- 라우터(NAT 기능)가 사설 IP 주소를 공인 IP 주소로 변환
- 외부 서버가 응답을 공인 IP 주소로 보냄
- 라우터(NAT 기능)가 다시 공인 IP 주소를 사설 IP 주소로 변환
- 최종적으로 192.168.0.2가 응답을 받음
📌 NAT 적용 예시
- 가정용 네트워크: 하나의 공인 IP 주소를 여러 사설 IP 주소가 공유
- 기업 네트워크: 내부 사설 IP 주소를 외부와 통신 가능하게 변환
6. 공인 IP 주소와 사설 IP 주소 확인 방법1️⃣ 명령어를 사용해서 확인
- Windows (CMD)
- ipconfig
- Mac/Linux (터미널)
- ifconfig
2️⃣ 인터넷에서 검색
- 검색창에 "내 IP 주소", "What is my IP?" 입력
- → 공인 IP 주소 확인 가능
7. 공인 IP 주소가 부족해지는 이유
IPv4(32비트)의 총 IP 주소 개수는 2³² = 약 43억 개
하지만 전 세계 인구 + IoT 기기 증가로 인해 부족해짐.
- NAT 사용: 하나의 공인 IP 주소를 여러 사설 IP 주소가 공유
- IPv6 도입: 2¹²⁸ 개의 주소 제공 (사실상 무제한)
8. 결론 (정리)
공인 IP 주소 | 전 세계에서 유일, 인터넷에서 직접 사용 가능 |
사설 IP 주소 | 내부 네트워크에서만 사용 가능, 인터넷 사용 시 NAT 필요 |
NAT (네트워크 주소 변환) | 사설 IP 주소 ↔ 공인 IP 주소 변환 |
공인 IP 주소 확인 | ipconfig, ifconfig, 또는 인터넷 검색 |
사설 IP 주소 범위 | 10.x.x.x, 172.16.x.x, 192.168.x.x |
공인 IP 주소 부족 해결 방법 | NAT 사용, IPv6 도입 |
📌 다음 강의에서는 NAT(네트워크 주소 변환)를 보다 자세히 다룰 예정! 🚀
▶ 24강
정적 IP 주소와 동적 IP 주소
1. 정적 IP 주소 vs 동적 IP 주소
IP 주소는 할당 방식에 따라 두 가지로 나뉨.
- 정적 IP 주소 (Static IP Address)
- 고정된 IP 주소
- 사용자가 직접 설정
- 서버, 네트워크 장비 등에 사용
- 동적 IP 주소 (Dynamic IP Address)
- 자동으로 할당되는 IP 주소
- DHCP 프로토콜을 통해 제공
- 가정, 기업, 공용 네트워크에서 주로 사용
2. 정적 IP 주소 (Static IP Address)
정적 할당 (Static Assignment)
- IP 주소를 직접 수작업으로 설정하는 방식
- 네트워크가 꺼지거나 재부팅해도 IP 주소가 변경되지 않음
- 일반적으로 서버, 공유기, 프린터 등의 장비에 사용됨
📌 정적 IP 주소 설정 시 필요한 값
- IP 주소 (예: 192.168.1.100)
- 직접 입력해야 함
- 서브넷 마스크 (Subnet Mask)
- 네트워크 주소와 호스트 주소를 구분 (255.255.255.0)
- 기본 게이트웨이 (Default Gateway)
- 네트워크 외부로 나가는 첫 번째 경로 (192.168.1.1)
- DNS 서버 (Domain Name System)
- 도메인 네임을 IP 주소로 변환 (8.8.8.8 - Google DNS)
📌 기본 게이트웨이란?
- 네트워크 외부로 나가기 위한 첫 번째 노드
- 일반적으로 라우터(공유기)의 IP 주소와 같음 (192.168.1.1)
📌 정적 IP 주소의 특징
✅ 변경되지 않음 → 네트워크 내에서 일정한 주소 유지
✅ 서버 운영에 적합 → 웹 서버, DB 서버, CCTV 등에서 사용
❌ 수작업 설정 필요 → 네트워크 관리자가 직접 입력해야 함
❌ IP 주소 충돌 가능 → 중복 설정 시 네트워크 오류 발생
3. 동적 IP 주소 (Dynamic IP Address)
✔ 동적 할당 (Dynamic Assignment)
- 자동으로 IP 주소를 할당하는 방식
- 네트워크가 재시작되면 다른 IP 주소를 받을 수도 있음
- 가정, 사무실, 공공 Wi-Fi 등에서 일반적으로 사용
---- > 📌 동적 IP 주소를 할당하는 프로토콜
✅ DHCP (Dynamic Host Configuration Protocol)
- IP 주소를 자동으로 할당
- 사용 가능한 IP 주소 목록에서 임시로 할당 (임대 개념)
- 네트워크 부팅 시마다 새로운 IP 주소를 받을 수도 있음
📌 DHCP 서버란?
- 자동으로 IP 주소를 할당하는 서버
- 일반적으로 공유기(라우터)가 DHCP 서버 역할을 수행
- 네트워크 내 여러 장치(PC, 스마트폰, IoT 기기)에 IP 주소 제공
4. DHCP를 통한 동적 IP 주소 할당 과정
IP 주소를 자동으로 할당받는 과정은 4단계로 이루어짐.
📌 DHCP 프로세스 (DORA 과정)
1️⃣ DHCP Discover | 클라이언트가 DHCP 서버를 찾기 위해 브로드캐스트 요청을 보냄 (0.0.0.0 → 255.255.255.255) |
2️⃣ DHCP Offer | DHCP 서버가 사용 가능한 IP 주소를 포함한 응답을 보냄 |
3️⃣ DHCP Request | 클라이언트가 DHCP 서버에게 특정 IP 주소 요청 |
4️⃣ DHCP Acknowledge | DHCP 서버가 요청을 승인하고, IP 주소 할당 완료 |
✅ DHCP 서버는 IP 주소 외에도 서브넷 마스크, 게이트웨이, DNS 서버 정보도 함께 제공!
5. 정적 IP 주소 vs 동적 IP 주소 비교
비교 항목 | 정적 IP 주소 (Static) | 동적 IP 주소 (Dynamic) |
할당 방식 | 직접 입력 (수작업) | 자동 할당 (DHCP) |
IP 주소 변경 여부 | 변경되지 않음 | 재부팅 시 변경될 가능성 있음 |
설정 난이도 | 네트워크 관리자가 직접 설정해야 함 | 자동 설정 (사용자 개입 없음) |
사용 대상 | 서버, 프린터, CCTV, 공유기 | 일반 PC, 스마트폰, 공공 Wi-Fi |
IP 충돌 가능성 | 있음 (중복 입력 가능) | 없음 (DHCP 서버가 관리) |
보안성 | 상대적으로 보안 취약 (공격 대상 가능) | 보안성이 높음 (주기적 변경) |
운영 비용 | 관리 비용 높음 | 관리 비용 낮음 |
6. DHCP를 사용한 IP 주소 임대 (Lease)
💡 DHCP로 할당받은 IP 주소는 영구적이지 않음.
- 일정 시간이 지나면 IP 주소가 자동 반납됨.
- 이를 임대(Lease) 기간이라고 함.
📌 DHCP 임대 기간
- 일반적으로 수시간 ~ 수일 (설정 가능)
- 임대 기간이 끝나면 새로운 IP 주소를 받을 수도 있음
- 같은 IP 주소를 유지하고 싶다면 임대 갱신(Renewal) 요청 가능
📌 IP 주소 갱신 방법
- Windows (CMD)
- ipconfig /renew
- Mac/Linux (터미널)
- dhclient -r && dhclient
7. 정적 IP 주소와 동적 IP 주소의 활용 예시
사용 환경 | 추천 IP 방식 | 설명 |
웹 서버, DB 서버 | 정적 IP | 항상 같은 주소를 유지해야 함 |
가정용 인터넷 | 동적 IP | 일반 사용자는 자동 할당이 편리 |
회사 내부 네트워크 | 정적 IP | 특정 장비(프린터, 공유기) 관리 필요 |
카페, 공공 Wi-Fi | 동적 IP | 여러 사용자가 접속하므로 자동 할당 필요 |
8. 결론 (정리)
정적 IP 주소 | 직접 설정, 고정된 주소, 서버 운영에 적합 |
동적 IP 주소 | DHCP를 통해 자동 할당, 일반적인 네트워크에서 사용 |
DHCP 서버 | IP 주소를 자동으로 할당해주는 장비 (라우터, 공유기 등) |
DHCP 과정 (DORA) | Discover → Offer → Request → Acknowledge |
임대 기간 (Lease Time) | 일정 시간이 지나면 IP 주소가 반납됨 |
9. 다음 강의 예고
DNS(도메인 네임 시스템)를 배울 예정!
- 도메인 이름을 IP 주소로 변환하는 방식
- www.google.com을 입력하면 142.250.190.14로 변환되는 원리
- DNS 서버 설정 및 네트워크 활용법
✍ 핵심 요약
- 정적 IP 주소 → 변경되지 않는 IP, 서버 운영에 적합
- 동적 IP 주소 → 자동으로 할당되는 IP, 일반적인 환경에 적합
- DHCP 서버 → 네트워크에서 IP 주소를 자동 할당하는 역할
- 임대 기간 → 동적 IP는 일정 시간이 지나면 반납 후 재할당됨
이제 DNS 개념만 알면 네트워크 기초는 거의 마스터! 🎯
03-2 추가 : 예약 주소 , 0.0.0.0 vs 127.0.0.1
▶ 25강
127.0.0.1과 0.0.0.0
1. 예약된 IP 주소란?
일부 IP 주소는 특정한 목적을 위해 예약된 주소로 사용됨.
- 예시: 127.0.0.1, / 0.0.0.0, / 사설 IP 주소(192.168.x.x, 10.x.x.x 등)
- 일반적인 네트워크 통신에서는 사용되지 않지만, 개발 및 네트워크 관리에서 중요한 역할을 함.
2. 127.0.0.1 (루프백 주소, Loopback Address)
✅ 개념
- 자기 자신을 가리키는 IP 주소
- 흔히 로컬호스트(localhost) 라고 불림
- 자기 자신에게 패킷을 보내는 용도로 사용됨 (부메랑 같은 역할)
✅ 특징
- 패킷이 네트워크 인터페이스를 거치지 않고 직접 자신에게 전달됨
- 네트워크 테스트, 서버 개발, 디버깅 등에서 자주 사용됨
- 127.0.0.1 ~ 127.255.255.255 범위가 루프백 주소로 예약되어 있음
- 하지만 일반적으로 127.0.0.1만 사용함
✅ 사용 예시
ping 127.0.0.1
- 자신의 네트워크 스택(프로토콜 스택)이 정상 작동하는지 확인 가능
curl <http://127.0.0.1:8000>
- 로컬에서 실행 중인 웹 서버 접근 (예: Flask, Django, Node.js 등)
mysql -h 127.0.0.1 -u root -p
- 로컬 MySQL 서버에 접속
✅ 주요 활용
활용 분야 | 설명 |
네트워크 테스트 | 본인의 시스템에서 네트워크가 정상 동작하는지 확인 (ping 127.0.0.1) |
서버 개발 및 디버깅 | 로컬에서 실행 중인 서버에 테스트 요청 (curl 127.0.0.1) |
데이터베이스 접속 | 같은 서버 내에서 DB 접속 시 (mysql -h 127.0.0.1 -u root -p) |
3. 0.0.0.0 (특별한 의미의 IP 주소)
✅ 개념
- 특별한 목적을 가진 예약 주소
- 상황에 따라 여러 가지 의미로 사용됨
✅ 주요 사용 사례
사용 상황 |
설명 |
IP 주소가 없을 때 (미할당 주소) | 아직 IP 주소를 할당받지 않은 상태 (예: DHCP Discover 메시지에서 사용) |
서버 바인딩 (모든 네트워크 인터페이스 대기) | 모든 네트워크 인터페이스에서 요청을 수락 (0.0.0.0:80 → 모든 IP에서 접근 가능) |
라우팅 (디폴트 라우트) | 모든 네트워크로 나가는 기본 경로를 설정할 때 (0.0.0.0/0) |
📌 1) IP 주소가 없을 때 (DHCP Discover 과정에서 사용)
DHCP Discover 요청 시:
송신지 IP 주소: 0.0.0.0
수신지 IP 주소: 255.255.255.255 (브로드캐스트)
- 호스트가 DHCP 서버로부터 IP 주소를 할당받기 전에는 자신을 표현할 IP 주소가 없음
- 이때 임시적으로 0.0.0.0을 사용하여 네트워크에 존재를 알림
📌 2) 서버 바인딩 (0.0.0.0 → 모든 네트워크 인터페이스에서 대기)
- 특정 포트에서 모든 네트워크 인터페이스의 연결을 수락할 때 사용됨.
- 예를 들어 웹 서버를 실행할 때:
-
python -m http.server 8000 --bind 0.0.0.0
- 모든 네트워크 인터페이스에서 포트 8000을 열어 웹 서버 실행
- 다른 설정 예시:
-
netstat -tulnp
- 0.0.0.0:80 → 모든 IP에서 포트 80(HTTP) 요청을 수락
- 127.0.0.1:3306 → 오직 로컬(127.0.0.1)에서만 MySQL(3306) 요청을 허용
-
📌 3) 디폴트 라우트 (0.0.0.0/0 → 모든 네트워크로 가는 기본 경로)
- 라우터가 패킷을 어디로 보낼지 모를 때 기본적으로 가는 경로
- 모든 IP 주소를 포함하는 네트워크를 의미
- 0.0.0.0/0은 "모든 네트워크로 가는 기본 경로" 를 의미함
예제: 디폴트 라우트 설정
route add default gw 192.168.1.1
- 192.168.1.1을 기본 게이트웨이로 설정 (모든 외부 트래픽은 공유기를 통해 나감)
디폴트 라우트 확인
ip route show
- 출력 예시:
-
default via 192.168.1.1 dev eth0
- 0.0.0.0/0 → 모든 네트워크 트래픽이 192.168.1.1을 통해 전달됨
-
4. 127.0.0.1 vs 0.0.0.0 비교
비교 항목 | 127.0.0.1 | 0.0.0.0 |
주요 의미 | 자기 자신을 가리키는 루프백 주소 | 특정한 IP 주소가 없을 때 사용 |
패킷 전송 방향 | 본인에게 되돌아옴 (부메랑 역할) | 외부로 나가는 경로 또는 모든 인터페이스 대기 |
사용 목적 | 네트워크 테스트, 서버 개발, 로컬 환경 디버깅 | DHCP 요청, 서버 바인딩, 기본 라우팅 |
외부 접근 가능 여부 | ❌ (오직 자기 자신만 접근 가능) | ✅ (0.0.0.0:80 → 모든 네트워크 인터페이스 허용) |
사용 예시 | ping 127.0.0.1, localhost, curl <http://127.0.0.1> | 0.0.0.0/0 (디폴트 라우트), python -m http.server --bind 0.0.0.0 |
5. 결론
127.0.0.1 (루프백 주소) | 자기 자신을 가리키는 IP 주소 (네트워크 인터페이스를 거치지 않음) |
0.0.0.0 (특별한 의미의 IP 주소) | 특정한 IP 주소가 없을 때, 서버 바인딩, 기본 라우팅 등에서 사용 |
서버 바인딩 (0.0.0.0 vs 127.0.0.1) | 0.0.0.0 → 모든 인터페이스에서 수락, 127.0.0.1 → 오직 로컬에서만 수락 |
디폴트 라우트 (0.0.0.0/0) | 패킷이 어디로 가야 할지 모를 때 기본적으로 가는 경로 |
👉 다음 강의(라우팅)에서 0.0.0.0의 활용을 더 자세히 배울 예정! 🚀
03-3 라우팅
▶ 26강
라우팅 테이블
1. 라우팅이란?
✅ 정의
- 라우팅(Routing): 네트워크 간 패킷을 전달할 때 최적의 경로를 결정하는 과정
- 네트워크 장비(라우터)가 패킷을 목적지까지 가장 빠르고 효율적인 경로로 보내도록 도와줌
✅ 라우터(Router)의 역할
- 패킷이 갈 수 있는 다양한 경로 중 최적의 경로를 선택
- 홉(Hop) 단위로 패킷을 전달 (네트워크 장비를 거쳐서 목적지까지 이동)
- 라우팅 테이블을 참조하여 패킷이 어디로 가야 하는지 결정
✅ 홉(Hop) 개념
- 패킷이 라우터를 거치는 횟수
- 네트워크 경로에서 더 적은 홉을 거치는 것이 이상적
- TTL(Time-To-Live): 패킷이 지나갈 수 있는 최대 홉 수
- TTL이 0이 되면 패킷 폐기됨
✅ 라우팅 경로 확인 명령어
운영 체제 | 명령어 |
Windows | tracert <IP 또는 도메인> |
Linux/macOS | traceroute <IP 또는 도메인> |
2. 라우팅 테이블 (Routing Table)
✅ 정의
- 라우팅 테이블: 네트워크 장비(라우터)가 패킷을 어디로 보내야 할지를 결정하는 정보가 담긴 표
- 패킷이 들어왔을 때 "어느 인터페이스로 보내야 하는지" 결정
✅ 라우팅 테이블 구성 요소
항목 | 설명 |
수신지 IP 주소 (Destination) | 패킷이 가야 할 목적지 IP 주소 |
서브넷 마스크 (Subnet Mask) | 네트워크와 호스트를 구분하는 마스크 |
게이트웨이 (Gateway) | 패킷을 보낼 다음 목적지 (다음 홉) |
네트워크 인터페이스 (Interface) | 패킷을 내보낼 장비의 포트 또는 네트워크 인터페이스 |
메트릭 (Metric) | 경로의 비용 (낮을수록 우선순위 높음) |
3. 라우팅 테이블 예제
✅ 라우팅 테이블 형식
네트워크 대상 네트워크 마스크 게이트웨이 인터페이스 메트릭
192.168.1.0 255.255.255.0 192.168.1.1 eth0 10
10.0.0.0 255.255.0.0 10.0.0.1 eth1 20
0.0.0.0 0.0.0.0 192.168.1.1 eth0 100
✅ 해석
- 192.168.1.0/24 네트워크로 가는 패킷은 192.168.1.1 (라우터)로 보냄
- 10.0.0.0/16 네트워크로 가는 패킷은 10.0.0.1 (라우터)로 보냄
- 디폴트 라우트 (0.0.0.0/0):
- 어떤 네트워크에도 속하지 않는 패킷은 192.168.1.1을 통해 전달됨
4. 디폴트 라우트 (Default Route)
✅ 정의
- 특정한 경로가 정해져 있지 않은 패킷을 어디로 보낼지 지정하는 라우팅 규칙
- 0.0.0.0/0 → 모든 네트워크로 가는 기본 경로
✅ 예제
0.0.0.0 0.0.0.0 192.168.1.1 eth0 100
- 패킷의 목적지가 라우팅 테이블에 없을 경우 192.168.1.1(공유기)로 보냄
✅ 디폴트 게이트웨이 (Default Gateway)
- 라우팅 테이블에서 디폴트 라우트에 지정된 게이트웨이(라우터)
- 보통 공유기(Gateway)의 IP 주소(192.168.1.1 등)를 사용
5. 라우팅 테이블 확인 방법
✅ Windows (CMD)
route print
- 출력 예시
===========================================================================
인터페이스 목록
3...00 1a 92 3b 4d 5f ......Realtek PCIe GBE Family Controller
===========================================================================
네트워크 대상 네트워크 마스크 게이트웨이 인터페이스 메트릭
192.168.1.0 255.255.255.0 192.168.1.1 3 10
0.0.0.0 0.0.0.0 192.168.1.1 3 100
✅ Linux/macOS
netstat -rn
- 출력 예시
Destination Gateway Genmask Flags Iface
192.168.1.0 0.0.0.0 255.255.255.0 U eth0
10.0.0.0 0.0.0.0 255.255.0.0 U eth1
0.0.0.0 192.168.1.1 0.0.0.0 UG eth0
- U: 사용 가능(Up)
- G: 게이트웨이 사용
- Iface: 패킷이 나가는 인터페이스
6. 정적 라우팅 vs 동적 라우팅
정적 라우팅 (Static Routing) | 관리자가 직접 경로를 지정 |
동적 라우팅 (Dynamic Routing) | 라우터가 자동으로 경로를 학습 (라우팅 프로토콜 사용) |
✅ 정적 라우팅 예제 (수동 설정)
route add 192.168.2.0 mask 255.255.255.0 192.168.1.1
- 192.168.2.0/24 네트워크로 가는 경로를 192.168.1.1을 통해 설정
✅ 동적 라우팅 (라우팅 프로토콜)
- RIP (Routing Information Protocol)
- OSPF (Open Shortest Path First)
- BGP (Border Gateway Protocol)
- 인터넷에서 실제 사용되는 라우팅 프로토콜
7. 정리
라우팅 | 패킷이 최적의 경로를 찾아 이동하는 과정 |
라우터 | 패킷을 목적지로 보내는 네트워크 장비 |
라우팅 테이블 | 패킷을 어디로 보내야 하는지 결정하는 정보 |
디폴트 라우트 | 특정 경로가 없을 때 기본적으로 패킷을 보내는 경로 |
게이트웨이 | 패킷이 외부 네트워크로 나갈 때 거치는 첫 번째 장비 |
정적 라우팅 | 관리자가 직접 설정하는 라우팅 |
동적 라우팅 | 라우팅 프로토콜을 사용해 자동으로 경로 설정 |
🚀 다음 강의에서는 라우팅 프로토콜에 대해 더 깊이 배울 예정!
▶ 27강
- 라우팅의 분류와 라우팅 프로토콜
1. 라우팅의 두 가지 방식 - 라우팅 테이블이 어떻게 만들어지는지에 따라 정적 라우팅과 동적 라우팅으로 나뉜다
- ✅ 정적 라우팅 (Static Routing)
- 사용자가 직접 경로를 설정하는 방식
- 운영체제의 명령어나 설정 파일을 통해 수동으로 라우팅 테이블을 구성
- 네트워크 크기가 작고, 변경이 거의 없는 환경에서 사용됨
# Windows
route add 10.0.0.0 mask 255.255.255.0 192.168.1.1
# Linux/macOS
sudo route add -net 10.0.0.0/24 gw 192.168.1.1
# Cisco Router
ip route 10.0.0.0 255.255.255.0 192.168.1.1
- ✅ 정적 라우팅의 한계
- 네트워크 규모가 커지면 관리가 어려움 (라우터 개수가 많아질수록 수동 설정 부담 증가)
- 휴먼 에러 발생 가능성 (IP 입력 실수, 중복 설정 등)
- 유연성이 부족함 (특정 경로에 장애 발생 시 자동 우회 불가)
✅ 동적 라우팅 (Dynamic Routing)- 라우팅 프로토콜을 사용하여 자동으로 경로를 설정하고 갱신
- 네트워크 환경이 변하면 자동으로 최적 경로를 찾아서 업데이트
- 경로 장애 발생 시 자동 우회 가능 → 대규모 네트워크에서 주로 사용됨
2. 라우팅 프로토콜 (Routing Protocol) - 라우팅 프로토콜은 라우터들이 서로 경로 정보를 교환하여 최적의 경로를 찾도록 돕는 프로토콜이다.
- ✅ AS (Autonomous System, 자율 시스템)
- 하나의 네트워크 내 라우터들의 집단을 의미
- 각각의 AS는 고유한 AS 번호(ASN) 를 가짐
- 인터넷을 구성하는 주요 단위로 AS 간 또는 AS 내부에서 라우팅 수행
-
IGP (Interior Gateway Protocol) AS 내부에서 사용하는 라우팅 프로토콜 EGP (Exterior Gateway Protocol) AS 간 통신을 위한 라우팅 프로토콜 - IGP (AS 내부 라우팅) → RIP, OSPF
- EGP (AS 간 라우팅) → BGP
3. IGP (AS 내부 라우팅) - ✅ 1) RIP (Routing Information Protocol)
- 거리 벡터(Distance Vector) 기반 라우팅 프로토콜
- 경로의 홉(Hop) 수가 적은 경로를 최적 경로로 선택
- 주기적으로 라우팅 정보를 교환하여 테이블을 갱신
- 최대 홉 수 제한: 15 홉 (16 홉 이상은 무한대로 간주)
- UDP 기반 (포트 520)
- 소규모 네트워크에서 사용 (대규모 네트워크에서는 비효율적)
-
네트워크 대상 넥스트 홉 홉 수 192.168.1.0 192.168.2.1 1 10.0.0.0 192.168.3.1 2
✅ 2) OSPF (Open Shortest Path First)- 링크 상태(Link State) 기반 라우팅 프로토콜
- 네트워크의 전체 구조(그래프)를 분석하여 최단 경로를 계산 (Dijkstra 알고리즘 사용)
- 대역폭이 높은 링크를 우선적으로 선택 (대역폭 기반 메트릭 계산)
- 대규모 네트워크에 적합
- 멀티캐스트 기반 업데이트 (224.0.0.5, 224.0.0.6)
- 라우팅 정보를 필요할 때만 전송 (RIP보다 효율적)
- 링크 상태 데이터베이스 (LSDB) 유지 → 네트워크 그래프를 기반으로 경로 계산
네트워크 대상 넥스트 홉 대역폭
192.168.1.0 192.168.2.1 100Mbps
10.0.0.0 192.168.3.1 1Gbps
-
4. EGP (AS 간 라우팅)- 인터넷의 AS 간 경로를 결정하는 프로토콜
- 경로 벡터(Routing Vector) 기반 → RIP처럼 홉 수가 아닌 경로 자체를 기반으로 라우팅 결정
- 경로를 선택할 때 AS 정책과 다양한 속성을 고려
- 인터넷 상의 주요 네트워크(통신사, 대형 클라우드 등)에서 사용됨
- 느린 경로 업데이트 (최적 경로 안정성을 위해 보수적으로 동작)
- 피어링(Peering) 과정 필요 → BGP 라우터들끼리 상호 연결을 설정
- TCP 기반 (포트 179)
AS-Path 경로를 거치는 AS 번호 목록 Next-Hop 다음으로 거쳐야 하는 라우터의 IP 주소 Local Preference 특정 경로를 선호할지 여부 결정 -
네트워크 대상 AS-Path 넥스트 홉 Local Preference 1.1.1.0/24 100 200 192.168.1.1 150 2.2.2.0/24 300 400 192.168.2.1 100
- AS-Path: 목적지까지 거치는 AS 경로
- Local Preference: 값이 높을수록 우선 선택
5. 정리정적 라우팅 관리자가 직접 경로를 설정 (소규모 네트워크에 적합) 동적 라우팅 라우팅 프로토콜을 사용해 경로 자동 설정 IGP (내부 라우팅) AS 내부에서 사용하는 라우팅 (RIP, OSPF) EGP (외부 라우팅) AS 간 사용하는 라우팅 (BGP) RIP 홉 수 기반 라우팅 (최대 15홉) OSPF 링크 상태 기반 라우팅 (Dijkstra 알고리즘) BGP AS 간 경로를 선택하는 프로토콜 (경로 벡터 기반) AS-Path BGP에서 거치는 AS의 목록 Next-Hop 패킷이 다음으로 거칠 라우터의 IP Local Preference 특정 경로를 선호하는 정책 값
🚀 다음 강의에서는 개발자 업무와 직접적인 관련이 있는 내용들이 등장할 예정! - ✔️ 이제부터 실무에서 활용되는 개념이 나오므로 집중해서 듣는 것이 중요!
https://my-baby-step.tistory.com/manage/newpost/104?type=post&returnURL=ENTRY
티스토리
좀 아는 블로거들의 유용한 이야기, 티스토리. 블로그, 포트폴리오, 웹사이트까지 티스토리에서 나를 표현해 보세요.
www.tistory.com
'책 > 혼자공부하는네트워크' 카테고리의 다른 글
[혼공네트, 혼자 공부하는 네트워크] 2주차 (0) | 2025.01.17 |
---|---|
[혼공네트, 혼자 공부하는 네트워크] 1주차 (1) | 2025.01.13 |