Trying to debug and get what I want out of OSPF. - robbat2, 2014/09/13 Goals: ------ Ensure traffic for a given src/dst pair flows via the highest bandwidth link; despite local addressing. The addresses are going to be on the hosts, this is not routing traffic for other systems behind the hosts. Would also like it to be dynamic, so that some of the service IPs can move around and always get the optimal bandwidth path. Network diagram: ---------------- +-----------+ | NET1 | +-----------+ | | | | H1~H3 H2~H4 | | | | +-----------+ | NET2 | +-----------+ 4 hosts: H1..H4 4 areas: NET1(0.0.0.0) - 1Mbit, 10.77.0.0/16 (eth0) NET2(0.1.0.0) - 10Mbit 10.1.0.0/16 (eth1) H1/H3(0.2.13.0) xconnect - 40Mbit, 10.2.13.0/24 (eth2) H2/H4(0.2.24.0) xconnect - 40Mbit, 10.2.24.0/24 (eth2) (speed scaled down for test purpose, the real network is 1/10/40Gbit). Configuration (common): ----------------------- interface eth0 bandwidth 1000 ip ospf cost 10000 exit interface eth1 bandwidth 10000 ip ospf cost 1000 exit interface eth2 bandwidth 40000 ip ospf cost 250 exit router ospf auto-cost reference-bandwidth 1 no network 10.1.0.0/16 area 0.1.0.0 no network 10.2.13.0/24 area 0.2.13.0 no network 10.2.24.0/24 area 0.2.24.0 no network 10.77.0.0/16 area 0.77.0.0 no network 172.30.1.0/24 area 172.30.1.0 no network 172.30.2.0/24 area 172.30.2.0 no network 172.30.3.0/24 area 172.30.3.0 no network 172.30.4.0/24 area 172.30.4.0 network 10.1.0.0/16 area 0 network 10.2.13.0/24 area 0 network 10.2.24.0/24 area 0 network 10.77.0.0/16 area 0 network 172.30.1.0/24 area 0 network 172.30.2.0/24 area 0 network 172.30.3.0/24 area 0 network 172.30.4.0/24 area 0 exit Configuration (unique per host): -------------------------------- router ospf router-id 10.77.0.11 # H1 router-id 10.77.0.12 # H2 router-id 10.77.0.13 # H3 router-id 10.77.0.13 # H4 exit interface lo address 172.30.1.11/32 # H1 address 172.30.2.12/32 # H2 address 172.30.3.13/32 # H3 address 172.30.4.14/32 # H4 exit interface eth0 address 10.77.0.11/16 # H1 address 10.77.0.12/16 # H2 address 10.77.0.13/16 # H3 address 10.77.0.14/16 # H4 exit interface eth1 address 10.1.0.11/16 # H1 address 10.1.0.12/16 # H2 address 10.1.0.13/16 # H3 address 10.1.0.14/16 # H4 exit interface eth2 address 10.2.13.11/24 # H1 address 10.2.24.12/24 # H2 address 10.2.13.13/24 # H3 address 10.2.24.14/24 # H4 exit Desired results: ---------------- 10.77.0.11 -> 10.77.0.13 should route via xconnect 10.77.0.11 -> 10.77.0.14 should route via NET2:H4 10.77.0.11 -> 10.2.24.12 should route via NET2:H2 10.77.0.11 -> 10.2.24.14 should route via NET2:H4 172.30.1.11 -> 172.30.2.12 should route via NET2:H2 172.30.1.11 -> 172.30.3.13 should route via xconnect Results: -------- (on H1) # ip route get 10.77.0.13 from 10.77.0.11 10.77.0.13 from 10.77.0.11 dev eth0 # ip route get 10.77.0.14 from 10.77.0.11 10.77.0.14 from 10.77.0.11 dev eth0 # ip route get 10.2.24.14 from 10.77.0.11 10.2.24.14 from 10.77.0.11 via 10.77.0.12 dev eth0 # ip route get 172.30.2.12 from 172.30.1.11 172.30.2.12 from 172.30.1.11 via 10.77.0.12 dev eth0 # ip route get 172.30.2.12 from 172.30.1.11 172.30.2.12 from 172.30.1.11 via 10.77.0.12 dev eth0 Notes on testcase environment ----------------------------- The testcase environment is running on libvirt, with the links constrained to the described 1/10/40Mbit speeds.