2つの異なるISPから2つのインターネット接続があります。eth0上のADSLおよびwlan0上の4G。1つのISPに障害が発生した場合、他のISPが物理ルーターなしでホストOSによって自動的に引き継ぐ方法はありますか(Ubuntu 18.04)?
2つの異なるISPから2つのインターネット接続があります。eth0上のADSLおよびwlan0上の4G。1つの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ルーターをセットアップすると、インターネット帯域幅を増やすことができます。特定のニーズに合わせてトラフィックを負荷分散できます。インターネット接続の冗長性とフェールオーバーを実現できます。
よろしく、