diff --git a/inventory_provider/routes/classifier.py b/inventory_provider/routes/classifier.py
index 01e9edb0fc0b7e2fd7481dfe3d15b28c3b1928a8..2e84b96453264dbc7c109bb13d4f5a2a71d6b28f 100644
--- a/inventory_provider/routes/classifier.py
+++ b/inventory_provider/routes/classifier.py
@@ -193,12 +193,16 @@ def find_interfaces(address):
     :return:
     """
     r = common.get_current_redis()
-    for k in r.keys('reverse_interface_addresses:*'):
-        info = r.get(k.decode('utf-8')).decode('utf-8')
-        info = json.loads(info)
-        interface = ipaddress.ip_interface(info['interface address'])
+    for k in r.keys('subnets:*'):
+        k = k.decode('utf-8')
+        m = re.match(r'^subnets:(.*)$', k)
+        assert m, 'sanity failure: redis returned an invalid key name'
+        interface = ipaddress.ip_interface(m.group(1))
         if address in interface.network:
-            yield info
+            info = r.get(k).decode('utf-8')
+            info = json.loads(info)
+            for ifc in info:
+                yield ifc
 
 
 def find_interfaces_and_services(address_str):