업링크 인터페이스를 사용할 수 있는지 확인

업링크 인터페이스를 사용할 수 있는지 확인

서로 다른 ISP에 대한 두 개의 업링크를 통해 제공되는 방화벽 시스템이 있습니다. 저는 방화벽을 관리하기 위해 Shorewall을 사용하고 있습니다. 연결 추적을 통해 두 인터페이스 모두의 트래픽 부하를 분산합니다. 모두 잘 작동합니다.

인터페이스 중 하나가 더 이상 사용할 수 없음을 감지하면 인터페이스를 가동/중단하기 위해 일부 스크립트를 작성했습니다. 나는 Shorewall이 제안하는 LSM(Ubuntu에는 없음)이 마음에 들지 않았고 대신 인터페이스 모니터링을 위해 netplugd를 선택하고 연결 테스트를 위해 cron의 ping 스크립트를 선택했습니다.

ping 스크립트는 기본적으로 단일 ping -I eth[01] 8.8.8.8. 핑이 실패하면 다시 시도하고, 실패하면 해안벽에 인터페이스를 중단하라고 지시합니다.

내 문제는 방화벽이 인터페이스의 작동을 중단했을 때 발생합니다. 그러면 더 이상 ping. Destination Host Unreachable즉시 게이트웨이에 대한 ping을 제외하고 항상 응답합니다 .

정기적인 트래픽을 전송하지 않고 인터페이스를 통해 실제 인터넷 연결을 테스트할 수 있는 방법이 있습니까?

내가 작성한 스크립트는 다음과 같습니다.

check_interfaces: (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약간의 불안정성을 경험했기 때문에 새로 고침을 사용하고 있습니다.)

/etc/shorewall/사용 가능:

# 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

관련 정보