アップリンクインターフェースが使用可能かどうかを判断する

アップリンクインターフェースが使用可能かどうかを判断する

異なる ISP への 2 つのアップリンクによって提供されるファイアウォール システムがあります。ファイアウォールの管理には shorewall を使用しています。shorewall は、接続追跡を使用して両方のインターフェイスでトラフィックの負荷を分散します。すべてうまく機能しています。

インターフェースの 1 つが使用できなくなったことを検出したときに、インターフェースを起動/停止するスクリプトをいくつか作成しました。shorewall が提案する LSM (Ubuntu にはない) は気に入らなかったので、代わりにインターフェース監視用の netplugd と接続テスト用の cron の ping スクリプトを選択しました。

ping スクリプトは基本的に 1 回だけ実行しますping -I eth[01] 8.8.8.8。ping が失敗した場合は再試行し、それでも失敗した場合は shorewall にインターフェイスを停止するように指示します。

問題は、ファイアウォールがインターフェイスを無効にしたときに発生し、 を実行できなくなります。直近のゲートウェイに ping を実行する場合を除き、ping常に で応答します。Destination Host Unreachable

通常のトラフィックを送信せずに、インターフェース経由で実際のインターネット接続をテストする方法はありますか?

私が書いたスクリプトは次のとおりです。

チェックインターフェース: (cron および netplugd イベントから実行)

#!/bin/bash
#
# Verify state of interfaces
#
google_ping() {
        if ! ping -I "$1" -n -c1 -w1 -q 8.8.8.8 >/dev/null 2>&1; then
                # Try harder
                ping -I "$1" -n -c2 -w5 -q 8.8.8.8 >/dev/null 2>&1
        fi
}

REFRESH=
for i in eth0 eth1; do
        if google_ping $i; then
                if ! [ -e /tmp/shorewall-$i.up ]; then
                        echo Interface $i came up
                        touch /tmp/shorewall-$i.up
                        REFRESH=true
                fi
        else
                if [ -e /tmp/shorewall-$i.up ]; then
                        echo Interface $i went down
                        rm /tmp/shorewall-$i.up
                        REFRESH=true
                fi
        fi
done
if [ -n "$REFRESH" ]; then
        echo Kicking shorewall...
        /sbin/shorewall refresh >/dev/null
fi

(shorewall を使用するとインターフェイスをダウンさせることができることは知っています/var/lib/shorewall/firewall disable eth1が、不安定な点があったため、私は単に refresh を使用しています)

/etc/shorewall/isusable:

# Used by shorewall to check if interface is usable
# This is sourced instead of executed so don't exit but return

# Interface is up
if [ -e "/tmp/shorewall-$1.up" ]; then
        return 0
elif ls /tmp/shorewall-*.up >/dev/null 2>&1; then
        return 1
else
        # No interfaces are up - pretend they're up and hope for the best
        return 0
fi

関連情報