-
-
Notifications
You must be signed in to change notification settings - Fork 258
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
Implement network address sets #1450
Comments
Hello, I’m giving this a try, but I’m new to both Go and Incus development. I’m approaching this as an enthusiast and treating it as a learning exercise so you may want someone that is already proficient. I already have a few questions. In internal/server/network/ovn/ovn_nb_actions.go, I noticed some bindings for address sets. Am I correct in assuming that the ones we need to implement are in driver_ovn.go? Additionally, I’m currently exploring where to implement the REST API and believe I’ve identified the relevant structures for API definitions. To summarize, I’m focusing on implementing:
Any guidance would be appreciated. |
Oh, I completely forgot that we were already making use of address sets internally for the |
@irhndt I assigned this issue to you so we don't end up with someone else working on this in parallel. Let me know if you have any questions as you start digging into this one! |
@stgraber Thank you for assigning me this, I'll do my best. I understand a bit better the code structure but still it's a huge and complex project <3. I hope to begin tackle the main logic in the next few days, so before I take the big dive I would like to know if there is some precision for the phase 3 of my roadmap I should know before starting. Also if you spot some obvious mistakes or missing parts from previous phases let me know.
|
In 2), note that we also generate as much of the database access functions as possible.
|
Just a heads up, I got back on the development of the feature lately. For now I am missing:
There should be some errors, but the feature is comming. For the notice I made the choice to be able to use IP elements such as address and ranges in conjunction of address set in source / destination of ACLs. I will see if I can do the same for OVN while I test it. |
I am having trouble with blocking icmpv6 with address sets in netfilter and eventually even with direct ip6 address reference in ACL. Is there any limitation I might now be aware of ? Or simply I messed too much with nftables driver firewall code ? I'll move on to different test cases as pretty much everythin I have tested works so far but I am hanging on this peculiar case? To add context, the cod correctly generates the following nft ruleset:
However the icmpv6 packet is not blocked. |
One current missing piece of our networking puzzle is support for address sets.
That is, a named set of address and/or subnets which can be used as source/destination selector within ACLs.
There is a native OVN object for this feature, so it would make sense to initially implement this for OVN networking.
Address sets should be scoped the same way as ACLs as they'll be very closely linked. This means address sets should be part of a project when
features.networks=true
The expected changes should roughly be:
The text was updated successfully, but these errors were encountered: