Linux Asymmetric Routing(비대칭 라우팅) 문제의 원인과 해결 방법

Linux 서버에서 요청(Request)은 정상적으로 전달되지만 응답(Response)이 다른 네트워크 인터페이스를 통해 전송되어 통신이 실패하는 경우가 있습니다. 이러한 현상을 Asymmetric Routing(비대칭 라우팅) 이라고 합니다.

비대칭 라우팅은 하나의 서버에 여러 개의 NIC가 있는 Multi-Homing 환경이나 VPN, 이중 회선, Policy-Based Routing(PBR) 환경에서 자주 발생합니다. 특히 Ping은 정상인데 TCP 연결만 실패하거나, 특정 서비스만 접속되지 않는 경우 비대칭 라우팅을 의심해야 합니다.

이번 글에서는 Linux에서 Asymmetric Routing 문제가 발생하는 원인과 해결 방법을 실무 중심으로 알아보겠습니다.

Asymmetric Routing이란?

비대칭 라우팅은 패킷이 들어온 경로와 나가는 경로가 서로 다른 경우를 의미합니다.

예를 들어 다음과 같은 구조입니다.

Client
   │
   ▼
eth0 (Request 수신)
   │
Linux Server
   │
eth1 (Response 전송)
   ▼
Gateway B

클라이언트는 eth0으로 요청을 보냈지만 서버는 eth1으로 응답을 보내기 때문에 방화벽이나 라우터에서 세션을 유지하지 못해 통신이 실패할 수 있습니다.

Asymmetric Routing 문제가 발생하는 주요 원인

대표적인 원인은 다음과 같습니다.

  • Multi-Homing 구성
  • Default Gateway 설정 오류
  • Policy-Based Routing 미설정
  • Static Route 충돌
  • Reverse Path Filtering(rp_filter)
  • Metric 설정 오류
  • VPN 경로 충돌
  • ARP Flux
  • NAT 설정 오류
  • 방화벽 정책

실무에서는 Policy-Based Routing 미구성Default Gateway 설정 오류가 가장 많이 발생합니다.

1. Routing Table 확인하기

현재 라우팅 정보를 확인합니다.

ip route

또는

route -n

Default Route와 Static Route가 예상대로 설정되어 있는지 확인합니다.

2. 실제 패킷 경로 확인하기

특정 Source IP 기준으로 경로를 확인합니다.

ip route get 8.8.8.8 from 192.168.10.100

출력 예시

8.8.8.8 via 192.168.10.1 dev eth0

응답이 원하는 인터페이스를 사용하는지 확인합니다.

3. Policy Rule 확인하기

Policy-Based Routing을 사용하는 경우

ip rule show

Rule이 없는 경우 Source IP에 따른 올바른 경로를 선택하지 못할 수 있습니다.

4. 인터페이스 확인하기

NIC 상태를 확인합니다.

ip addr

또는

ip link

모든 인터페이스가 UP 상태인지 확인합니다.

5. rp_filter 확인하기

Reverse Path Filtering 설정을 확인합니다.

sysctl net.ipv4.conf.all.rp_filter

또는

cat /proc/sys/net/ipv4/conf/all/rp_filter

Strict Mode(1)는 비대칭 라우팅을 차단할 수 있습니다.

Multi-Homing 환경에서는 Loose Mode(2)를 사용하는 경우가 많습니다.

6. tcpdump로 패킷 확인하기

패킷이 어느 인터페이스를 통해 이동하는지 확인합니다.

tcpdump -i eth0

또는

tcpdump -i eth1

Request는 eth0으로 들어오고 Response가 eth1으로 나가는지 확인합니다.

7. ARP 설정 확인하기

ARP 관련 설정을 확인합니다.

sysctl -a | grep arp_ignore

또는

sysctl -a | grep arp_announce

ARP Flux가 발생하면 잘못된 인터페이스를 통해 응답할 수 있습니다.

8. 방화벽 확인하기

Firewall 정책을 확인합니다.

iptables -L -n

또는

firewall-cmd --list-all

Stateful Firewall은 비대칭 라우팅 환경에서 세션을 차단할 수 있습니다.

9. 로그 확인하기

커널 로그를 확인합니다.

journalctl -k

또는

dmesg

라우팅이나 인터페이스 관련 오류를 확인합니다.

10. 해결 방법 적용하기

비대칭 라우팅 문제는 다음과 같은 방법으로 해결하는 경우가 많습니다.

  • Policy-Based Routing 적용
  • rp_filter를 Loose Mode(2)로 변경
  • Default Gateway 정리
  • Static Route 수정
  • Metric 조정
  • ARP 설정 최적화

설정 변경 후에는 반드시 실제 서비스 테스트를 수행해야 합니다.

Asymmetric Routing 문제 점검 순서

실무에서는 다음 순서대로 확인하는 것이 좋습니다.

  1. Routing Table 확인
  2. Default Gateway 확인
  3. Policy Rule 확인
  4. 인터페이스 상태 확인
  5. rp_filter 확인
  6. 실제 경로 확인
  7. tcpdump 분석
  8. ARP 설정 확인
  9. Firewall 확인
  10. 서비스 테스트

Asymmetric Routing 사용 시 주의사항

다음 사항을 확인해야 합니다.

  • 요청과 응답은 가능한 동일한 인터페이스를 사용한다.
  • Multi-Homing 환경에서는 Policy-Based Routing을 적용한다.
  • rp_filter 설정을 확인한다.
  • Stateful Firewall 환경에서는 세션 유지 여부를 점검한다.
  • Gateway와 Metric 설정을 함께 확인한다.
  • ARP Flux 문제도 함께 점검한다.

비대칭 라우팅은 네트워크 자체에는 문제가 없어 보여도 실제 서비스 장애를 유발할 수 있으므로 패킷 흐름을 함께 분석하는 것이 중요합니다.

Asymmetric Routing과 Multi-Homing의 차이

항목Asymmetric RoutingMulti-Homing
의미요청과 응답 경로가 다름여러 개의 NIC 사용
원인라우팅 정책네트워크 구성
장애 발생가능반드시 발생하지 않음
해결 방법PBR, Route 수정올바른 네트워크 설계

Multi-Homing 자체는 문제가 아니며, 잘못된 라우팅 정책으로 인해 비대칭 라우팅이 발생할 때 장애가 발생합니다.

자주 묻는 질문

Ping은 되는데 SSH나 HTTP만 안 됩니다.

비대칭 라우팅으로 인해 TCP 세션이 정상적으로 유지되지 않는 경우가 많습니다. tcpdump를 이용해 요청과 응답 인터페이스를 확인해 보세요.

Multi-Homing 환경에서는 항상 비대칭 라우팅이 발생하나요?

아닙니다. Policy-Based Routing과 Gateway를 올바르게 설정하면 요청과 응답이 동일한 인터페이스를 사용하므로 문제가 발생하지 않습니다.

비대칭 라우팅은 어떻게 가장 쉽게 확인할 수 있나요?

tcpdump를 각각의 인터페이스에서 실행하면 요청과 응답이 서로 다른 NIC를 사용하는지 쉽게 확인할 수 있습니다.

마무리

Asymmetric Routing은 Multi-Homing, VPN, 이중 회선 환경에서 자주 발생하는 네트워크 문제입니다. ip route, ip rule, tcpdump, sysctl 등을 활용하면 대부분의 원인을 빠르게 분석할 수 있으며, Policy-Based Routing과 적절한 rp_filter 설정을 함께 적용하면 안정적인 네트워크 운영이 가능합니다.

댓글 남기기