이번 게시글에서는 라우터가 하는 일인 라우팅에 대해서 구체적으로 알아보자

0. 라우팅이란?
네트워크에서 데이터를 목적지까지 전달하기 위해서 최적의 경로를 결정하는 과정을 의미한다.
라우터(네트워크 장비)가 여러 경로 중에서 가장 효율적인 경로를 선택하여 데이터를 전송하고,
이 때 최적의 경로를 찾기 위한 프로토콜들이 여러 개 존재한다.
OSI 7계층 중 3계층(네트워크 레이어)에서 동작하고,
패킷의 출발지 IP 주소와, 목적지 IP 주소를 기반으로 경로를 결정한다.
[ 주로 나오는 용어 정리 ]
- 라우터 : 네트워크 간 데이터를 전송하는 장치이다.
- 라우팅 테이블 : 라우터가 라우팅 한 기록을 저장하는 테이블이다.
-> 쉽게 말해서 목적지 네트워크까지 가는 최적의 경로 정보를 저장한 테이블이다.
- 게이트웨이 : 다른 네트워크로 데이터를 전송할 때 경유하는 지점을 의미하며, 라우터가 게이트웨이의 역할을 할 수도 있다.
- 홉 : 패킷이 목적지까지 가는 동안 거치는 라우터의 개수를 의미한다.
- ping : 네트워크 상태를 점검하고, 특정 서버나 장비가 현재 연결 가능한 상태인지 확인하는 데 사용하는 네트워크 도구이다.
- ping 1.1.1.1 을 통해서 인터넷과 잘 연결되었는지 확인할 수 있다.

1. 라우팅의 종류
정적 라우팅과 동적 라우팅 두 가지로 나뉜다.
[ 정적 라우팅 ]
관리자가 직접 라우팅 테이블을 설정하는 방식이다.
그렇기 떄문에 관리자가 원하는 경로로 트래픽을 전송할 수 있게 된다.
+ ) 간단하고 보안성이 높다
- ) 네트워크가 변화하게 될 경우 수작업으로 수정해야 한다는 번거로움이 있다. (변화에 유연하게 대처 X)
ex. 소규모 네트워크나 보안이 중요한 환경에서 많이 사용된다.
[ 동적 라우팅 ]
라우터가 프로토콜을 이용하여 자동으로 네트워크 상태를 학습하고 최적의 경로를 설정하는 방식이다.
+ ) 네트워크 변화에 빠르게 대응할 수 있다.
- ) 네트워크 부하가 발생할 수 있다.
ex. 대규모 네트워크, ISP에서 사용할 수 있다.
2. 동적 라우팅 프로토콜
위에서 동적 라우팅은 프로토콜을 이용하여 사용자가 지정하지 않아도 라우팅을 할 수 있다고 했다.

[ IGP (Interior Gateway Protocol) 과 EGP(Exterior Gateway Protocol)]
IGP 와 EGP는 AS를 기준으로 구분한다.
*AS란? - 하나의 라우팅 정책을 공유하는 네트워크 집합
Autonomous System으로 독립적인 네트워크 그룹을 의미한다.
이 AS가 모여 인터넷이라는 거대한 망을 구성한다고 생각하면 된다.
AS 내부에서는 자유롭게 AS 내부의 라우팅 정책에 따라 통신이 가능하고,
AS 간의 통신을 위해서는 프로토콜이 필요하다.
바로 이런 점에서 IGP는 동일한 AS 안(동일 조직끼리)에서 사용하는 프로토콜을 의미하고
EGP는 서로 다른 AS끼리 사용하는 프로토콜을 의미한다.
4. 라우팅 테이블의 구조
라우팅 테이블은 네트워크 주소 + 넷마스크 + 게이트웨이 + 인터페이스 정보를 포함한다.
네트워크 주소는 목적지 네트워크 주소이고,
넷 마스크는 목적지 네트워크 주소의 네트워크와 호스트를 구분한다.
게이트웨이는 목적지 네트워크를 가기 위해서 거쳐 가야하는 라우터이다.
인터페이스는 해당 경로가 연결된 네트워크 인터페이스이다. (게이트웨이로 향하기 위한 인터페이스라고 보면 된다)
|
네트워크 주소
|
넷마스크
|
게이트웨이
|
인터페이스
|
|
192.168.1.0
|
255.255.255.0
|
192.168.1.1
|
f0/0
|
|
10.0.0.0
|
255.0.0.0
|
10.0.0.1
|
s0/0
|


라우터1의 라우팅 테이블을 설정하는 모습이다.
PC0과 PC1가 소통하기 위해서는 R1 라우터가 PC1의 IP 주소를 알아야 한다.
그래서 라우터 2를 지나가야하므로 걔를 NEXT HOP 즉 게이트웨이로서 작성해줘야한다.
5. 정적 라우팅
Cisco IOS에서 정적 라우팅 설정 방법은 다음과 같다.
[ 명령어 ]
Router(config)# ip route <목적지 네트워크> <서브넷 마스크> <다음 홉 IP 또는 출구 인터페이스 (여기에 IGW도 올 수 있다)>
- <목적지 네트워크>: 가야 할 네트워크 주소
- <서브넷 마스크>: 네트워크의 서브넷 마스크
- <다음 홉 IP 또는 출구 인터페이스>: 패킷을 전달할 라우터의 IP 또는 인터페이스

위의 사진에서 빨간색 박스는 LAN이고, 노란색 박스는 WAN 이라고 보면 된다.
Static 라우팅은 가는 것과 오는 것을 다 라우팅 해줘야한다.
예를 들어 R1 -> R2를 라우팅 해줬다면, R2->R1 라우팅도 해줘야한다.
(요청을 주고 응답을 받아야하니까, 양쪽을 다 직접 라우팅 해줘야 한다. 동적 라우팅은 직접 해주지 않아도 자동으로 설정된다.)
cf. 디폴트 라우트란?
모든 외부 트래픽을 특정 라우터로 전달하는 기본 경로 설정 하는 것을 의미한다.
어떤 네트워크가 들어오더라도, 특정 주소로 보내겠다고 설정하는 것이다.
아래 예시를 한 번 보자.

0.0.0.0/0은 모든 목적지를 의미하고,
라우팅 테이블에 구체적인 경로가 없는 모든 패킷은 이 경로(NextHop)을 따라가라는 의미가 된다.
쉽게 말해서 모르는 주소로 가는 패킷이 있따면 (0.0.0.0/0), 일단 NextHop에 쓴 주소를 가진 게이트로웨이로 보내라가 된다.
이처럼 인터넷 연결 시 기본 게이트웨이 설정에 정적 라우팅이 사용된다.
6. 동적 라우팅 프로토콜
(1) RIP (Routing Infromation Protocol)
RIP은 거리 벡터 기반의 동적 라우팅 프로토콜로, 네트워크 내에서 최적의 경로를 찾기 위해 사용된다.
최단 경로를 결정할 때 홉수를 기준으로 하며, 최대 15홉까지만 지원한다.
- 주요 특징
홉수 기반으로 경로 선택을 하고,
주기적으로 라우팅 정보를 갱신한다. (30초 간격)
UDP 포트 520을 사용하고
로드밸런싱 기능을 포함한다.
- RIP의 문제점과 해결 방법
|
문제점
|
해결 방법
|
|
홉 수 제한(15홉)
|
OSPF, EIGRP 등의 다른 프로토콜 사용
|
|
라우팅 업데이트로 인한 트래픽 증가
|
업데이트 주기 변경 불가 (OSPF 등 다른 프로토콜 고려)
|
|
루프 발생 가능성
|
Split Horizon, Route Poisoning 등 적용
|
(2) OSPF (Open Shortest Path First)
링크 상태 라우팅 프로토콜로, 다익스트라 알고리즘을 사용하여 네트워크 경로를 결정한다.
RIP는 홉수를 기준으로 경로를 결정했다면, OSPF는 대역폭이 높은 쪽(비용 기반)으로 경로를 선택하는 라우팅 프로토콜이다.
- 주요 특징
Area라는 새로운 개념이 등장한다. area 기반으로 라우팅을 진행해서 트래픽을 최적화한다.
classless 라우팅을 지원한다. -> VLSM사용이 가능하다.
무한 루프를 방지하고, 동일 비용 경로가 여러 개 일 경우 로드 밸런싱이 가능하다.
OSPF와 RIP가 동시에 설정되어 있다면, OSPF의 우선순위가 더 크므로 RIP가 무시된다.
(3) BGP (Border Gateway Protocol)
유일하게 TCP 위에서 동작하는 동적 라우팅 프로토콜이다.
인터넷을 구성하는 여러 네트워크 간에 최적의 경로를 찾고 유지하는 역할을 한다.
EGP에서 쓰는 프로토콜이므로 AS간 통신에 사용한다.
따라서 직접 연결되어 있지 않더라도 TCP 통신을 하므로 연결될 수 있다.
종류는 eBGP와 iBGP로 나뉜다.
📍BGP라는 이름 자체가 Border(경계) Gateway Protocol이다. 즉, AS의 경계에서 다른 AS와 대화하는 것이 본질이다.
그래서 iBGP는 성격상 IGP가 될 수 없고, EGP인 BGP의 일부로 분류된다. |

