diff --git a/confluent_server/confluent/discovery/protocols/pxe.py b/confluent_server/confluent/discovery/protocols/pxe.py index a9bca47a..ab454a87 100644 --- a/confluent_server/confluent/discovery/protocols/pxe.py +++ b/confluent_server/confluent/discovery/protocols/pxe.py @@ -469,6 +469,9 @@ def check_reply(node, info, packet, sock, cfg, reqview): gateway = None netmask = None niccfg = netutil.get_nic_config(cfg, node, ifidx=info['netinfo']['ifidx']) + if niccfg.get('ipv4_broken', False): + # Received a request over a nic with no ipv4 configured, ignore it + return clipn = None if niccfg['ipv4_address']: clipn = socket.inet_aton(niccfg['ipv4_address']) diff --git a/confluent_server/confluent/netutil.py b/confluent_server/confluent/netutil.py index 100da8b0..4ea3beb2 100644 --- a/confluent_server/confluent/netutil.py +++ b/confluent_server/confluent/netutil.py @@ -177,6 +177,8 @@ def get_nic_config(configmanager, node, ip=None, mac=None, ifidx=None, if ifidx is not None: dhcprequested = False nets = list(idxtonets(ifidx)) + if not nets: + cfgdata['ipv4_broken'] = True if serverip is not None: needsvrip = True dhcprequested = False