Only ip neighbors for which a route exists are being routed (with an appropriate flow).
Actual Behavior
Any reachable ip neighbor is assumed to be routable and flow tables are setup accordingly (and thus routed in hardware), even if there does not exist a route.
Steps to Reproduce the Problem
Consider the following setup
| Server | port1 <-------------> port1 | Switch |
lo 10.0.1.2/24 10.0.1.1/24
10.0.2.1/24
The implication of the groupId being set for that enry is that any traffic with the destination address 10.0.2.1 coming in on a different interface will get routed according to entry, instead of being dropped, and 10.0.2.1 becoming/staying reachable for other connected devices.
To fix this, we would basically need to do the reverse we do for routes and nexthops; only add l3 neighbors as routable / set to forward to an interface if we have a route for them, and wait for a route to be added if not. And the inverse for routes being removed.
Expected Behavior
Only ip neighbors for which a route exists are being routed (with an appropriate flow).
Actual Behavior
Any reachable ip neighbor is assumed to be routable and flow tables are setup accordingly (and thus routed in hardware), even if there does not exist a route.
Steps to Reproduce the Problem
Consider the following setup
So far everything's fine.
But if we remove the route, the neighbor stays routed.
Removing the neighbor removes the forwarding entry:
But adding it manually will create a routed entry again, despite it still not being supposed to be routable
The implication of the groupId being set for that enry is that any traffic with the destination address 10.0.2.1 coming in on a different interface will get routed according to entry, instead of being dropped, and 10.0.2.1 becoming/staying reachable for other connected devices.
To fix this, we would basically need to do the reverse we do for routes and nexthops; only add l3 neighbors as routable / set to forward to an interface if we have a route for them, and wait for a route to be added if not. And the inverse for routes being removed.
Specifications