2つの異なるISPから2つのインターネット接続があります。 eth0のADSLとwlan0の4G。一方のISPに障害が発生した場合、もう一方のISPが物理ルーターなしでホストOS(Ubuntu 18.04)によって自動的に引き継ぐ方法はありますか?
私はホストOSからこれを個人的に試みたことがありません。しかし、何度も行ったり来たりした後、私はあなたが探しているものを見つけることができるかどうかを確認するためにインターネットを掘り下げることにしました。
ユーザー「Apsu」によって作成されたゲートウェイフェイルオーバーのサンプルスクリプトをGist.github.comで見つけました。 bashスクリプトをダウンロードできます ここ。
これを特定の設定に変更し、インターフェイス名、ゲートウェイアドレスを追加する必要があります。これで、準備は完了です。
#!/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ルーターのセットアップにより、インターネット帯域幅を増やすことができます。特定のニーズに合わせてトラフィックの負荷を分散できます。インターネット接続の冗長性とフェイルオーバーを取得できます。
よろしく、