Comments (6)
Hello @anuragbhatia, thanks for your message here.
Even though I totally see the benefits of this feature in an IX management environment, I believe it is out of scope with regards to the ultimate goal of ARouteServer, which is building route servers configurations.
I thought it could be good to create a side tool within the tools directory of the project. A set of plugins could be created to implement the various "northbound interfaces" needed to publish data into the various IRRs.
What do you think?
Just to set the right expectations, this would not be my top priority at the moment, but of course something that I'd like to create.
from arouteserver.
That sounds like a good idea!
from arouteserver.
Hello @anuragbhatia, I've started looking into this.
I've pushed some new commits to the dev branch, you can find a quick summary on how I'm approaching it here: https://arouteserver.readthedocs.io/en/dev/USAGE.html#generation-of-route-server-as-set-rpsl-object (it's the dev version of the docs site).
At the moment there's a new command that builds a RPSL AS-SET object with the ASes and AS-SETs of the route server clients; it just dumps the content to a file, it does not interact with upstream IRR DB providers. I'm inclined towards not implementing upstream interfaces at the moment, but to keep it simple for the time being. There are lots of potential IRR DB providers that users might be interested into, and most likely (I haven't fully analysed all of them) it would require lot of time and effort to implement their APIs or other ways to sync automatically, and to stay on top of them when they are updated. I still see the benefits of such a tool, although I'm not really sure it would be in scope for ARouteServer, and the effort required is not insignificant.
Are you aware of any middle-ware libraries/programs/scripts that can be fed with a RPSL objects and do the rest of the job? Ideally it should be something that abstracts the different mechanisms offered by IRR DB providers to deal with their data sources.
A CI pipeline is now running (see it on TravisCI); once it will complete, release v1.3.0-alpha1 will be out on PyPi-test; in case you wanna play with it, you can install it using the following instructions: https://arouteserver.readthedocs.io/en/dev/INSTALLATION.html#development-and-pre-release-versions
EDIT the pipeline failed, but it seems it's due to a Docker-hub rate limiter kicking in; I've manually uploaded arouteserver-1.3.0a1.tar.gz to the PyPi test instance, so it can be installed using the instruction above.
from arouteserver.
@pierky rumor is ARIN will offer a modern (non-SMTP) API for IRR at some future date, at least in RIPE land this could be automated I assume?
from arouteserver.
@pierky rumor is ARIN will offer a modern (non-SMTP) API for IRR at some future date, at least in RIPE land this could be automated I assume?
Hello Matt,
thanks for the feedback.
At the moment I plan on not adding automatic IRR object uploading feature to ARouteServer, but rather to release this feature as it is right now (I did few changes that I'll explain in a bit), that is as a way to build the AS-SET object and dump it to a local file. The reason is that there are many IRR systems, each one with a different ingestion mechanism (APIs with different implementations between RIPE and RADB, email, web-based portals). Even to reach a reasonable coverage only of the most used ones would introduce a substantial cost to the project in terms of implementation effort and maintenance (the tool is already quite intensive in terms of external dependencies, for its own nature of course).
Not saying that I don't see the value of such a feature, nor that it will not be implemented in the future, I just prefer to start shipping what's ready and keep an eye on it. I believe that in the shape it's right now it would already provide value and help operators to track changes in their route servers AS-SETs, and make it a lot easier to deal with those changes.
As I've mentioned, a pipeline for v1.3.0-alpha2 is running and eventually a pre-release will be published (see https://arouteserver.readthedocs.io/en/dev/INSTALLATION.html#development-and-pre-release-versions). The dev version of the docs site already reflects how I changed it. Basically, there are now 2 templates that can be used to generate the output AS-SET, one of them is in a format that can be consumed by ripeinator, a tool that is able to implement the RIPE REST API for IRR. This is already something that could be used for RIPE-land in a automated way, with a wrapper that could execute ARouteServer to build the object and ripeinator to push it.
I'm not aware of other tools that do the same, I'll be glad to work on extending the templates should other software interfaces exist for more IRRs.
Hope this makes sense.
from arouteserver.
1.3.0 is out, which includes what described above. Going to close this issue. I'll think if/how to implement "upstream" interaction with IRR providers.
from arouteserver.
Related Issues (20)
- 4Byte to 2Byte ASN conversion issue for BGP community HOT 9
- bird local preference HOT 2
- import limit is not set if peeringdb not found HOT 2
- Jinja2 / markupsafe version missmatch leads to errors HOT 1
- PeeringDB anonymous API throttling HOT 10
- Allow configuration of the PeeringDB URL
- Add support for peeringdb-py
- __init__() got an unexpected keyword argument 'allowed_methods' after upgrade to 1.16 HOT 9
- Remove RGNET from whois sources HOT 1
- as_macro not added to IX-F JSON if read from PeeringDB HOT 8
- Route-Servers with Peer Active to ASNs that were excluded
- Double "AS" in comment for ASN without IPv6 in ARIN HOT 1
- Deprecate ARIN-WHOIS data source HOT 5
- feature request: add anchors to route server policy textual representation, other minor issues HOT 2
- Add routeserver attribute to IX-F export HOT 5
- Add metadata to policy textual representation
- Max prefix limit exceed shutdown with auto recovery HOT 1
- ipv4 table entry in bird config HOT 3
- PeeringDB AS-set name format should not be used in AS-set IRR object export HOT 6
- Looking Glass Client Configuration 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 arouteserver.