내 잡다한 노트

리눅스에서 라우팅 테이블 본문

DevOps/리눅스

리눅스에서 라우팅 테이블

peanutwalnut 2025. 1. 25. 22:58

 

라우팅 테이블(Routing Table)**은 네트워크 트래픽이 어떤 경로(인터페이스, 게이트웨이)로 나가야 하는지를 정의한 정보입니다. IP 패킷이 목적지 IP에 따라 적절한 인터페이스나 게이트웨이를 통해 전달되도록 하는 핵심 로직을 담고 있다.

 

이 라우팅 테이블은 커널이 유지하며, 보통 ip route나 route 명령어로 확인하고 조정할 수 있습니다.

 

1. 기본 개념

  1. 라우트(Route)
    • 목적지 주소대역(예: 192.168.0.0/24)과 이를 처리할 출력(Interface), 게이트웨이(Gateway), 메트릭(Metric) 등의 정보로 구성됩니다.
    • “이 IP 대역(혹은 호스트 IP)은 어느 인터페이스로 보내야 하는가?”를 결정합니다.
  2. Default Route(기본 게이트웨이)
    • 목적지 IP가 라우팅 테이블에 없을 경우, 마지막으로 참조하는 기본 경로입니다.
    • 일반적으로 default via 192.168.0.1 dev eth0 형태로 많이 표시됩니다.
  3. Metric
    • 라우트 우선순위를 나타내는 지표. 값이 낮을수록 우선순위가 높습니다.
    • 여러 개의 라우트가 같은 목적지 대역을 가리킬 때, 메트릭 값이 더 낮은 라우트를 우선 적용합니다.
  4. 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