-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
accept source::as-set format as argument, use source as first for search #5
Comments
we got bit by this also, as we somewhat blindly shovel the irr object defined in peeringdb into bgpq. Note that |
@dwcarder do you feel comfortable making a pull request? I’m happy to review! |
This also came up recently on ITNOG, and I will add some more information here: Peering DB is validating the IRR Object as per peeringdb/peeringdb#151 :
Applications currently have to go through a lot of trouble: |
I am increasingly of the mindset that the approach that @lukastribus points out is the only one workable in practice (strip off any known IRR prefix). In looking at the IRRd documentation https://irrd.readthedocs.io/en/stable/users/queries/whois/, there is no way to start a recursive query w/ |
I think this needs more traction again; a fake AS-GOOGLE AS-SET has recently been added to RIPE which is empty and breaking automated prefix automation. I think this could be broken down into two subtly different feature requests;
Thoughts? |
I think to properly solve that issue we also need to make sure that a AS-SET from e.g. RIPE can also reference a ARIN AS-SET. |
@spolack so we need to perform this action recursively on every AS-SET within an AS-SET, right? |
It is possibly an expensive amount of round trips to implement a recursive query in that manner with a client such as bgpq4. It may be a better approach to consider adding such recursive query support in IRRd 4 where you have the potential efficiency of a proper backend database, then exposing this for clients like bgpq4 to use. |
@dwcarder I agree that this should probably be added to IRRd, but I don't think it should only be added to IRRd, I think it should be added to bgpq4 too. Adding this to IRRd only helps people with access to an IRRd server with that capability. If we add it to a client to bgpq4 people can benefit from this option immediately, rather than relying on server upgrades (which may never happen). I have a long journey coming up in the next few days, I'm happy to use that travel time to read through the bgpq4 source and try to familiarise my self with it, to see what it would take to write a PR for this feature - if such a PR isn't just going to be rejected? |
I will carefully review each and every PR with the intent to merge them. I welcome contributions from the community. |
This has also happened to the APNIC IRR database, and it appears to have been added by the same organisation. To what end, I'm not sure, but it seems to me that it's a coordinated effort. |
Today i observed someone created a Empty AS-FACEBOOK on the ripe database. Would be great if that would be implemented - I'm happy to assist with testing! |
Update: I edited this to split the original idea into two parts...Part 1 Let's discuss how we could implement a fix; Having had a read through the code, it looks to me like this is the main loop where we are recursing and expanding the AS-SET tree: https://github.com/bgp/bgpq4/blob/main/expander.c#L1020 Here bgpq4 does one of two things
If we want to try to pull each AS-SET (and each member AS-SET) from it’s preferred authoritative source, over other potential sources, then I think we could have a CLI option which sets a flag, and if the flag is true, we have a third option which is does the following:
This allows us to get an AS-SET from it's source if one is specified. Separately we could implement a 2nd CLI option for when no source is specified. That would be a separate feature I have put below as part 2, and for now just want to focus on part 1. Does this sounds reasonable? Have I missed something about the way bgpq4 works? Part 2 We could have a CLI option which sets a flag, when true, if the AS-SET has no source specified we could, modify the loop above as follows:
|
PR #70 as of now works as designed. I did a few tests compiling lists of child-ASs and also prefix lists. No abnormalities i've seen so far. I tried whether it works when recurring, but the RIPE database does not tolerate |
The text was updated successfully, but these errors were encountered: