[Network] 라우팅
3줄 요약
라우팅은 다른 네트워크로 패킷을 전달하기 위한 최적 경로 결정 과정
라우팅 테이블을 통해 다음 홉 및 경로를 결정하며, 정적/동적 방식으로 구성됨
동적 라우팅은 RIP, OSPF, BGP 등의 라우팅 프로토콜을 통해 경로를 자동 관리함
💻 컴퓨터 네트워크 시리즈
이 시리즈는 『혼자 공부하는 네트워크』 (강민철 저)
+ 인프런 강의를 기반으로 개인적으로 복습 및 정리한 기록입니다.
📌 라우팅이란?
라우팅은 패킷을 다른 네트워크로 전달하기 위해 최적의 경로를 결정하고 다음 홉으로 전달하는 과정
라우터는 라우팅 테이블을 참조하여 패킷의 다음 목적지를 판단
🧭 라우팅 테이블 (Routing Table)
라우터는 라우팅 테이블을 통해 다음 홉을 결정
📋 주요 항목
- 수신지 IP 주소 / 서브넷 마스크: 최종 목적지
- 다음 홉(next hop): 중간 경유지 (게이트웨이)
- 인터페이스(interface): 실제로 내보낼 네트워크 장치
- 메트릭(metric): 해당 경로의 비용 (작을수록 선호)
🌐 디폴트 라우트 (default route)
- 어떤 경로도 일치하지 않을 때 기본적으로 사용하는 경로
- 0.0.0.0/0 → 모든 임의의 IP 주소를 의미
- 일반적으로 기본 게이트웨이로 설정됨
1
2
3
4
5
6
7
8
9
>> netstat -rn
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default 172.30.1.254 UGScg en0
127 127.0.0.1 UCS lo0
...
🔁 라우팅 과정 보기 (traceroute)
라우팅 경로(홉의 수)를 확인하는 명령어
1
2
3
4
5
6
7
8
9
10
11
12
>> traceroute www.google.com
1 172.30.1.254 (172.30.1.254) 7.215 ms 4.257 ms 3.473 ms
2 121.174.111.1 (121.174.111.1) 9.032 ms 10.764 ms 9.169 ms
.
.
.
10 kix06s10-in-f4.1e100.net (142.250.206.228) 27.853 ms
108.170.225.86 (108.170.225.86) 39.882 ms
kix06s10-in-f4.1e100.net (142.250.206.228) 27.884 ms
# 10번의 홉을 거침
🧩 라우팅 분류
정적 라우팅 (Static Routing)
- 수동으로 설정
- 소규모 네트워크에서 적합
- 단점: 관리 부담, 경로 장애 시 대처 어려움
동적 라우팅 (Dynamic Routing)
- 라우팅 프로토콜을 통해 자동으로 경로 설정
- 장애 발생 시 우회 경로 사용 가능
🧱 라우팅 프로토콜
라우터끼리 정보를 교환하며 최적 경로를 찾기 위한 규칙
IGP (Interior Gateway Protocol)
AS 내부에서 사용하는 프로토콜
RIP (Routing Information Protocol)
- 거리 벡터 기반
- 홉 수를 기준으로 최적 경로 선택
- 주기적 업데이트
OSPF (Open Shortest Path First)
- 링크 상태 기반
- 네트워크 토폴로지 저장 (LSDB 사용)
- 대역폭 기준 메트릭 → 빠른 링크 선호
EGP (Exterior Gateway Protocol)
AS 외부 간 통신에 사용
BGP (Border Gateway Protocol)
- AS 간 통신 표준
- 복잡한 경로 정책 및 속성 기반
- 대형 ISP, 글로벌 인터넷 구성에 사용됨
🧭 AS와 라우팅
- AS(Autonomous System): 독립된 라우터 집합
- ASBR: 외부와 통신하는 경계 라우터
- AS 내부 라우팅: RIP, OSPF (IGP)
- AS 외부 라우팅: BGP (EGP)
✅ 마무리 정리
라우팅은 IP 네트워크에서 중요한 패킷 전달 메커니즘
정적, 동적 방식이 있으며
동적 라우팅은 RIP, OSPF, BGP 등의 프로토콜을 사용해 네트워크의 확장성과 회복성을 확보
📚 참고 자료
- 『혼자 공부하는 네트워크』 - 강민철 저
- 인프런 강의 - 혼자 공부하는 네트워크 기반 강의
읽어주셔서 감사합니다 🙌
내용이 도움이 되었거나, 틀린 부분이 있다면 댓글이나 GitHub Issue로 알려주세요 😊
This post is licensed under CC BY 4.0 by the author.