diff --git a/felix/routetable/route_table.go b/felix/routetable/route_table.go index 7641e88d4f7..17eef330dfc 100644 --- a/felix/routetable/route_table.go +++ b/felix/routetable/route_table.go @@ -1035,6 +1035,10 @@ func (r *RouteTable) syncL2RoutesForLink(ifaceName string) error { var updatesFailed bool for _, existing := range existingNeigh { + if existing.HardwareAddr == nil { + log.WithField("neighbor", existing).Debug("Ignoring existing ARP entry with no hardware addr") + continue + } if _, ok := expected[existing.HardwareAddr.String()]; !ok { logCxt.WithField("neighbor", existing).Debug("Neighbor should no longer be programmed")