[에스넷시스템 부트캠프] TIL Day8 - 라우팅, IPv4 주소 체계, TCP/IP, Cisco IOS CLI

2025. 5. 29. 01:21·TIL
728x90

1. 라우팅

1) 네트워크 계층과 라우팅 논리

라우팅 테이블

라우터는 패킷을 어디로 보낼지 결정하기 위해 '라우팅 테이블'을 참고한다. 이 테이블은 목적지 네트워크 주소와 그에 대한 최적 경로(Next hop, 인터페이스 등)를 담고 있다. 

 

양방향 경로 정보

대부분의 라우팅 프로토콜은 양방향 경로를 보장할 수 있는 정보를 유지한다. 특히 동적 라우팅 프로토콜은 이웃 라우터와 정보를 주고받으며 경로를 동적으로 업데이트한다. 

 

캡슐화 방식

라우터가 여러 종류의 네트워크 기술을 이어주다보니 출발지와 목적지 기술이 다를 경우 각 인터페이스에 맞게 캡슐화 방식을 자동으로 변경한다. 

 

예시로 라우터의 한쪽 인터페이스는 이더넷 LAN에 연결되어 있고, 다른 쪽 인터페이스는 시리얼 WAN에 연결되어 있다고 해보자. 

이더넷 -> WAN으로 갈 땐 이더넷 프레임을 벗기고 WAN 프레임으로 재포장,

WAN -> 이더넷으로 갈 땐 WAN 프레임을 벗기고 이더넷 프레임으로 재포장한다. 

 

2) 라우팅 프로토콜 

라우팅 프로토콜은 라우터가 목적지까지의 최적 경로를 자동으로 계산하고, 그 정보를 이웃 라우터와 공유하기 위한 규칙 또는 알고리즘 집합을 의미한다. 

 

라우팅 프로토콜 분류

  • IGP (Interior Gateway Protocol) : 조직 내부에서 사용 - ex) RIP, ODPF, EIGRP, IS-IS
  • EGP (Exterior Gateway Protocol) : 조직 간 경로 설정 - ex) BGP
  • Distance Vector : 인접 라우터에게만 정보 전파 - ex) RIP
  • Link State : 전체 네트워크 정보를 공유 - ex) OSPF, IS-IS

라우팅 테이블 유지 방법 

  • 정적 라우팅 : 관리자가 수동으로 경로 설정
  • 동적 라우팅 : 라우팅 프로토콜을 통해 라우터끼리 자동으로 경로 정보를 교환하고 계산

 

2. IPv4 주소 체계

1) IPv4 헤더

  • Version : IPv4인지 IPv6인지 구별
  • HLEN : 헤더의 길이로 32bit 단위로 표현
  • DS Field : QoS 관련 트래픽 우선 순위용 필드
  • Packet Length : 전체 패킷 길이 (IP 헤더 + 데이터 전체 길이)
  • Identification : 패킷 분할시 동일 그룹 식별용
  • Flag : 뒤에 프레그먼트가 더 있음을 나타냄
  • Fragment Offset : 조각난 데이터의 위치 정보
  • Time to Live : 라우터 홉 수 제한, 무한루프 방지용으로 이게 없으면 수많은 패킷이 네트워크를 떠돌아 다님
  • Protocol : 상위 계층의 프로토콜
  • Header Checksum : IP 헤더에 오류가 있는지 없는지 검증
  • Source/Destination IP Address : 출발지와 목적지 IP 주소 

2) IP 주소 클래스

네트워크 ID는 해당 IP가 속한 네트워크를 식별하는 역할을 하고, 호스트 ID는 네트워크 안의 개별 장비를 식별한다. 

 

3) IP 서브네팅

컴퓨터가 두 IP 주소가 같은 네트워크에 속하는지 판단하는 방법으로 서브넷 마스크를 사용해 AND 연산으로 같은 네트워크인지 판단한다. 

 

ex) 

IP 1 : 192.168.1.10 -> 11000000.10101000.00000001.00001010

IP 2 : 192.168.1.200 -> 11000000.10101000.00000001.11001000

서브넷 마스크 : 255.255.255.0 -> 11111111.11111111.111111111.00000000

 

IP 1와 서브넷 마스크와의 AND 연산 

=> 192.168.1.0

IP 2와 서브넷 마스크와의 AND 연산

=> 192.168.1.0

 

즉, 이 두 IP는 같은 네트워크 대역에 속한다. 

 

 

4) 주소 변환 

DNS(Domain Name System) 

  • 사람이 기억하기 쉬운 도메인 이름을 IP 주소로 변환해주는 시스템

ARP(Address Resolution Protocol)

  • IP주소를 MAC 주소로 변환해주는 프로토콜
  • IP만 가지고는 실제 네트워크 통신이 불가능하므로, ARP는 유니캐스트 통신을 하기 위한 필수 전처리 단계

