Bridge links and static routes

4 views
Skip to first unread message

Brenton Walker

unread,
Apr 20, 2023, 5:26:38 AM4/20/23
to emulab-admins
Dear Emulab Admins,
    I have been finding that the static routes in a topology do not get set up completely when the topology uses a delay node.  For an example I have attached two almost identical dumbbell topologies.  One has a delay node on the bottleneck link, and the other has just an unshaped link.

s1                        r1
   \                     /
    router1 ----- router2
   /                     \
s2                        r2

In the case with the delay node in the middle, the router nodes do not have routes to the other half of the network.  Also the bridge node actually gets configured with 10.10.x.y IP addresses, and the adjacent nodes with IPs on the same subnets.

With no delay node, the routing table on router1 looks like this (omitting the control net stuff):
router1:~ % ip route show
10.0.0.0/8 via 10.10.5.2 dev enp7s0f1
10.10.1.0/24 dev enp6s0f1 proto kernel scope link src 10.10.1.2
10.10.2.0/24 dev enp6s0f0 proto kernel scope link src 10.10.2.2
10.10.5.0/24 dev enp7s0f1 proto kernel scope link src 10.10.5.1

With the delay node, the 10.0.0.0/8 route does not get set.
router1:~ % ip route show
10.10.1.0/24 dev enp101s0f1 proto kernel scope link src 10.10.1.2
10.10.2.0/24 dev enp101s0f2 proto kernel scope link src 10.10.2.2
10.10.5.0/24 dev enp101s0f3 proto kernel scope link src 10.10.5.2

I've also run the same bridged experiment, but specified the IP addresses on the link between the two router nodes, as in the third script.  In this case the delay node still gets configured with IP addresses like before, but the two router nodes can reach each other and the delay node functions normally as a layer-2 bridge.  In this case, if I manually add the missing 10.0.0.0/8 route to both router nodes, everything works.

I have tried this with both FBSD113 and FBSD123 on the delay node, but the result is the same.

I have also tried it in a simpler 3-node, 2-hop topology without the link.best_effort = True lines, but with the same result.

Is this expected behavior?  Or am I missing something from the script?

Thanks for any pointers,
Brenton

dumbbell-bridge-fixedip.py
dumbbell-bridge.py
dumbbell-nobridge.py
Reply all
Reply to author
Forward
0 new messages