Hi Amuza!
Some comments in line:
On 12/5/20 9:14 PM, amuza wrote:
I tested it. It works ok with BMX6. But not
optimally.
I have Router A, B and C with LiMe based on OpenWRT 19.07 with BMX6, no
Babel. They are connected like shown below:
ISP-A ISP-C
| |
RouterA <--> RouterB <--> RouterC
RouterA is connected to ISP-A.
RouterC is connected to ISP-C.
Router-B can reach the Internet via both ISP-A and ISP-C without a
problem, switching gateways automatically when needed.
However, if ISP-A fails, RouterA won't reach the Internet through ISP-C
automatically: it will need a manual reboot :(
And so, the same applies at the other end: if ISP-C fails, RouterC won't
reach the Internet though ISP-A unless you give it a manual reboot.
This is exactly what bmx6-auto-gw-mode does: when the internet
connection fails the gateway (Router-A or Router-C) stops **announcing
itself as a gateway to the other nodes** (Router-B).
But the gateway node itself (Router-A or Router-C) continues using their
own WAN.
I suppose that this was done so that the gateway node can continue
checking if the WAN starts working again.
So what you're seeing is expected, with bmx6-auto-gw-mode.
With Babeld, as an equivalent feature is missing, the Router-B should
not switch connection when you unplug the telephone/coaxial/fiber cable
from ISP-A or ISP-C (which is the best way to remove the connection, in
my opinion), can you confirm this?
Let's take the example that Router-A loses connection to the internet.
Router-A will stop telling to the rest of the network that internet can
be reached there. But Router-A will still use that WAN for trying
pinging the internet and once the connection is working the ping will
start working again and it will announce the internet availability again.
If we want to have also Router-A switching to use Router-C internet
access while still checking if its own internet access works, we can use
two default routes and play with the metrics (the priority of the two
ways to reach the internet).
The way through Router-C (which works) can have lower priority (i.e.
higher priority) and the way through ISP-A (broken) can be used by ping
with the -I option (forces ping to use a specific interface, this option
is present also in the ping version included in OpenWrt).
Amuza, if we want to improve the watchping package and the
bmx6-auto-gw-mode package it would be useful to open an issue on Github,
can you do it?
For implementing something similar using the check-internet package
(which is much more reliable than ping, as it does not get fooled by
networks blocking ping or by captive portals answering to all the pings)
we should include the full wget or curl packages, check out this comment
for more:
https://github.com/libremesh/lime-packages/issues/93#issuecomment-739014966
Ciao!
Ilario
--
Ilario
iochesonome(a)gmail.com
ilario(a)sindominio.net