Linux Multi-Homing(멀티 NIC) 문제의 원인과 해결 방법

기업 환경의 Linux 서버에서는 하나의 네트워크 카드(NIC)가 아니라 두 개 이상의 NIC를 사용하는 경우가 많습니다. 이를 Multi-Homing(멀티 호밍) 이라고 합니다. 서로 다른 네트워크를 연결하거나, 내부망과 외부망을 분리하거나, 관리망과 서비스망을 나누기 위해 자주 사용됩니다.

하지만 Multi-Homing 환경에서는 응답 패킷이 다른 인터페이스로 나가거나, 특정 네트워크만 접속되지 않거나, 비대칭 라우팅(Asymmetric Routing)이 발생하는 등 일반적인 단일 NIC 환경에서는 나타나지 않는 문제가 발생할 수 있습니다.

이번 글에서는 Linux Multi-Homing 환경에서 발생하는 대표적인 문제와 해결 방법을 실무 중심으로 알아보겠습니다.

Multi-Homing이란?

Multi-Homing은 하나의 서버에 여러 개의 네트워크 인터페이스를 사용하는 구성을 의미합니다.

예를 들어 다음과 같은 환경입니다.

            Linux Server
        ┌────────┬────────┐
        │        │        │
      eth0     eth1
        │        │
    내부망      외부망
192.168.10.x   10.0.0.x

각 인터페이스는 서로 다른 네트워크와 연결되며 각각 별도의 Gateway나 Routing 정책을 사용할 수도 있습니다.

Multi-Homing 문제가 발생하는 주요 원인

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

  • Default Gateway 충돌
  • Policy-Based Routing 미설정
  • Source IP 선택 오류
  • Reverse Path Filter(rp_filter)
  • ARP Flux
  • 비대칭 라우팅
  • DNS 설정 오류
  • 인터페이스 Metric 충돌
  • Firewall 정책 충돌
  • VPN Route 충돌

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

1. 인터페이스 확인하기

현재 NIC 정보를 확인합니다.

ip addr

또는

ip link

예시

eth0

192.168.10.100

eth1

10.0.0.100

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

2. Routing Table 확인하기

현재 Routing Table을 확인합니다.

ip route

예시

default via 192.168.10.1 dev eth0

10.0.0.0/24 dev eth1

Default Route가 중복되어 있는지 확인합니다.

3. Rule 확인하기

Policy-Based Routing을 사용하는 경우

ip rule

를 실행합니다.

출력 예시

100: from 10.0.0.100 lookup 100

Rule이 누락되면 응답이 다른 인터페이스로 나갈 수 있습니다.

4. 실제 경로 확인하기

패킷이 어느 인터페이스를 사용하는지 확인합니다.

ip route get 8.8.8.8 from 10.0.0.100

출력 예시

8.8.8.8

via 10.0.0.1

dev eth1

예상한 인터페이스를 사용하는지 확인합니다.

5. Reverse Path Filter 확인하기

현재 rp_filter 설정을 확인합니다.

sysctl net.ipv4.conf.all.rp_filter

또는

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

Strict Mode에서는 비대칭 라우팅을 차단할 수 있습니다.

임시 변경

sysctl -w net.ipv4.conf.all.rp_filter=2

Loose Mode를 사용하는 경우가 많습니다.

6. ARP Flux 확인하기

ARP 설정을 확인합니다.

sysctl -a | grep arp_ignore

또는

sysctl -a | grep arp_announce

ARP Flux가 발생하면 잘못된 인터페이스에서 ARP Reply를 보내 통신 장애가 발생할 수 있습니다.

7. tcpdump 확인하기

패킷 흐름을 확인합니다.

tcpdump -i eth0

또는

tcpdump -i eth1

요청과 응답이 서로 다른 인터페이스를 사용하는지 확인합니다.

8. 로그 확인하기

커널 로그를 확인합니다.

journalctl -k

또는

dmesg

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

9. Firewall 확인하기

방화벽 정책을 확인합니다.

iptables -L -n

또는

firewall-cmd --list-all

인터페이스별 정책이 충돌하지 않는지 확인합니다.

10. 영구 설정 적용하기

Multi-Homing 환경에서는 다음 설정을 영구적으로 적용해야 합니다.

  • Routing Table
  • Policy-Based Routing
  • rp_filter
  • ARP 설정
  • NetworkManager 또는 Netplan 설정

재부팅 후에도 동일하게 동작하는지 반드시 확인합니다.

Multi-Homing 문제 점검 순서

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

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

Multi-Homing 사용 시 주의사항

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

  • Default Gateway는 하나만 사용하는 것이 일반적이다.
  • 여러 회선을 사용할 경우 Policy-Based Routing을 적용한다.
  • Reverse Path Filter 설정을 확인한다.
  • ARP Flux를 방지하도록 arp_ignorearp_announce를 적절히 설정한다.
  • 인터페이스별 방화벽 정책을 검토한다.
  • 응답 패킷이 동일한 인터페이스로 나가는지 확인한다.

Multi-Homing은 매우 유용하지만, 라우팅 정책을 명확하게 설계하지 않으면 예측하기 어려운 네트워크 장애가 발생할 수 있습니다.

Multi-Homing과 Bonding의 차이

항목Multi-HomingBonding
목적여러 네트워크 연결NIC 이중화 및 성능 향상
인터페이스독립적으로 사용하나의 논리 인터페이스로 사용
Gateway여러 개 가능일반적으로 하나
대표 기술Policy RoutingActive-Backup, LACP

Bonding은 여러 NIC를 하나처럼 사용하는 기술이고, Multi-Homing은 각각의 NIC를 독립적인 네트워크에 연결하여 사용하는 방식입니다.

자주 묻는 질문

NIC가 두 개면 자동으로 Multi-Homing이 되나요?

아닙니다. 단순히 NIC를 추가하는 것만으로는 충분하지 않습니다. 라우팅 정책과 Gateway, 필요한 경우 Policy-Based Routing까지 함께 설정해야 합니다.

Multi-Homing에서는 Default Gateway를 두 개 설정해도 되나요?

가능은 하지만 권장되지 않습니다. 대부분의 환경에서는 하나의 Default Gateway를 사용하고, 다른 네트워크는 Static Route 또는 Policy-Based Routing으로 처리하는 것이 안정적입니다.

rp_filter는 왜 문제가 되나요?

Strict Mode에서는 요청이 들어온 인터페이스와 응답이 나가는 인터페이스가 다르면 패킷을 차단할 수 있습니다. Multi-Homing 환경에서는 Loose Mode를 사용하는 경우가 많습니다.

마무리

Multi-Homing은 여러 네트워크를 동시에 사용하는 Linux 서버에서 매우 중요한 구성입니다. ip addr, ip route, ip rule, tcpdump, sysctl 등을 활용하면 대부분의 Multi-Homing 문제를 빠르게 분석할 수 있으며, Policy-Based Routing과 ARP 설정, Reverse Path Filter를 함께 관리하는 것이 안정적인 운영의 핵심입니다.

댓글 남기기