{"tool":"network-report","status":"warn","input":{"query":"AS31477"},"findings":[{"level":"warn","text":"AS31477 (DUOCAST-AS Duocast B.V.) announces 43 IPv4 and 12 IPv6 prefixes.","title":"AS31477 (DUOCAST-AS Duocast B.V.) announces 43 IPv4 and 12 IPv6 prefixes.","params":{"query":"AS31477","who":"AS31477 (DUOCAST-AS Duocast B.V.)","v4":43,"v6":12}},{"level":"warn","text":"10 of 55 announced prefixes have no ROA (RPKI not found): 37.9.160.0/21, 91.196.106.0/24, 91.209.192.0/24, 91.213.95.0/24, 91.220.82.0/24 (+5).","title":"10 of 55 announced prefixes have no ROA (RPKI not found): 37.9.160.0/21, 91.196.106.0/24, 91.209.192.0/24, 91.213.95.0/24, 91.220.82.0/24 (+5).","params":{"count":10,"total":55,"list":"37.9.160.0/21, 91.196.106.0/24, 91.209.192.0/24, 91.213.95.0/24, 91.220.82.0/24 (+5)","asn":31477},"detail":"Without a ROA, networks cannot tell your routes from a hijack.","fix":"Create a ROA for each at your RIR portal, with origin AS31477 and a max length equal to the prefix length:","record":"37.9.160.0/21 AS31477 max-length /21\n91.196.106.0/24 AS31477 max-length /24\n91.209.192.0/24 AS31477 max-length /24\n91.213.95.0/24 AS31477 max-length /24\n91.220.82.0/24 AS31477 max-length /24\n93.184.96.0/20 AS31477 max-length /20\n185.134.65.0/24 AS31477 max-length /24\n193.9.23.0/24 AS31477 max-length /24\n193.177.163.0/24 AS31477 max-length /24\n193.200.178.0/24 AS31477 max-length /24"},{"level":"warn","text":"5 of 55 announced prefixes have no IRR route object: 2a07:3505:81::/48, 194.13.8.0/24, 87.238.171.0/24, 193.138.248.0/24, 193.138.250.0/24.","title":"5 of 55 announced prefixes have no IRR route object: 2a07:3505:81::/48, 194.13.8.0/24, 87.238.171.0/24, 193.138.248.0/24, 193.138.250.0/24.","params":{"count":5,"total":55,"list":"2a07:3505:81::/48, 194.13.8.0/24, 87.238.171.0/24, 193.138.248.0/24, 193.138.250.0/24","asn":31477},"detail":"Many networks build their prefix filters from IRR data; without route objects some of them drop the routes.","fix":"Create route (IPv4) and route6 (IPv6) objects with origin AS31477 in your RIR’s IRR database (or RADB).","record":"route6: 2a07:3505:81::/48\norigin: AS31477\n\nroute: 194.13.8.0/24\norigin: AS31477\n\nroute: 87.238.171.0/24\norigin: AS31477"}],"data":{"query":"AS31477","kind":"asn","special":null,"allocation":{"rir":"ripencc","registry":"RIPE NCC","cc":"NL","country":"Netherlands","date":"2004-05-26","status":"allocated","range":"AS31477","opaque_id":"b465352d-0299-4270-8cce-4fc2247c2402","special":null},"verdict":{"level":"warn","title":":who announces :v4 IPv4 and :v6 IPv6 prefixes.","params":{"query":"AS31477","who":"AS31477 (DUOCAST-AS Duocast B.V.)","v4":43,"v6":12}},"seconds":0,"sections":{"routing":{"status":"warn","findings":[{"level":"pass","title":"AS:asn announces :v4 IPv4 and :v6 IPv6 prefixes.","params":{"asn":31477,"v4":43,"v6":12}},{"tool":["rpki",{"prefix":"37.9.160.0/21","asn":"31477"}],"guide":"create-rpki-roas","level":"warn","title":":count of :total announced prefixes have no ROA (RPKI not found): :list.","params":{"count":10,"total":55,"list":"37.9.160.0/21, 91.196.106.0/24, 91.209.192.0/24, 91.213.95.0/24, 91.220.82.0/24 (+5)","asn":31477},"detail":"Without a ROA, networks cannot tell your routes from a hijack.","fix":"Create a ROA for each at your RIR portal, with origin AS:asn and a max length equal to the prefix length:","record":"37.9.160.0/21 AS31477 max-length /21\n91.196.106.0/24 AS31477 max-length /24\n91.209.192.0/24 AS31477 max-length /24\n91.213.95.0/24 AS31477 max-length /24\n91.220.82.0/24 AS31477 max-length /24\n93.184.96.0/20 AS31477 max-length /20\n185.134.65.0/24 AS31477 max-length /24\n193.9.23.0/24 AS31477 max-length /24\n193.177.163.0/24 AS31477 max-length /24\n193.200.178.0/24 AS31477 max-length /24"},{"level":"info","title":":count of :total announced prefixes are RPKI valid.","params":{"count":38,"total":55}},{"level":"info","title":"The RPKI state of :count prefixes was not looked up (no ROA of AS:asn covers them; only the first :n are checked).","params":{"count":7,"asn":31477,"n":10}},{"level":"warn","title":":count of :total announced prefixes have no IRR route object: :list.","params":{"count":5,"total":55,"list":"2a07:3505:81::/48, 194.13.8.0/24, 87.238.171.0/24, 193.138.248.0/24, 193.138.250.0/24","asn":31477},"detail":"Many networks build their prefix filters from IRR data; without route objects some of them drop the routes.","fix":"Create route (IPv4) and route6 (IPv6) objects with origin AS:asn in your RIR’s IRR database (or RADB).","record":"route6: 2a07:3505:81::/48\norigin: AS31477\n\nroute: 194.13.8.0/24\norigin: AS31477\n\nroute: 87.238.171.0/24\norigin: AS31477"},{"level":"info","title":":left upstreams and peers, :right downstream networks seen.","params":{"left":68,"right":13}}],"data":{"asn":31477,"holder":"DUOCAST-AS Duocast B.V.","announced":true,"v4":43,"v6":12,"prefixes":["37.9.160.0/21","45.82.188.0/22","82.150.139.0/24","83.137.144.0/21","83.137.146.0/24","83.137.151.0/24","87.238.168.0/21","87.238.171.0/24","89.188.0.0/19","89.188.0.0/20","89.188.0.0/21","89.188.8.0/21","89.200.200.0/21","89.200.200.0/24","91.196.104.0/24","91.196.105.0/24","91.196.106.0/24","91.196.107.0/24","91.198.178.0/24","91.206.136.0/23","91.209.192.0/24","91.213.95.0/24","91.220.82.0/24","93.184.96.0/20","185.80.245.0/24","185.80.246.0/24","185.134.65.0/24","185.180.96.0/22","185.180.96.0/24","193.9.23.0/24","193.138.248.0/22","193.138.248.0/24","193.138.250.0/24","193.164.144.0/24","193.177.163.0/24","193.200.178.0/24","193.202.109.0/24","194.13.8.0/22","194.13.8.0/24","194.13.12.0/23","194.13.14.0/24","195.137.165.0/24","195.137.169.0/24","2a0b:6d80::/29","2a0e:7280::/29","2a00:70c0::/48","2a01:1b0::/32","2a01:1b2::/32","2a07:3501:1020::/48","2a07:3505:80::/44","2a07:3505:81::/48","2001:67c:6b8::/48","2001:678:2b4::/48","2001:678:750::/48","2001:678:d0c::/48"],"rpki":{"valid":38,"not-found":10,"unchecked":7,"invalid":0},"rpki_problems":[{"prefix":"37.9.160.0/21","state":"not-found"},{"prefix":"91.196.106.0/24","state":"not-found"},{"prefix":"91.209.192.0/24","state":"not-found"},{"prefix":"91.213.95.0/24","state":"not-found"},{"prefix":"91.220.82.0/24","state":"not-found"},{"prefix":"93.184.96.0/20","state":"not-found"},{"prefix":"185.134.65.0/24","state":"not-found"},{"prefix":"193.9.23.0/24","state":"not-found"},{"prefix":"193.177.163.0/24","state":"not-found"},{"prefix":"193.200.178.0/24","state":"not-found"}],"irr_missing":["2a07:3505:81::/48","194.13.8.0/24","87.238.171.0/24","193.138.248.0/24","193.138.250.0/24"],"irr_missing_count":5,"bogons":[],"upstreams":[{"asn":1299,"power":842,"name":"Arelion (Twelve99)"},{"asn":2914,"power":484,"name":"NTT Global IP Network"},{"asn":50673,"power":406,"name":"Serverius"},{"asn":6830,"power":310,"name":"Liberty Global"},{"asn":6939,"power":282,"name":"Hurricane Electric"},{"asn":13030,"power":57,"name":"Init7"},{"asn":33891,"power":47,"name":"Core-Backbone"},{"asn":4637,"power":38,"name":"Telstra (International)"},{"asn":37468,"power":33,"name":"Angola Cables"},{"asn":25091,"power":29,"name":"IP-Max SA"},{"asn":20485,"power":27,"name":"TransTelecom"},{"asn":34019,"power":24,"name":"Hivane"}],"left":68,"right":13},"title":"Routing and RPKI","tool":"bgp","tool_input":{"query":"AS31477"},"summary":{"level":"warn","title":":count of :total announced prefixes have no ROA (RPKI not found): :list.","params":{"count":10,"total":55,"list":"37.9.160.0/21, 91.196.106.0/24, 91.209.192.0/24, 91.213.95.0/24, 91.220.82.0/24 (+5)","asn":31477}}},"registration":{"status":"pass","findings":[{"level":"pass","title":"Found at :server.","params":{"server":"rdap.db.ripe.net"}}],"data":{"query":"AS31477","looked_up":"AS31477","kind":"autnum","source":"https://rdap.db.ripe.net/autnum/31477","terms":"https://www.ripe.net/manage-ips-and-asns/db/support/documentation/terms/","summary":{"Name":"DUOCAST-AS","Handle":"AS31477","Range":"AS31477","Status":"active","Registered":"2004-05-26T11:33:27Z","Last changed":"2026-09-25T10:23:19Z","Abuse contact":"abuse@duocast.nl"},"entities":[{"roles":["registrant"],"kind":"individual","name":"MNT-DUOCAST","email":null},{"roles":["registrant"],"kind":"org","name":"Duocast B.V.","email":null},{"roles":["registrant"],"kind":"individual","name":"RIPE-NCC-END-MNT","email":null},{"roles":["abuse"],"kind":"group","name":"Duocast role","email":"abuse@duocast.nl"}],"allocation":{"rir":"ripencc","registry":"RIPE NCC","cc":"NL","country":"Netherlands","date":"2004-05-26","status":"allocated","range":"AS31477","opaque_id":"b465352d-0299-4270-8cce-4fc2247c2402","special":null}},"title":"Registration","tool":"whois","tool_input":{"query":"AS31477"},"summary":{"level":"pass","title":"Found at :server.","params":{"server":"rdap.db.ripe.net"}}},"peering":{"status":"pass","findings":[{"level":"pass","title":"AS:asn is in PeeringDB as :name.","params":{"asn":31477,"name":"Duocast"}},{"level":"info","title":"Peering policy: :policy.","params":{"policy":"Open"},"detail":"Peers with anyone at a shared location, usually without a contract."},{"level":"info","title":"Present at :ix internet exchanges with :ports ports (:capacity in total).","params":{"ix":4,"ports":4,"capacity":"140G"}}],"data":{"asn":31477,"net":{"id":1369,"name":"Duocast","aka":"","website":"https://www.duocast.nl","looking_glass":"","route_server":"","irr_as_set":"RIPE::AS31477:AS-DUOCAST","info_type":"Content","info_prefixes4":100,"info_prefixes6":25,"info_traffic":"10-20Gbps","info_ratio":"Balanced","info_scope":"Europe","info_unicast":true,"info_ipv6":true,"info_never_via_route_servers":false,"ix_count":4,"fac_count":8,"policy_url":"","policy_general":"Open","policy_locations":"Not Required","policy_ratio":false,"policy_contracts":"Not Required","updated":"2026-09-18T19:52:36Z"},"ix_count":4,"capacity":140000,"ix":[],"ix_total":4,"fac":[],"fac_total":8,"poc":[{"role":"Abuse","email":"abuse@duocast.net"},{"role":"NOC","email":"noc@duocast.net"}],"missing":[]},"title":"PeeringDB","tool":"peeringdb","tool_input":{"asn":"31477"},"summary":{"level":"pass","title":"AS:asn is in PeeringDB as :name.","params":{"asn":31477,"name":"Duocast"}}}},"fixes":[{"tool":["rpki",{"prefix":"37.9.160.0/21","asn":"31477"}],"guide":"create-rpki-roas","level":"warn","title":":count of :total announced prefixes have no ROA (RPKI not found): :list.","params":{"count":10,"total":55,"list":"37.9.160.0/21, 91.196.106.0/24, 91.209.192.0/24, 91.213.95.0/24, 91.220.82.0/24 (+5)","asn":31477},"detail":"Without a ROA, networks cannot tell your routes from a hijack.","fix":"Create a ROA for each at your RIR portal, with origin AS:asn and a max length equal to the prefix length:","record":"37.9.160.0/21 AS31477 max-length /21\n91.196.106.0/24 AS31477 max-length /24\n91.209.192.0/24 AS31477 max-length /24\n91.213.95.0/24 AS31477 max-length /24\n91.220.82.0/24 AS31477 max-length /24\n93.184.96.0/20 AS31477 max-length /20\n185.134.65.0/24 AS31477 max-length /24\n193.9.23.0/24 AS31477 max-length /24\n193.177.163.0/24 AS31477 max-length /24\n193.200.178.0/24 AS31477 max-length /24","section":"routing"},{"level":"warn","title":":count of :total announced prefixes have no IRR route object: :list.","params":{"count":5,"total":55,"list":"2a07:3505:81::/48, 194.13.8.0/24, 87.238.171.0/24, 193.138.248.0/24, 193.138.250.0/24","asn":31477},"detail":"Many networks build their prefix filters from IRR data; without route objects some of them drop the routes.","fix":"Create route (IPv4) and route6 (IPv6) objects with origin AS:asn in your RIR’s IRR database (or RADB).","record":"route6: 2a07:3505:81::/48\norigin: AS31477\n\nroute: 194.13.8.0/24\norigin: AS31477\n\nroute: 87.238.171.0/24\norigin: AS31477","section":"routing"}]},"url":"https://thenetworkery.com/tools/network-report?query=AS31477"}