내 잡다한 노트
리눅스에서 라우팅 테이블 본문
라우팅 테이블(Routing Table)**은 네트워크 트래픽이 어떤 경로(인터페이스, 게이트웨이)로 나가야 하는지를 정의한 정보입니다. IP 패킷이 목적지 IP에 따라 적절한 인터페이스나 게이트웨이를 통해 전달되도록 하는 핵심 로직을 담고 있다.
이 라우팅 테이블은 커널이 유지하며, 보통 ip route나 route 명령어로 확인하고 조정할 수 있습니다.
1. 기본 개념
- 라우트(Route)
- 목적지 주소대역(예: 192.168.0.0/24)과 이를 처리할 출력(Interface), 게이트웨이(Gateway), 메트릭(Metric) 등의 정보로 구성됩니다.
- “이 IP 대역(혹은 호스트 IP)은 어느 인터페이스로 보내야 하는가?”를 결정합니다.
- Default Route(기본 게이트웨이)
- 목적지 IP가 라우팅 테이블에 없을 경우, 마지막으로 참조하는 기본 경로입니다.
- 일반적으로 default via 192.168.0.1 dev eth0 형태로 많이 표시됩니다.
- Metric
- 라우트 우선순위를 나타내는 지표. 값이 낮을수록 우선순위가 높습니다.
- 여러 개의 라우트가 같은 목적지 대역을 가리킬 때, 메트릭 값이 더 낮은 라우트를 우선 적용합니다.
- Proto, Scope
- proto: 라우트가 어떻게 추가되었는지(커널 자동, DHCP, 정적(static), 라우팅 데몬(rip, ospf), etc.)
- scope: 라우트가 어느 범위에 적용되는지(link, global, host 등)
ip route 명령어 출력은 호스트가 어떤 네트워크 대역(서브넷)으로 패킷을 보낼 때, 어느 인터페이스(또는 게이트웨이)를 통해 나가야 하는지를 나타내는 라우팅 테이블입니다.
예제 :
~$ ip route
default via 192.168.0.1 dev enp3s0 proto dhcp metric 100
169.254.0.0/16 dev br-61aea30a2570 scope link metric 1000 linkdown
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.18.0.0/16 dev docker_gwbridge proto kernel scope link src 172.18.0.1 linkdown
172.19.0.0/16 dev br-3d2a3fbc3d85 proto kernel scope link src 172.19.0.1 linkdown
172.20.0.0/16 dev br-bb7594a95e2b proto kernel scope link src 172.20.0.1
172.24.0.0/16 dev br-041d84026194 proto kernel scope link src 172.24.0.1 linkdown
172.25.0.0/16 dev br-9a37c1ffa00a proto kernel scope link src 172.25.0.1 linkdown
172.26.0.0/16 dev br-714c5c7cd4af proto kernel scope link src 172.26.0.1 linkdown
172.27.0.0/16 dev br-7ee16d43a164 proto kernel scope link src 172.27.0.1
172.28.0.0/16 dev br-a81de3547324 proto kernel scope link src 172.28.0.1 linkdown
172.29.0.0/16 dev br-1a6e63daa625 proto kernel scope link src 172.29.0.1 linkdown
172.30.0.0/16 dev br-914e49837c0a proto kernel scope link src 172.30.0.1
192.168.0.0/24 dev enp3s0 proto kernel scope link src 192.168.0.11 metric 100
192.168.128.0/20 dev br-7122d19d8412 proto kernel scope link src 192.168.128.1
192.168.144.0/20 dev br-6e07a8b10746 proto kernel scope link src 192.168.144.1 linkdown
192.168.208.0/20 dev br-61aea30a2570 proto kernel scope link src 192.168.208.1 linkdown
1. 대표적인 라우팅 항목 분석
a. default via 192.168.0.1 dev enp3s0 proto dhcp metric 100
- default: 이 호스트에서 가장 우선순위가 낮은(즉, 더 구체적인 경로가 없는 경우) 기본 게이트웨이(gateway) 역할을 하는 라우트
- via 192.168.0.1: 목적지 IP가 다른 라우트로 매칭되지 않으면, 패킷을 192.168.0.1(공유기, 라우터 등)에 게이트웨이로 전달
- dev enp3s0: 실제 물리 네트워크 인터페이스 이름. (옛날 eth0 대신 사용되는 Predictable Interface Name)
- proto dhcp: DHCP 클라이언트에 의해 설정된 라우트
- metric 100: 우선순위(값이 낮을수록 우선)
b. 192.168.0.0/24 dev enp3s0 proto kernel scope link src 192.168.0.11 metric 100
- 192.168.0.0/24: 이 서브넷(255.255.255.0)에 속하는 주소들은
- dev enp3s0: enp3s0 인터페이스로 직접 연결됨
- src 192.168.0.11: 해당 인터페이스의 IP 주소가 192.168.0.11
- proto kernel scope link: 커널이 직접(연결된 네트워크) 등록한 라우트
→ 즉, 호스트는 192.168.0.x 대역에 대해서는 물리 NIC enp3s0로 직접 통신 가능
d. 일련의 172.x.x.0/16 항목들 (docker0, br-xxx, docker_gwbridge 등)
- 예) 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
- docker0, br-...: Docker가 브리지 네트워크를 만들 때 자동으로 생성되는 가상 인터페이스(Bridge)
- 172.x.x.0/16 대역은 Docker가 컨테이너용으로 할당한 사설 IP 범위
- src 172.x.x.1: 브리지의 게이트웨이 IP (호스트가 해당 브리지 네트워크에서 게이트웨이 역할을 수행)
- linkdown: 현재 컨테이너가 붙어있지 않거나, 인터페이스가 비활성 상태로 표시
→ Docker가 docker network create 등으로 추가한 네트워크마다 고유한 브리지 인터페이스(br-...)와 그에 해당하는 IP 대역이 생성됩니다.
'DevOps > 리눅스' 카테고리의 다른 글
Umask 란? (0) | 2025.01.13 |
---|---|
Standalone 방식과 inetd 방식 (0) | 2025.01.11 |
리눅스에서 NI 란? (0) | 2025.01.11 |
Logrotate (0) | 2024.12.12 |
우분투 시스템 전역 환경변수 설정 (0) | 2024.12.10 |