📚 네트워크 · 패킷 분석 › 01. TCP/IP 구조 이해 — 19편
이전 글: 18. Routing Table · 다음 글: 20. Default Route
Static Routing(정적 라우팅) 은 관리자가 "이 목적지 대역은 이 next hop으로 보낸다"는 경로를 직접 입력하는 방식입니다. 입력한 경로는 18. Routing Table에 proto static 등으로 표시되며, 관리자가 바꾸기 전까지 그대로 유지됩니다.
반대 개념인 동적 라우팅은 라우터끼리 OSPF·BGP 같은 라우팅 프로토콜로 경로 정보를 교환해 테이블을 자동으로 갱신합니다. 이 글은 개념과 호스트(Linux) 기준 예시만 다루며, 라우터 장비에서의 정적 경로 설정은 172. Static Routing에서 다룹니다.
정적 라우팅이 쓰이는 대표적인 상황은 다음과 같습니다.
아래 구성에서 PC의 기본 게이트웨이는 인터넷 방향 라우터(R1)입니다. 관리망(10.20.0.0/16)은 다른 라우터(R2) 뒤에 있으므로, 정적 경로가 없으면 관리망으로 가는 패킷도 R1로 가 버립니다.
┌── R1 192.168.10.1 ──→ 인터넷
[PC 192.168.10.20]┤
└── R2 192.168.10.254 ──→ 관리망 10.20.0.0/16
정적 경로 추가 전: 10.20.5.7 → 일치 엔트리 = default → R1로 전송 (도달 실패 가능)
정적 경로 추가 후: 10.20.5.7 → 10.20.0.0/16 via 192.168.10.254 (더 긴 프리픽스) → R2로 전송
정적 경로도 조회 규칙은 같습니다. 최장 일치가 우선이므로, /16 정적 경로가 /0 기본 경로보다 먼저 선택됩니다. 또한 next hop은 직접 연결된 서브넷 안의 주소여야 합니다. 그렇지 않으면 경로 추가가 거부됩니다.
또 하나 중요한 점은 돌아오는 경로입니다. 관리망 쪽 장비와 R2도 192.168.10.0/24로 돌아오는 경로를 알고 있어야 왕복 통신이 성립합니다.
| 항목 | Static Routing | Dynamic Routing |
|---|---|---|
| 경로 입력 | 관리자가 수동 입력 | 라우팅 프로토콜이 자동 학습 |
| 장애 대응 | 경로가 죽어도 자동 우회하지 않음 | 대체 경로로 자동 수렴 |
| 장비 부하 | 거의 없음 | 프로토콜 메시지 교환·계산 필요 |
| 예측 가능성 | 높음 (입력한 대로만 동작) | 상황에 따라 경로가 바뀔 수 있음 |
| 적합한 환경 | 소규모, 말단망, 고정 구간 | 대규모, 경로가 여러 개인 망 |
| 보안 측면 | 외부에서 경로를 주입할 수 없음 | 프로토콜 인증이 없으면 경로 주입 위험 |
ip route add로 추가한 경로는 재부팅이나 네트워크 재시작 시 사라집니다. 영구 적용은 배포판의 네트워크 설정 도구로 해야 합니다.실습 예시: 본인 소유 VM에서만 수행합니다. 인터페이스·연결 이름은 환경마다 다르므로 먼저 확인합니다(ip link, nmcli connection show).
# 공통: 임시(런타임) 경로 추가 → 확인 → 삭제
sudo ip route add 10.20.0.0/16 via 192.168.10.254 dev ens160
ip route get 10.20.5.7
sudo ip route del 10.20.0.0/16 via 192.168.10.254
영구 적용 방법은 배포판마다 다릅니다.
| 구분 | 명령·파일 | 재부팅 후 유지 |
|---|---|---|
| 런타임 (공통) | ip route add / ip route del | 유지되지 않음 |
| Rocky Linux | nmcli connection modify ... +ipv4.routes | 유지됨 (연결 프로필에 저장) |
| Ubuntu | /etc/netplan/*.yaml의 routes: + netplan apply | 유지됨 |
# Rocky Linux (NetworkManager) — "ens160"은 연결(connection) 이름
sudo nmcli connection modify ens160 +ipv4.routes "10.20.0.0/16 192.168.10.254"
sudo nmcli connection up ens160
# Ubuntu (netplan) — /etc/netplan/ 아래 설정 파일의 해당 인터페이스에 추가
network:
version: 2
ethernets:
ens160:
routes:
- to: 10.20.0.0/16
via: 192.168.10.254
Ubuntu에서는 sudo netplan try로 먼저 적용해 보고(확인하지 않으면 자동 복구), 문제가 없으면 sudo netplan apply로 확정합니다.
적용 후 출력 예시(값은 환경마다 다름):
10.20.0.0/16 via 192.168.10.254 dev ens160 proto static metric 100
10.20.5.7 via 192.168.10.254 dev ens160 src 192.168.10.20 uid 1000
/etc/NetworkManager/system-connections/, /etc/netplan/)은 변경 감시 대상에 포함하는 것이 좋습니다.흔적이 남는 곳
proto static으로 표시된 경로, 네트워크 설정 파일의 변경 시각, sudo 실행 기록(/var/log/secure 또는 /var/log/auth.log)관제자가 확인할 질문
오탐 주의
ip route add는 임시이며, 영구 적용은 Rocky는 nmcli, Ubuntu는 netplan으로 합니다.