APR 동작 방식 

  1. 목적지 IP를 가진 장비의 MAC 주소를 알 수 없을 때, ARP는 브로드캐스트를 통해 물어본다.
  2. 네트워크 상 모든 장비는 해당 ARP 요청을 받고, 
    1. 해당 IP가 자신이면 자신의 MAC 주소를 응답(유니캐스트)
    2. 해당 IP가 자신이 아니면 요청을 무시(Drop)
  3.  응답을 받은 송신자는 목적지 MAC 주소를 알아냈으므로 이후에는 유니캐스트로 통신 가능

 

 

5) 네트워크 상태 점검

ICMP (Internet Control Message Protocol)

  • 네트워크 상태 점검을 위한 프로토콜
  • 라우터나 호스트가 상대방에게 도달 가능한지, 경로에 문제가 있는지를 확인하는 데 사용됨

ping

  • ICMP Echo Request/Reply 메시지를 보내는 명령어
  • 네트워크 연결 확인, 하트비트, 응답 지연 시간 측정, 장애 지점 추적 등에 사용됨
❗️주의사항
ping이 안되는 경우가 꼭 네트워크 단절은 아니다.
-> 상대방이 ICMP를 차단했을 수도 있다. 

 

3. TCP/IP

1) TCP 헤더

Sequence Number (SEQ)

  • 송신 측이 각 세션에서 사용하는 데이터 순서 식별 번호
  • 초기 SEQ 값은 시스템 시계 기반 난수로 설정하여 보안성 강화
  • 이후 SEQ 번호는 전송한 바이트 수만큼 증가
  • 수신 측은 ACK을 통해 받은 SEQ에 대한 수신 확인을 전달함

Acknowledgment Number (ACK)

  • 상대방이 보낸 데이터의 수신 여부를 확인
  • 수신자는 마지막으로 받은 바이트의 다음 번호를 ACK 값으로 설정
  • 송신자는 해당 ACK를 기준으로 다음 SEQ 번호 결정
  • 일정 시간(ACK Timer) 내 ACK가 도착하지 않으면 재전송 수행

Flag bits (제어 플래그)

  • SYN : 연결 시작
  • ACK : 수신 확인 응답
  • FIN : 연결 종료 요청
  • RST : 비정상 연결 종료
  • PSH : 버퍼에 쌓지 않고 즉시 전달
  • URG : 긴급 데이터 표시

Window Size 

  • TCP는 Sliding Window 방식을 사용해 흐름 제어
  • 수신자는 자신의 소켓 버퍼 여유 공간(수신 윈도우)을 window size로 송신자에게 전달
  • 송신자는 해당 범위 내에서 ACK 없이 여러 데이터 전송 가능
  • 수신자의 버퍼 상황에 따라 window size가 실시간으로 바뀌지만, 너무 자주 바꾸면 성능 저하 → 보통 가장 최근 값 기준으로 제어
💡 Sliding Window 구조
Sliding Window 구조에서 ACK이 도착하면, 해당 구간까지 수신이 완료되었음을 의미하므로 전송 가능한 범위가 오른쪽으로 밀리며 확장된다. 

Checksum

  • 송신자가 계산한 값으로, 헤더 + 데이터 전체에 대한 무결성 검사
  • 수신자가 계산한 값과 다르면 손상된 패킷으로 간주, 응답 없이 재전송 유도

 

2) 포트 번호

Well-known port list

포트 번호는 운영체제가 애플리케이션을 식별하기 위해 사용하는 논리적인 번호로, 범위는 0번부터 65535번까지 존재한다.

범위 이름 용도
0 ~ 1023 Well-Known Ports HTTP(80), HTTPS(443), SSH(22) 등 주요 프로토콜이 사용하는 예약 포트
1024 ~ 49151 Registered Ports 특정 업체나 애플리케이션이 등록해서 사용하는 포트 (예: MySQL 3306, Docker 2375)
49152 ~ 65535 Dynamic / Ephemeral Ports 클라이언트가 일시적으로 사용하는 포트 (동적 할당용, 예: 웹 브라우저 요청 시 자동 배정됨)

 

3) TCP 연결 과정  

  • 3-way handshake : 연결 수립 과정, SYN -> SYN/ACK -> ACK
  • 4-way handshake : 연결 종료 과정,  FIN -> ACK -> FIN -> ACK

 

4) 재전송 매커니즘

TCP는 신뢰성 보장을 위해 전송이 실패한 경우 자동 재전송 기능을 갖는다.

  • 재전송 타이머 만료시 자동 재전송
  • 중복 ACK 3번 이상 보내면 데이터에 대한 재요청 신호로 판단 -> 빠른 재전송(Fast Retransmit)

 

5) UDP 헤더

4. Cisco IOS CLI

Cisco 장비(라우터, 스위치 등)를 명령어 기반으로 설정 및 관리할 수 있는 인터페이스 환경을 말한다. 

IOS는 Cisco 장비에 탑재된 운영체제로 라우팅, 스위칭, 보안, QoS 등 다양한 네트워크 기능을 수행한다. 

데이터는 L2계층을 통해 전송되고 그 주체는 이더넷이다.

 

1) Cisco IOS CLI 접속 방법

1-1) 콘솔 케이블 이용

콘솔 포트를 통해 장비에 직접 접속하는 방법이다. IP 설정 없이도 CLI에 접근이 가능하다.

