동일한 메트릭을 가진 두 개의 기본 경로: Linux 커널은 어느 경로를 사용합니까?

동일한 메트릭을 가진 두 개의 기본 경로: Linux 커널은 어느 경로를 사용합니까?

비슷한 질문인데 답변이 없습니다.

Linux에서 두 경로의 메트릭이 동일한 경우 어떤 경로가 사용됩니까? 나는 이것을 찾았다녹음된Windows의 경우("동일한 속도의 여러 인터페이스가 동일한 최소 인터페이스 메트릭을 갖는 경우 바인딩 순서에 따라 첫 번째 네트워크 어댑터의 기본 게이트웨이가 사용됩니다. 첫 번째 네트워크 어댑터를 사용할 수 없는 경우.") Linux에서는 찾을 수 없습니다. 예 이 문제를 어떻게 처리해야 할까요?

내 생각에 답은 다음과 같다.암호그러나 그것은 분명하지 않습니다.

답변1

커널에서는 동일하게 실행 가능한 여러 경로를 허용하지 않습니다. EEXIST오류가 발생 하여 두 번째 경로를 거부합니다 .

% ip route add 192.0.2.0/24 dev eth0 metric 10
% echo $?
0
% ip route add 192.0.2.0/24 dev eth1 metric 10
RTNETLINK answers: File exists
% echo $?
2

다중 경로 라우팅, 즉 여러 다음 홉이 있는 단일 경로를 사용할 수 있습니다. 여기서 커널은 다음을 기반으로 사용 가능한 다음 홉 간에 트래픽을 배포(로드 공유/로드 밸런싱)합니다.fib_multipath_hash_policy:

% ip route add 192.0.2.0/24 metric 10 nexthop dev eth0 nexthop dev eth1
% ip route show to exact 192.0.2.0/24
192.0.2.0/24 metric 10
        nexthop dev eth0 weight 1
        nexthop dev eth1 weight 1

답변2

두 개 이상의 기본 경로를 사용하는 것은 피해야 합니다. 고정 IP 주소 지정을 사용하면 이는 간단합니다. "게이트웨이" 필드에는 아무것도 입력하지 마세요. DHCP 할당 주소를 사용하는 경우 하나의 기본 경로만 광고하도록 DHCP 서버를 재구성하거나 기본 경로 중 하나를 무시하도록 Linux 컴퓨터를 구성할 수 있습니다. 나는 일반적으로 다음과 같은 간단한 NetworkManager 명령을 사용하여 후자를 수행합니다.

$ nmcli connection modify "eth1" ipv4.ignore-auto-routes yes

관련 정보