Redundant routers control
==========================
I'm using two Linux routers at home, along with a manageable switch and an ADSL
modem.
Both routers have their own address, and so does the switch. When one of the
routers is active, it uses an additional address which serves as the default
gateway for the rest of the boxes.
One of the routers is an old box; it's rather slow, doesn't have much memory,
and more importantly, it's dying. Obviously, it should only be used when the
other one is down. However, if the connection has been established by that
secondary router, the primary should not take over until the DSL link goes down
on its own.
The scripts in this directory are used to control which router is active.
Checks on the primary router
-----------------------------
When the primary router is the active router:
1/ Check the switch
2/ If the switch is down, deactivate.
When the primary router is inactive:
1/ Check the switch and the main router address
2/ If the switch is up and the main router does not exist, activate.
Checks on the secondary router
-------------------------------
When the secondary router is the active router:
1/ Check the switch, the primary router, and a remote server
2/ If the remote server is reachable, do nothing
3/ If the switch is down, or if the primary router is up, deactivate.
When the secondary router is inactive:
1/ Check the switch, the primary router, and the main router address
2/ If the switch is up, and both the primary router and the main router
address are down, activate.
Installation
-------------
1/ Copy router-checks.conf to /etc, modify it however you want.
2/ Copy share/ to /usr/local/share/router-checks (or to whatever you set the
LIB_DIR configuration variable to).
3/ Modify activate.sh and deactivate.sh; they determine how a router becomes
the primary router and how a router releases primary routing control,
respectively.
4/ Copy primary-router.sh or secondary-router.sh to
/usr/local/sbin/router-checks
5/ If necessary (and if it will work on whatever distribution you use), use
the provided init script to start the checks on boot.