
두 개의 다른 ISP에서 두 개의 인터넷 연결이 있습니다. eth0의 ADSL 및 wlan0의 4G. 한 ISP에 장애가 발생하면 물리적 라우터 없이 호스트 OS(Ubuntu 18.04)를 통해 다른 ISP가 자동으로 인계받을 수 있는 방법이 있습니까?
답변1
나는 개인적으로 호스트 OS에서 이 작업을 시도한 적이 없습니다. 그러나 고민 끝에 나는 당신이 찾고 있는 것을 찾을 수 있는지 알아보기 위해 인터넷을 뒤지기로 결정했습니다.
"Apsu" 사용자가 만든 gist.github.com에서 게이트웨이 장애 조치에 대한 예제 스크립트를 찾았습니다. bash 스크립트를 다운로드할 수 있습니다여기.
이를 특정 설정에 맞게 수정하고 인터페이스 이름, 게이트웨이 주소를 추가해야 합니다.
호스트 OS용 스크립트:
#!/bin/bash
# Set defaults if not provided by environment
CHECK_DELAY=${CHECK_DELAY:-5}
CHECK_IP=${CHECK_IP:-8.8.8.8}
PRIMARY_IF=${PRIMARY_IF:-eth0}
PRIMARY_GW=${PRIMARY_GW:-1.2.3.4}
BACKUP_IF=${BACKUP_IF:-eth1}
BACKUP_GW=${BACKUP_GW:-2.3.4.5}
# Compare arg with current default gateway interface for route to healthcheck IP
gateway_if() {
[[ "$1" = "$(ip r g "$CHECK_IP" | sed -rn 's/^.*dev ([^ ]*).*$/\1/p')" ]]
}
# Cycle healthcheck continuously with specified delay
while sleep "$CHECK_DELAY"
do
# If healthcheck succeeds from primary interface
if ping -I "$PRIMARY_IF" -c1 "$CHECK_IP" &>/dev/null
then
# Are we using the backup?
if gateway_if "$BACKUP_IF"
then # Switch to primary
ip r d default via "$BACKUP_GW" dev "$BACKUP_IF"
ip r a default via "$PRIMARY_GW" dev "$PRIMARY_IF"
fi
else
# Are we using the primary?
if gateway_if "$PRIMARY_IF"
then # Switch to backup
ip r d default via "$PRIMARY_GW" dev "$PRIMARY_IF"
ip r a default via "$BACKUP_GW" dev "$BACKUP_IF"
fi
fi
done
네트워크 하드웨어 사용:
호스트 OS에서 장애 조치를 수행하는 것과는 달리 이 기능을 위해 라우터를 사용하면 상당한 이점이 있습니다. 즉시 떠오르는 것은 두 연결 대역폭을 동시에 사용하는 것입니다. (두 ISP 연결을 모두 활용)
PFsense/OpenSense를 듀얼 WAN 라우터로 사용할 수 있습니다. (대부분의 오래된 PC 하드웨어는 작동합니다.) 저는 DD-WRT 지원 라우터도 약간의 조정을 통해 WAN 장애 복구가 가능하다고 생각합니다. 또는 Sophos나 Netgear prosafe와 같은 즉시 사용 가능한 솔루션을 사용할 수도 있습니다. 다른 솔루션도 있을 것이라고 확신합니다. 하지만 대부분의 기본 제공 솔루션은 가정 사용자가 기꺼이 지불하려는 것보다 더 비쌉니다. 듀얼 wan 라우터 설정을 사용하면 인터넷 대역폭을 늘릴 수 있습니다. 특정 요구 사항에 맞게 트래픽의 부하를 분산할 수 있습니다. 인터넷 연결 중복성과 장애 조치를 얻을 수 있습니다.
문안 인사,