- BGP 설정
R1)
conf t
router bgp 100 //지금 내가 속해 있는 AS
neighbor 192.168.12.2 remote-as 200 //연결되려는 애의 AS가 달라서 eBGP 통신을 함
network 1.1.1.0 mask 255.255.255.0 //BGP로 메시지 전달이 가능해진다.
//NEIGHBOR가 먼저 되어야 메시지 전달이 가능해진다.
R2)
conf t
router bgp 200
//NEIGHBOR가 3개다. (1/3/4번 라우터와 이웃임)
neighbor 192.168.12.1 remote-as 100 //[eBGP] 여기서 100이랑 200이 AS 번호이다.
neighbor 192.168.23.3 remote-as 200 //[iBGP]
neighbor 192.168.34.4 remote-as 200 //[iBGP]
//2번과 4번은 연결이 안되어 있지만, Neighbor 설정 가능하다. tcp 통신하기 때문
network 2.2.2.0 mask 255.255.255.0
//2.2.2.0을 광고하고 있음
R3)
conf t
router bgp 200
neighbor 192.168.23.2 remote-as 200
neighbor 192.168.34.4 remote-as 200
network 3.3.3.0 mask 255.255.255.0
R4)
conf t
router bgp 200
neighbor 192.168.34.3 remote-as 200
neighbor 192.168.23.2 remote-as 200
network 4.4.4.0 mask 255.255.255.0
** next-hop-self 개념
BGP에서 NEXT_HOP은 목적지 네트워크로 가기 위한 다음 라우터의 IP 주소를 의미한다.
기본적으로 iBGP는 NEXT_HOP을 변경하지 않고 전달하므로, 일부 경우에 라우팅 이슈가 발생할 수 있다.
(여기서 일부 경우는 iBGP와 eBGP간의 통신이 이루어지고, iBGP끼리 통신되는 위의 이미지와 같은 상황이다.)
next-hop-self 옵션을 사용하면 iBGP에서 경로를 광고할 때,
NEXT_HOP을 자신(자신의 IP)으로 변경하여 문제를 해결할 수 있다.
(그래서 eBGP의 경우 이 옵션을 필수로 해줘야 한다!)

R3는 라우팅 테이블(노랑박스)에 1.1.1.0/24가 없다.
R3 라우팅 테이블에 Next Hop인 12.1이 없으니까 비록 초록박스(BGP결과)에 있더라도
노랑박스에 1.1.1.0이 뜨지 않는것이다.
이를 해결하기 위해서 next-hop-self 옵션을 써주는 것이다.

eBGP랑 같이 쓸 때는 바깥이랑 연결된 2번 라우터에서 Next-hop-self 세팅을 해줘야,
3번 라우터도 1.1.1.0을 알 수 있게 된다.
eBGP로 받은 정보를 iBGP로 넘길 때, nexthop을 본인 것으로 바꾸라고 안내해주도록 설정하는게
기본이라는 것을 알아두자!!

정리하자면
- next-hop-self은 iBGP에서 NEXT_HOP을 변경하지 않는 문제를 해결하기 위해 사용된다.
- iBGP 내부에서 경로를 전달할 때 NEXT_HOP을 자신(BGP 라우터의 인터페이스 IP)으로 변경하는 것이다.
- eBGP에서는 필요하지 않으며, iBGP 및 Route Reflector 환경에서 주로 사용된다.
'공부기록 > Network' 카테고리의 다른 글
| [ 네트워크 ] ACL (Access Control List) (0) | 2026.01.28 |
|---|---|
| [ 네트워크 ] NAT (Network Address Translation) (0) | 2026.01.27 |
| [ 네트워크 ] VPN(Virtual Private Network)과 IPsec (Internet Protocol Security) (0) | 2026.01.07 |