1-2) Telnet이나 SSH로 원격 접속

Cisco 장비에 IP가 설정된 경우, 네트워크를 통해 원격 CLI 접속이 가능하다. 

 

2) CLI 모드 구조 (스위치 기준)

💡Cisco는 왜 이렇게 모드를 많이 만들었을까?

초창기 Cisco는 라우터 전문 회사로 출발했지만, 이후 스위치 기술을 가진 회사를 인수하면서 스위치 제품군을 함께 다루게 되었다.
당시에는 라우터와 스위치가 완전히 다른 하드웨어 아키텍처를 사용하고 있었고, 각 장비마다 서로 다른 칩셋 및 기능 처리 방식을 갖고 있었기 때문에 하나의 장비에서 라우팅/스위칭 기능을 모두 다루려면 기능별로 CLI 모드를 나눌 수밖에 없는 구조였다.

 

3) Cisco 스위치 메모리 유형

  • RAM : 실시간 동작 중인 정보 저장 (라우팅 테이블, ARP 테이블, 실행 중인 설정 등) -> 장비 재부팅시 내용 휘발됨
  • Flash : IOS 운영체제 이미지 파일 저장소로 시스템 부팅시 로딩됨
  • ROM : 부트스트랩 코드와 기본 IOS 탑재된 곳으로 Flash가 손상됐을 때 기본적인 부팅 가능
  • NVRAM : Startup-config 파일 저장소로 장비가 부팅될 때 이 설정을 불러와 적용함

Cisco 스위치는 ROM에서 부팅을 시작해 Flash에서 IOS를 불러오고, NVRAM에서 설정을 적용한 뒤 RAM에 적재하여 동작한다. 

 

✍️ 하루 회고

어려웠던 어제와 달리 오늘은 그래도 아는 내용을 복습하는 느낌으로 들었다. 나름 필기도 열심히 해서 TIL도 욕심내서 그림도 첨부해봤다. 아직 여유가 있으니 부릴 수 있는 욕심이지만..😅 

 

오늘 학습에서 가장 인상 깊었던 건, Packet Tracer를 이용해 DNS와 ARP의 동작 과정을 직접 확인해본 실습이었다.

단순히 이론으로만 이해하고 있던 내용을, 실제 패킷 흐름을 보면서 체감할 수 있었다는 점이 가장 큰 수확이다.

 

특히, DNS 요청을 통해 도메인 이름이 IP 주소로 변환되는 과정과 그 IP에 대응되는 MAC 주소를 찾기 위해 ARP가 브로드캐스트로 동작한 후, 이후 통신은 유니캐스트로 전환되는 모습까지 시각적으로 확인할 수 있었던 것이 인상 깊었다.

 

 

728x90

'TIL' 카테고리의 다른 글

[에스넷시스템 부트캠프] TIL Day10 - VLAN, VTP  (0) 2025.05.31
[에스넷시스템 부트캠프] TIL Day9 - 이더넷 LAN 설계 분석  (1) 2025.05.30
[에스넷시스템 부트캠프] TIL Day7 - 네트워크 2  (1) 2025.05.28
[에스넷시스템 부트캠프] TIL Day6 - 메타캐릭터, 히스토리, 환경파일, 네트워크 1  (0) 2025.05.27
[에스넷시스템 부트캠프] TIL Day5 - 검색 명령어, 시간 정보, Bash, 파일 디스크립터, 파이프, 변수  (0) 2025.05.25
'TIL' 카테고리의 다른 글
  • [에스넷시스템 부트캠프] TIL Day10 - VLAN, VTP
  • [에스넷시스템 부트캠프] TIL Day9 - 이더넷 LAN 설계 분석
  • [에스넷시스템 부트캠프] TIL Day7 - 네트워크 2
  • [에스넷시스템 부트캠프] TIL Day6 - 메타캐릭터, 히스토리, 환경파일, 네트워크 1
yulee_to
yulee_to
  • yulee_to
    yulee
    yulee_to
  • 전체
    오늘
    어제
    • 전체 글 (135)
      • CS (2)
        • OS (0)
        • DB (0)
        • Network (2)
      • Develop (21)
        • Spring (9)
        • Java (12)
        • Python (0)
        • Algorithm (0)
        • 기타 (0)
      • PS (39)
        • C++ (39)
        • Java (0)
      • TIL (28)
      • Book (39)
        • 자바의 신 (32)
        • 스프링 입문을 위한 자바 객체 지향의 원리와 이해 (7)
      • ETC (4)
        • Blog (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    객체지향
    C++
    백준
    aws
    스터디
    에스넷시스템
    자바의 신
    부트캠프후기
    GodOfJava
    boj
    EC2
    Java
    자바
    스프링 입문
    TiL
    클라우드 활용 네트워크 엔지니어 부트캠프
    멀티캠퍼스it부트캠프
    1일1백준
    에스넷시스템 부트캠프
    알고리즘
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
yulee_to
[에스넷시스템 부트캠프] TIL Day8 - 라우팅, IPv4 주소 체계, TCP/IP, Cisco IOS CLI
상단으로

티스토리툴바