So it might be complicated.
Basically, on the blue link, you do whatever you do now.
On the green link you don’t technically need VLANs or IPs, but you’ll get some anyway thanks to IPv6, and that’s ok.
You add an additional IP for the two proxmox hosts, ideally onto a bridge. These will become the IPs you should use for almost everything related to hosts, as opposed to any IPs on the hardware interfaces.
Install FRRouting / frr.
And configure EBGP, and say that each host is a separate AS.
And configure peers over green link using interface name, and over blue link using IPs, unless you go and setup a separate VLAN, then you can just use the interface too.
BGP will converge, and you’ll get two paths of same distance, they’ll be installed by FRR into Linux as ECMP and you’ll get load balancing of connections by hash, and when links fail BGP will detect it and update the routes.
The alternative instead of BGP is to use IS-IS or apparently OpenFabric, I haven’t used IS-IS in a few years, and I’ve yet to try OpenFabric … but it looks nice according to the proxmox wiki page, maybe even simpler than basic BGP, but I can’t see any mentions of ECMP.
This is the page Full Mesh Network for Ceph Server - Proxmox VE just ignore node 3, and add a second interface.
In the end see what iperf3 -P10 ends up transferring across hosts, e.g. if you get 20Gbps, and try unplugging cables.
Now, I see internet is connected to one of the hosts, you could stuff the internet into a VLAN on your switch and make a migrate-able pfSense VM, so that you don’t lose Internet when you want to upgrade or reboot one of your proxmox hosts.
Or, you could run one pfSense per proxmox hosts and VRRP/CARP between them, or OpenWRT with VRRP/keepalived in between.
That way you don’t lose Internet when either one of your proxmox hosts goes away.
edit:
have a look, bgp starts at this timestamp, but maybe look at the whole video multiple times if you want to go down bgp route, … or at least, you’ll be able to see how ECMP shows up in frr and linux.