
2 つの異なる ISP から 2 つのインターネット接続があります。eth0 の ADSL と wlan0 の 4G です。1 つの ISP に障害が発生した場合、物理ルーターを使用せずにホスト OS (Ubuntu 18.04) によってもう 1 つが自動的に引き継ぐ方法はありますか?
答え1
私は個人的にホスト OS からこれを実行しようとしたことがありません。しかし、何度もやりとりした後、インターネットで調べて、あなたが探しているものが見つかるかどうか確認することにしました。
gist.github.comで、ユーザー「Apsu」が作成したゲートウェイフェイルオーバーのサンプルスクリプトを見つけました。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 ルーターのセットアップにより、インターネット帯域幅を増やすことができます。特定のニーズに合わせてトラフィックを負荷分散できます。インターネット接続の冗長性とフェールオーバーを実現できます。
よろしくお願いいたします。