[Bloat] speedtest-cli on multihomed gateway

Kenneth Porter shiva at sewingwitch.com
Fri Feb 3 18:20:13 EST 2023


On 2/3/2023 4:54 AM, Michael Richardson via Bloat wrote:
> A new network namespace would certainly work, but it may be unmanageable
> overkill.
>
> What you probably need are policy-based routes, which you can establish
> statically and then --source ought to work.

That's exactly what turned out to be the issue. I'd already planned to 
implement it to make some clients use the alternate ISP, but didn't 
realize it applies to packets with source address set to that interface. 
I'd read through a few tutorials and tested that and it worked!

> I put these into "up" statements into my /etc/network/interfaes, but you say
> you are running RHEL... I'm sure that there is a netplan way.
> This also means that if you have a monitoring system elsewhere (smokeping or
> something), and you ping each interface, then it will reply on that
> interface.

That turned out to be harder to figure out. RHEL 8 is a transition from 
traditional network scripts in /etc/sysconfig/network-scripts to 
NetworkManager connections. So the RH NM has to be able to understand 
the old files. I'm used to editing files with a text editor to make 
changes, but the RHEL docs don't expose the NM files and require one to 
use a manager program (nmcli) to make changes. I have no idea where my 
rules went when I changed them with nmcli. I do see the new 
per-interface route tables in the old scripts location. RHEL 9 moves 
over completely to NM, so I'll need to figure out how to migrate the 
config when I upgrade.

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/configuring-policy-based-routing-to-define-alternative-routes_configuring-and-managing-networking

BTW, I noticed that the numeric routing table IDs are 32-bit, but the 
reserved IDs are from 0-255. Some online tutorials specify that custom 
tables need to be in the 8-bit range. I suspect that the earliest 
implementation used a single byte for the table ID and it widened in 
later kernels. The example number used in the above documentation is 
5000. So I'm using 2000 and 4000 for eno2 and eno4. (eno3 is the default 
link and eno1 is the LAN with an explicit global rule.)





More information about the Bloat mailing list