diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py
index 93efc5ea61eb72bf96a6953b52e7bddcb238055c..64a947034ad11afb30d92a0e9903f71105801d43 100644
--- a/inventory_provider/tasks/worker.py
+++ b/inventory_provider/tasks/worker.py
@@ -741,6 +741,7 @@ def _build_juniper_peering_db(update_callback=lambda s: None):
     update_callback('loading all juniper network peerings')
     peerings_per_address = {}
     ix_peerings = []
+    peerings_per_asn = {}
 
     # scan with bigger batches, to mitigate network latency effects
     key_prefix = 'juniper-peerings:hosts:'
@@ -754,6 +755,9 @@ def _build_juniper_peering_db(update_callback=lambda s: None):
             peerings_per_address.setdefault(p['address'], []).append(p)
             if _is_ix(p):
                 ix_peerings.append(p)
+            asn = p.get('remote-asn', None)
+            if asn:
+                peerings_per_asn.setdefault(asn, []).append(p)
 
 
     # sort ix peerings by group
@@ -770,12 +774,17 @@ def _build_juniper_peering_db(update_callback=lambda s: None):
     for k, v in peerings_per_address.items():
         rp.set(f'juniper-peerings:remote:{k}', json.dumps(v))
 
-    # create ix group lists, keyed by group name
+    # create pivoted ix group name lists
     update_callback(f'saving {len(ix_groups)} remote ix peering groups')
     for k, v in ix_groups.items():
         group_addresses = list(v)
         rp.set(f'juniper-peerings:ix-groups:{k}', json.dumps(group_addresses))
 
+    # create pivoted asn peering lists
+    update_callback(f'saving {len(peerings_per_asn)} asn peering lists')
+    for k, v in peerings_per_asn.items():
+        rp.set(f'juniper-peerings:peer-asn:{k}', json.dumps(v))
+
     rp.execute()