2014-03-19 10:35:43 +01:00
2014-03-19 10:04:56 +01:00
2014-03-19 10:04:56 +01:00
2014-03-19 10:04:56 +01:00
2014-03-19 10:35:43 +01:00

check-providers

On a router with multiple providers and shorewall, monitor the providers and enable/disable them when one is failing.restart openvpn if running on the failing provider.

It needs 2 test public IP not used for other services to be able to test provider reachability when provider is disabled (so without routing table) in shorewall.

check_providers.py --help

Usage: check_providers.py -c configfile action

Check reachability of multiple providers managed by Shorewall
enable or disable the providers based on maximum packets loss or RTT

action is either :
  monitor : monitor in background all providers and enable/disable them
  check [all,<provider>] : check all or one provider and display reachability
  check-json [all,<provider>] : check providers and output state as json data


Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -i CHECK_INTERVAL, --check-interval=CHECK_INTERVAL
                        Config file full path (default: 60)
  -p PING_COUNT, --ping-count=PING_COUNT
                        Override ping count (default: 0)
  -c CONFIG, --config=CONFIG
                        Config file full path (default: /etc/check-
                        providers.ini)
  -d, --dry-run         Dry run (default: False)
  -v, --verbose         More information (default: False)
  -o LOGFILE, --log=LOGFILE
                        Path to log file (default: none)
  -l LOGLEVEL, --loglevel=LOGLEVEL
                        Loglevel (default: info)

Example config file

vi /etc/check-providers.ini

[ADSL]
device=eth0
target_ip=185.16.67.23
gateway=192.168.1.1
led=2
openvpn_master=1

[GSM]
device=ppp3g
target_ip=185.16.67.24
max_loss=40
max_rtt=2000
ping_count=20
timeout=3
led=3
fallback=1

Ini file options

One section for each provider, named the same as in the shorewall http://shorewall.net/manpages/shorewall-providers.html file

Parameters Value Descriptions
target_ip 1.2.3.4 IP to ping to test availability
device eth?, ppp? local device on which provider is connected
gateway 1.2.3.4 next hop to test ARP ping
max_rtt 2000 max round trip time in ms to accept provider
timeout 3 timout is sec for the ping
ping_interval 0.4 interval between ping
max_loss 30 max % of lost packets to accept provider
ping_count 4 count of ping
led 1,2,3 on Alix router, power on/off led depending of availability
openvpn_master 0,1 is provider used by openvpn (openvpn is restarted if vpn is running on provider)
fallback 0,1 is provider a fallback provider, in this case, it is never disabled.
S
Description
On a router with multiple providers and shorewall, monitor the providers and enable/disable them when one is failing.restart openvpn if running on the failing provider.
Readme 127 KiB
Languages
Python 97.8%
Shell 2.2%