DHCP가 포함된 NIC 2개(하나는 백업으로 사용)

DHCP가 포함된 NIC 2개(하나는 백업으로 사용)

시나리오는 다음과 같습니다: Debian을 실행하고 두 개의 NIC(광대역 연결 및 Wi-Fi 연결)가 있고 둘 다 DHCP가 있으며 미리 알려져 있고 시간이 지남에 따라 변경될 수 있는 네트워크 정보가 없는 Linux 시스템입니다. Wi-Fi 연결을 기본 연결로 사용하고 싶지만 어떤 이유로 Wi-Fi 연결이 실패하면 자동으로 광대역 연결로 대체됩니다. 또한 Wi-Fi 연결이 다시 작동하기 시작하면 자동으로 Wi-Fi 연결로 돌아가고 싶습니다.

어떻게 설정하는지 아시나요? IP 라우팅을 통해 이 작업을 수행하고 싶지만 Wi-Fi 연결 감지는 특정 서버에 대한 핑과 같이 상당히 일반적이어야 합니다(검사가 핑과 유사해야 하는 이유는 Wi-Fi 연결이 여전히 있을 수 있지만 Wi-Fi 자체는 더 이상 인터넷에 연결되어 있지 않습니다.)

답변1

다음 백그라운드 스크립트를 사용하여 이 문제를 해결했습니다.

#!/bin/sh
PRIMARY=wlan0
SECONDARY=eth1
SLEEP=60
PING=8.8.8.8
CONDITION="100% packet loss"


while :
do
    echo Init
    ifmetric $PRIMARY 100
    ifmetric $SECONDARY 200
    if [ "`ip route | grep default | grep $PRIMARY`" = "" ];
    then
        ip route add default via `ip route show | grep $PRIMARY | grep "scope link" | sed 's/\(.*\)0\/.*/\1/'`1 dev $PRIMARY
    fi
    if [ "`ip route | grep default | grep $SECONDARY`" = "" ];
    then
        ip route add default via `ip route show | grep $SECONDARY | grep "scope link" | sed 's/\(.*\)0\/.*/\1/'`1 dev $SECONDARY
    fi
    ifmetric $PRIMARY 100
    ifmetric $SECONDARY 200
    echo Primary
    while [ "`ping -I $PRIMARY -c 10 -w 20 $PING | grep \"$CONDITION\"`" = "" ];
    do
        sleep $SLEEP
    done
    echo Secondary
    ifmetric $SECONDARY 50
    while [ -n "`ping -I $PRIMARY -c 10 -w 20 $PING | grep \"$CONDITION\"`" ];
    do
        ifdown $PRIMARY
        sleep $SLEEP
        ifup $PRIMARY
        sleep $SLEEP
    done
done

관련 정보