Comments (2)
A test has been run using 320.000 queries from rr.ntt.net against a local version of IRRDv2.3 (as run by NTT) and IRRDv4. 35.000 queries produced errors in both instances as they were invalid, 20.000 NRTM queries were skipped, along with all asdot queries.
To be fixed:
-
!oMAINT-AS7091: inet-rtr
198.32.175.80` appears to be returned by the psql query but not in the whois result. -
!oMAINT-AS2527
: as-setsAS-SO-NET(6)
from NTTCOM are missing in whois response, JPIRR versions present. Both are returned by the psql query, likely related to previous issue. All are included in the whois output when filtering with-T as-set
. - A number of routes are missing from the v4 psql DB:
66.241.152.0/24/ARIN
for!gAS36221
, ,193.187.153.0/24/ARIN
for!gas395800
,23.223.195.0/24
for-i origin AS20940
. - The tests for
!i
queries should be re-run after search order is consistent, as that significantly affects results. - Queries for certain mntners produce a partial object, notably
tenue-mnt
and-i mnt-by foo
- Responses with
-K
flag are not filtered for uniqueness, e.g.-K -r -i origin AS127
leads to duplicate results due to duplicates present in different sources. -
-K
responses should not include member-of - Research performance of
!gAS7552
and!6as38547
. - Leaf/dangling set members should only be included in non-recursive
!i
queries
Notes about v2.3:
- Returns exact matches even when asked for a less specific match, and sometimes does not include the actual less specific match
- Accepts combined
,Lo
parameters for!r
which are invalid and processed incorrectly. - Some
!i
responses may have random extra newlines? !iAS-BAKKER
returns a mntner name from mbrs-by-ref, which is invalid.
Origin searches for AS40224, AS28001, AS20324, AS14522, AS9541 and others return double responses, i.e. identical primary key and source, from sources ARIN-WHOIS/RPKI.-x
queries are accepted without spaces, which is invalid186.211.120.0.24/LEVEL3
is missing for!gAS262747
because it's origin is in asdot
Other than this, I did not notice significant differences in query responses.
from irrd.
New run with fixes: 329982 queries ran, 216 with different results, 35724 produced errors on both instances, 74280 invalid queries were skipped, 19877 NRTM queries were skipped.
General conclusions:
- A few bugs have surfaced in IRRDv4, noted below.
- IRRDv2 set resolving (with
!i
queries) is very buggy, particularly in terms of correct source prioritisation, and when using mbrs-by-ref/member-of. This means that it is not possible to fully track down all query response differences, particularly because these queries are very complicated to track down. However, all researched queries fit IRRDv2 bugs. - IRRDv2 accepts certain invalid queries and makes a best effort to parse them. IRRDv4 will not.
- IRRDv2 can store return duplicate objects (same RPSL primary key and source), even though their descriptions are different. IRRDv4 enforces PK+source uniqueness.
Possible bugs in IRRDv4:
!iRS-KROOT-V6,1
and!iAS12654:RS-RIS,1
return IPv6 prefixes in IRRDv4 -> moved to #134
Details on differences in responses that are considered bugs in IRRDv2, or intentional behaviour changes in IRRDv4:
!gAS262747
is missing 186.211.120.0/24 because its origin is ASDOT!gas49112
is missing 176.52.224.0/20 because of #52-T route6 -i origin AS14613
is missing 2001:470:33::1/48, as is2001:420:3400::/34
for AS109.2620:10a:e0::/40
for AS11250, due to #62!i,AS-4761
,!i,AS-55805
,!i,AS-DIRECT_PEERS
,!i,AS-DRUKNET-TRANSIT
,!i,AS-SET-GTI
,!i,AS-TIG-GROUP
,!i,AS-VECTANT
,!i,AS9583:AS-SIFY
,!man,as2914
,!r1.1.1.1,Lo
,-KSI
,-i origin 10204
,-i origin 132359
,-i origin 134069
,-i origin 137263
,-i origin 29457
are missing a response in v4 because it is an invalid query format. IRRDv2 makes an attempt to interpret the query regardless, with varying degrees of success.!iAS-AKAMAI
,!iAS-FORTIS
,!iAS-INTERCLOUD
,!iAS-IPTEL
,!iAS-MEEBO
,!iAS-MITSOL
,!iAS-ORION
, (and possible,1
variants) are missing a response in v4, because the source prioritisation places RADB over RIPE, and there is an empty RADB as-set with that name. IRRDv2 appears not to consistently follow its own source prioritisation.!iAS-9299ARCSTAR,1
,AS-ITERANET
AS-INFOCOM
and others have different (but not empty results) also because IRRDv2 does not correctly follow its own source prioritisation. For example, for AS9299ARCSTAR, AS36997 in RIPE-NONAUTH has member-of AS-INFOCOM which is indirectly part of AS9299ARCSTAR. However, v2 appears to select AS36997 from AFRINIC, which has no member-of, so AS36997 only appears in an IRRDv4 answer. This is expected to explain many of the differences in!i
set resolving queries. (This is not adequately explained by source selection stickiness to the original source of AS-9299ARCSTAR.)- Queries in the format of
!iRS-COMM_GFDAB,1
,!iRS-COMM_GFDAE,1
, etc. have an empty response in IRRDv2, but many prefixes in IRRDv4. The route-sets, which occur in both NTTCOM and INTERNAL have mbrs-by-ref:ANY set. The route objects in NTTCOM do not have a member-of set, but the ones in INTERNAL do. Even though the preferred route-set is from NTTCOM, IRRDv4 will search for any object in the included sources with member-of set to the route-set, because prioritisation would not make a meaningful difference in the result. IRRDv2 does appear to be sticky in which sources it uses to look for route(6) objects, which is inconsistent with documentation. !iAS-ALPHACRON
,!iAS-ANEXIA
,!iAS-AS19905
,!iAS-BAKKER
,!iAS-BYTESOURCE
,!iAS-CHKALOVSK
,!iAS-COMM-IT
,!iAS-EDIS
,!iAS-FFGT
,!iAS-HKCOLO
,!iAS-I3B
,!iAS-I3B-TRANSIT-V4
,!iAS-I3B-TRANSIT-V6
,!iAS-IGLOO22225
,!iAS-IP-IT
,!iAS-IWAN
,!iAS-MEINSYSTEM
,!iAS-MNCDN
,!iAS-NETSTYLE
,!iAS-NOE-LFWV
,!iAS-PHORUS
,!iAS-PRUNK
,!iAS-RENOME
,!iAS-ROUTELABEL
,!iAS-RWILLIAMS
,!iAS-SASEUROPE
,!iAS-SELFNET
,!iAS-SERVICENOW
,!iAS-SET-ITC
,!iAS-SET-SCOPESKY
,!iAS-SET-STW
,!iAS-SOFIA-CONNECT
,!iAS-SPINSATNET
,!iAS-TDC
,!iAS-TEAMVIEWER
,!iAS-TELETRONIC
,!iAS-TOMMYBOWDITCH
,!iAS-VIRTELA-COMM
,!iAS12486:AS-YEMEN-NET
,!iAS30873:AS-YEMENNET-CUSTOMERS
,!iAS3320:AS-AUTH-PILOT-BLACKHOLE-FROM-AS13194
give different responses in v4, because v2 incorrectly includes the value(s) of the mbrs-by-ref attribute.!iAS-ATSTELECOM
,!iAS-E_MOUSE
have a different answer due to incorrect case sensitivity in filtering the original query input from the AS set output in v2!iAS-TWIG,1
have different answers due to v2 including an extra comma before the start of the output!oMAINT-AS2527
,!oMAINT-AS7091
,-T mntner maint-nttcom-bb
,-T mntner maint-nttcom-ra
,-T mntner maint-nttcom-sla
,-i mnt-by MAINT-AS10217
-i mnt-by as790-mnt
,-i mnt-by foo
, have different answers, because of slightly different masking of auth lines!r1.1.1.0/24,l
,!r193/21,l
have more answers in v2, because v2 does not actually filter for less specifics, but incorrectly filters for exact match or less specific-F AS2914
,-K 193/21
-K as1234
,-k 193.0.0.1
, have different answers, because IRRDv4 includes the less specific objects that match too (in AS2914's case an as-block in the AFRINIC db)- route6 queries in the format
-T route6 -i origin $AS
produce different results for as14522, as17732, as19114, as19754, as23678, as23838, as24482, as25697, as25780, as27901, as28001, as30479, as32875, as33517, as36915, as3816, as38719, as45177, as45224, as55569, as55803, as56264, as58717, as58779, as64098, as9541. This also happens for-i origin AS$
queries for as14522, as19194, as20324, as28001, as29761, as40224, as45925, as46261, as9541. The issue is that IRRDv2 returns "duplicate" results from sources ARIN-WHOIS and RPKI, i.e. objects with the same source and same primary key. The descriptions are different, but those are not part of a route(6) PK. IRRDv4 enforces PK/source uniqueness and therefore does not return duplicates. - Queries for object templates have different output due to slightly different formatting of the template.
from irrd.
Related Issues (20)
- case sensitive inverse queries with 4.4.1
- source database order affecting results HOT 11
- irrd-http-server-listener is not getting started after irrd restart
- Possible issue in serial sequences on current RADB NRTM HOT 24
- Unable to Submit add prefix request via IRRd API HOT 1
- provide external method to trigger exports
- IRRd documentation format fails presentation with many browsers HOT 2
- Traceback in all requests from maintainers HOT 13
- Refresh the db connection for the NRTM stream when seeing errors HOT 1
- NTT uses export_destination_unfiltered & nrtm_access_list_unfiltered HOT 1
- cbor.decoder module has been deprecated. Instead import everything directly from cbor2. HOT 1
- Disallow creation of "default gateway" route/route6 objects HOT 16
- UI WYSYIWIG HOT 4
- mntner with legacy auth can't be deleted HOT 2
- Support for "::" notation HOT 2
- as-set member validation behaves differently in single line and multiple line values HOT 1
- IRRd won't start if the log file doesn't already exist HOT 1
- /ui/rpsl/update/ should support PGP updates just like email does.
- Ability to remove/clean IRRd for objects with specific source
- Ability to provide different sources for specific client or group of clients HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from irrd.