본문 바로가기

서버이야기

'ip route' 명령어 알아보기 : 라우팅 테이블 조회/추가/삭제 등

Today Key : ip , route, 라우팅, 테이블, next-hop, 추가, 제거, 삭제, iproute, via, 리눅스


Linux에서 라우팅을 다룰 때 예전에는 route, netstat -rn 같은 도구를 많이 썼지만, 요즘 실무 표준은 iproute2 패키지의 ip 명령입니다. 
그 중에서도 ip route는 “이 호스트가 목적지로 가는 패킷을 어디로 보낼지”를 결정하는 라우팅 테이블(Route Table) 을 조회하고 제어하는 핵심 명령어입니다.

이번 포스팅에서 ip route의 기본 개념부터, 실무에서 자주 쓰는 옵션을 함께 정리해봅니다.


ip route가 다루는 것: “커널 라우팅 테이블”

  • Linux 커널은 목적지 IP를 보고 라우팅을 수행하는 ip route는 이 커널 라우팅 정보를 확인/변경합니다.
    • 어떤 인터페이스(dev)로 보낼지
    • 다음 홉(next-hop, via)은 어디인지
    • 우선순위(metric)
    • 라우트 범위(scope), 프로토콜(proto), 타입(type)



ip route를 사용한 라우팅 조회 

1. 전체 조회

ip route
# 또는
ip r


사용 예시 및  설명

  • default: 디폴트 라우트(0.0.0.0/0)
  • via: next-hop 게이트웨이
  • dev: 패킷이 나가는 인터페이스
  • proto: 이 라우트가 어디서 왔는지(커널/정적/OSPF/BGP 등 식별)
  • metric: 우선순위(낮을수록 선호)
  • scope link: 링크-로컬(해당 L2에서 직접 도달 가능)
  • src: 이 라우트를 타고 나갈 때 기본 소스 IP 힌트

 

2. 특정 목적지에 대한 라우팅 확인

  • 특정 목적지(host)에 대해서 어떤 라우팅 정보를 적용받는지 확인 가능한 명령입니다.
  • 정책 라우팅(rule), 테이블, 소스 IP, 입력 인터페이스 조건까지 반영된 결과 값이라, 트러블 슈팅에 사용에 좋습니다.
ip route get 목적지_IP주소



3. 특정 목적지 네트워크 대역으로 조회

  • 특정 목적지 네트워크에 대해서 어떤 라우팅 정보를 적용받는지 확인 가능한 명령입니다.
  • 단순히 show로만 하면 서브넷까지 정확히 일치한 라우팅 테이블만 조회가 가능합니다.
  • match까지 사용하면, 목적지 네트워크 대역을 포함하는 라우팅 테이블이 모두 조회됩니다.
ip route show 목적지_네트워크_대역
ip route show match 목적지_네트워크_대역



4 인터페이스 기준 필터

 

  • 라우팅 테이블에서 특정 인터페이스에 대한 라우팅 테이블만 조회
ip route show dev 인터페이스



라우트 추가/삭제/변경: add, del, replace

1. 정적 라우트 추가 (next-hop 지정)

  • via에 next-hop IP 주소를 입력하면 되고, 보통 서버거 연결된 네트워크의 게이트웨이
  • dev는 보통 자동 유추되지만, 명시해두면 더 명확합니다(특히 멀티 NIC 환경).
sudo ip route add 목적지대역 via 넥스트홉 dev 인터페이스

 


2. “직접 연결(connected)”처럼 강제로 dev만 지정

  • 게이트웨이 없이 특정 인터페이스로 라우팅 설정을 하는 경우에 dev로만 설정
  • 다만, 보통은 잘 사용하진 않고, 보통 via로 next hop을 입력하는 방식을 사용
sudo ip route add 10.30.0.0/16 dev eth1

이건 “eth1로 내보내라”는 의미인데, L2/L3 환경에 따라 ARP/ND가 해결 못하면 통신이 안 됩니다. 보통은 via를 쓰는 편이 안전합니다.


3. 라우팅 변경

  • 현재 라우팅 테이블의 설정을 변경
  • default 변경 시에는 목적지_네트워크에 default로 설정
sudo ip route replace 목적지_네트워크 via 넥스트홉 dev 인터페이스 metric 메트릭값

4. 라우팅 테이블 제거

  • 기존 라우팅 테이블을 제거합니다. 
  • 현재 라우팅 테이블에 등록된 목적지 네트워크 대역과 일치하게 해야 라우팅이 삭제 됩니다. (일부만 삭제 불가)
sudo ip route del 10.20.0.0/16     # 지정된 목적지 대역 라우팅 삭제

sudo ip route del default          # Default 라우팅 삭제