ip route show는 경로 테이블에 있는 경로를 나열합니다. ip route get은 목적지와 출발지, 입력 인터페이스 등 주어진 조건으로 커널이 선택할 경로를 조회합니다. 정책 규칙이 있다면 같은 목적지도 다른 테이블이나 인터페이스를 선택할 수 있습니다.
ip route get은 이 경로로 패킷을 보내지 않고 lookup 결과를 보여줍니다. 따라서 결과는 실제 네트워크 연결이나 원격 서비스의 응답 성공을 증명하지 않습니다.
경로 목록과 경로 선택 결과는 다른 질문입니다
ip route show를 실행하면 선택 조건에 맞는 경로 테이블의 내용을 볼 수 있습니다. 이 명령은 저장된 경로 항목을 보여주는 데 적합합니다. 하지만 목적지 주소 하나를 보냈을 때 커널이 어느 항목을 선택할지 확인하려면 ip route get을 사용합니다. 공식 ip-route 문서는 show가 기존 경로를 보여주고 get은 경로를 해석한다고 구분합니다.
기본 라우팅은 목적지 주소를 중심으로 경로를 고르지만 Linux policy routing은 출발지 주소, 입력 인터페이스, firewall mark 등 조건에 따라 다른 routing table을 참조할 수 있습니다. 따라서 main table에 기본 경로가 하나 보인다고 해서 모든 흐름이 같은 출구를 쓴다고 단정하면 안 됩니다.
교육용 예: 목적지는 같고 출발 조건은 다릅니다
다음은 실제 장비에서 수집한 결과가 아닌 교육용 예시입니다. 203.0.113.8은 문서 예시에 사용하는 예약 주소입니다. 가상의 Linux 장비에는 두 정책 경로가 있다고 가정합니다. 출발지 192.0.2.20인 로컬 트래픽은 table 100을 통해 eth1로, 다른 출발 조건의 트래픽은 main table을 통해 eth0로 나간다고 설정되어 있습니다.
ip route show table main
default via 192.0.2.1 dev eth0
ip route get 203.0.113.8 from 192.0.2.20
203.0.113.8 from 192.0.2.20 via 192.0.2.254 dev eth1 table 100 src 192.0.2.20
ip route get 203.0.113.8 from 192.0.2.30
203.0.113.8 from 192.0.2.30 via 192.0.2.1 dev eth0 table main src 192.0.2.30첫 줄은 main table의 기본 경로만 보여줍니다. 두 번째 질문은 from 조건 때문에 table 100을 선택해 eth1로 나가는 결과를 예시합니다. 세 번째 질문은 main table을 선택해 eth0를 사용합니다. 목적지 주소는 같지만 selector가 달라 경로가 달라진 것입니다. 이는 라우팅 정책이 목적지 외 필드를 조건으로 사용할 수 있다는 설명과 맞습니다.
실제 환경에서는 조회 조건을 하나씩 바꿉니다
- 먼저 ip rule show로 정책 규칙을 읽습니다. priority가 낮은 숫자부터 규칙을 평가하며 from, to, iif, fwmark 등의 조건이 있는지 표시합니다.
- ip route show table all로 어떤 테이블에 경로가 있는지 살펴봅니다. 경로 존재와 실제 선택 결과를 같은 것으로 보지 않습니다.
- ip route get에 목적지를 넣어 기본 lookup을 조회합니다. 출발지 주소나 입력 인터페이스가 문제와 관계있다면 해당 조건을 명시합니다.
- 결과의 via, dev, table, src를 비교합니다. 조건을 바꿀 때는 한 번에 한 항목만 바꾸면 차이를 찾기 쉽습니다.
- 조회 결과는 라우팅 정책의 현재 판단이지, 패킷 전송 확인이나 DNS·방화벽·원격 서비스 상태 증거는 아닙니다.
ip rule show
ip route show table all
ip route get 203.0.113.8 from 192.0.2.20
ip route get 203.0.113.8 from 192.0.2.20 iif lan0마지막 예에서 iif를 추가하면 커널은 패킷이 lan0로 들어온 상황을 가정해 전달 경로를 조회합니다. 로컬 프로세스가 내보내는 트래픽과 들어온 패킷을 전달하는 흐름은 다를 수 있습니다. 입력 인터페이스 규칙을 확인할 때에는 조회 조건이 실제 질문의 흐름과 맞는지 먼저 확인하세요.
자주 하는 실수: route get을 연결 시험으로 봅니다
ip route get은 경로 lookup을 수행하지만 목적지까지 패킷을 보내지 않습니다. 명령 결과에 dev eth1이 표시되어도 eth1 링크가 정상인지, 다음 장비가 응답하는지, 방화벽이 허용하는지 알 수 없습니다. 연결 확인이 필요하면 별도의 승인된 진단 방법과 로그를 사용하고, 어떤 계층을 검증했는지 결과에 분리해 적어야 합니다.
또 show 출력에서 특정 경로가 눈에 띈다고 그 경로가 선택된다고 단정하는 오류도 흔합니다. 선택은 정책 규칙과 입력 조건까지 읽은 다음 get 결과로 확인하세요.
회상 연습
교육용 질문입니다. main table에는 eth0 기본 경로가 보입니다. 그런데 같은 목적지에 대한 ip route get 결과는 table 100과 eth1을 표시합니다. 우선 무엇을 확인해야 하며, 이 출력이 증명하지 않는 것은 무엇인가요?
시스템과 네트워크 로그를 근거로 판단하는 연습을 더 하고 싶다면 정보보안기사 덱 구성을 확인할 수 있습니다.
정답을 가리고 확인해 보세요
이 글을 위해 만든 학습 예시이며 공식 기출문제나 판매 카드의 인용이 아닙니다.
같은 목적지에 대해 route show에는 main 기본 경로 eth0가 보이지만 route get from 192.0.2.20은 table 100 dev eth1을 반환합니다. 차이를 설명하고 이 결과의 한계를 쓰세요.
정답과 해설 확인
source 조건을 포함한 policy routing 규칙이 table 100을 선택해 eth1 경로를 사용한 결과입니다. 이 조회는 패킷을 보내지 않으므로 실제 연결 성공을 증명하지 않습니다.ip-route 문서는 show가 기존 경로를 나열하고 get이 조건별 경로를 해석한다고 구분하며 ip-rule 문서는 source·iif 등의 정책 selector를 설명합니다.