Dear Tom,
I have been using Shorewall on all company routers, thanks for the great work!
Recently installed GPRS routers as a backup to cable connections and after an 
epic fight (like a pig with a pumpkin!) resorted to asking for help here.

The installation where I make initial testing is:  Fedora 26 
4.11.9-300.fc26.x86_64  &   Shorewall 5.1.10.2-1,  GPRS router HUAWEI B310s for 
ISP2, cable ISP1 with DHCP.

Below is my ISP 1&2 structure. My plan is:
(a) to route all traffic through the main ISP1 when it is available. No load 
ballancing.
(b) if ISP1 goes down, all traffic is routed through the backup ISP2. 
(c) when ISP1 goes up, all traffic is routed again through ISP1 though ISP2 is 
still up.

What I get successfully  is a) and b), but c) does not happen. Is it possible 
to achieve this functionality, where do I make mistakes?



I have installed foolsm as described in Multi-ISP shorewall tutorial. Other 
settings:
interfaces contains:
net     enp3s0            detect        routeback,optional,dhcp,wait=20
net     enp1s0            detect        routeback,optional,dhcp,wait=20

masq contains:
enp3s0            0.0.0.0/0    WAN1
enp1s0            0.0.0.0/0    192.168.42.254

providers contains:
N3    1    1    -        enp3s0        WAN1    track,primary    -
A1    2    2    -        enp1s0        192.168.42.1    track        -

shorewall.conf contains:
USE_DEFAULT_RT=Yes
TRACK PROVIDERS=Yes
BALLANCE_PROVIDERS=No

In ifcfg files for enp1s0&enp3s0  DEFROUTE=no

lib.private contains the following ISP1&2 description:
name=N3
eventscript=/usr/libexec/foolsm/shorewall_script
checkip=GW1
sourceip=WAN1
device=enp3s0
ttl=20

name=A1
eventscript=/usr/libexec/foolsm/shorewall_script
checkip=192.168.42.1        #    checkip=WAN2 – ???
sourceip=192.168.42.254
device=enp1s0
ttl=20

The output of  systemctl status shorewall  and  foolsm log  look normal. 

Checking ISP1&2 routing tables shows:
ip route ls table N3 (when connected):
default via GW1 dev enp3s0 src WAN1
GW1 dev enp3s0 scope link src WAN1
 ip route ls table A1 (when connected):
default via 192.168.42.1 dev enp1s0 src 192.168.42.254 
192.168.42.1 dev enp1s0 scope link src 192.168.42.254
 ip route ls table 253 – empty

Now I fiddle with the cables to the LAN cards of the FW disconnecting and 
connecting them in turn and check routing table 254:
1. N3 up, A1 up   restart FW CPU     OK, traffic goes through ISP1 main as 
expected
ip route ls table 254:
GW1.0/22 dev enp3s0 proto kernel scope link src WAN1 metric 100 
GW1 dev enp3s0 scope link src WAN1 

2. N3 up --> down,   A1 up         OK, traffic goes through ISP2 as expected
ip route ls table 254:
default via 192.168.42.1 dev enp1s0 proto static metric 100 

3. N3 down --> up,    A1 up    BAD, traffic goes through ISP2 but ISP1 is 
expected
ip route ls table 254:
default via 192.168.42.1 dev enp1s0 proto static metric 100 
default via GW1 dev enp3s0 proto static metric 101 
GW1.0/22 dev enp3s0 proto kernel scope link src WAN1 metric 100 
GW1 dev enp3s0 scope link src WAN1 

4. nothing changed (N3 up, A1 up),  restart shorewall   OK, traffic goes 
through ISP1 
ip route ls table 254:
GW1.0/22 dev enp3s0 proto kernel scope link src WAN1 metric 100 
GW1 dev enp3s0 scope link src WAN1 

5.    . . . .  after 1-2 minutes    BAD, traffic goes through ISP2 but ISP1 is 
expected
ip route ls table 254:
default via 192.168.42.1 dev enp1s0 proto static metric 100 
GW1.0/22 dev enp3s0 proto kernel scope link src WAN1 metric 100 
GW1 dev enp3s0 scope link src WAN1 

6.    . . . disconnect A1:
ip route ls table 254       OK, traffic goes through ISP1 main as expected
GW1.0/22 dev enp3s0 proto kernel scope link src WAN1 metric 100 
GW1 dev enp3s0 scope link src WAN1

It looks to me that things mess up in 3. as the priority of the default routes 
are wrong, ideally there should be no default route through ISP2.
I am not sure what IP should be in lib.private for ISP2:  checkip=192.168.42.1  
(LAN IP of the GPRS router)    or    checkip=WAN2 (WAN IP of the GPRS router. 
It has no GW IP).

I will supply any additional info if needed. Thanks for Your advice!

Best regards!

Andrei
_______________________________________________
Shorewall-users mailing list
Shorewall-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/shorewall-users

Reply via email to