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 동작 방식
- 목적지 IP를 가진 장비의 MAC 주소를 알 수 없을 때, ARP는 브로드캐스트를 통해 물어본다.
- 네트워크 상 모든 장비는 해당 ARP 요청을 받고,
- 해당 IP가 자신이면 자신의 MAC 주소를 응답(유니캐스트)
- 해당 IP가 자신이 아니면 요청을 무시(Drop)
- 응답을 받은 송신자는 목적지 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) 포트 번호
포트 번호는 운영체제가 애플리케이션을 식별하기 위해 사용하는 논리적인 번호로, 범위는 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가 브로드캐스트로 동작한 후, 이후 통신은 유니캐스트로 전환되는 모습까지 시각적으로 확인할 수 있었던 것이 인상 깊었다.
'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 |