-
Notifications
You must be signed in to change notification settings - Fork 35
[RFC0038] IPv6 support for Silk CNI and VXLAN policy agent #155
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
[RFC0038] IPv6 support for Silk CNI and VXLAN policy agent #155
Conversation
8060719 to
4f4eb21
Compare
IPv6: Sysctl for IPv6. IPv6: forwarding. IPv6: point-to-point for containers. IPv6: neighbors for IPv6. IPv6: enable routing for IPv6.
IPv6: extend the CNIResult. IPv6: remove IPv6 routes from routing slice. IPv6 for silk-cni: prepare IPAM for IPv6. IPv6 for silk-daemon: extend network info for IPv6. IPv6 silk-cni and cni-wrapper: extending of datastore.
IPv6 cni-wrapper: fix IPv6 validation. IPv6: ipv4 and ipv6 alidation. IPv6: datastore, optimization. IPv6 silk-daemon: extend config file with ipv6_prefix field. IPv6 silk/lib, silk-cni: fix datastore build. IPv6 silk/lib, silk-cni, cni-wrapper: fix datastore validator because of broken build. IPv6 silk-daemon: validate whether the host is IPv6 enabled. IPv6 silk-cni: add SysctlIPv6Security.
use the 'ipv6.prefix_network' to get prefix details from spec.networks
40756ff to
83a7dd1
Compare
|
|
Ginkgo test results(tl;dr all green): https://gist.github.com/plamen-bardarov/b4d40c27383be0269b39f191864b6b13 |
|
@plamen-bardarov Can you please resolve the conflict so that we can start the process for merging ? |
|
Changes looks good to me as far keeping the backward compatibility and keeping ipv6 behind a flag. Since there is a lot of code changes here, I've asked for a second pair of eyes to make sure I didn't miss anything. |
src/code.cloudfoundry.org/silk/cni/integration/integration_test.go
Outdated
Show resolved
Hide resolved
…ease into vxlan-policy-agent-ipv6-pr
|
@ameowlia This looks to good to me now. Is there any other changes you are requesting ? Ideally I would to squash all of these commits into one for a better visibility of the changes. |
|
cf-acceptance-tests results: https://gist.github.com/plamen-bardarov/49852860f721b99dd6f928754ee32e02 |
|
@winkingturtle-vmw, @ameowlia just as quick reminder: I think we've now provided everything that is needed to consider merging this. It is still considered experimental, but having a release will significantly help us in testing this with real world scenarios. |
|
Hi @ameowlia, the CATs have been executed successfully, and the changes don't affect the IPv4 functionality. Is there anything further we can do on our end, or may we proceed with the merge? |
Summary
RFC0038
Tracking Issue
Key things to note:
There's a dependency on BOSH for exporting the ipv6 prefix for the cells so for now its hardcoded.Testing
In order to run the IPv6 tests locally "GINKGO_TEST_IPV6=true" has to be set inside the container. Also docker engine has to have IPv6 enabled with the following config:
{ "fixed-cidr-v6": "2001:db8:2::/64", "ipv6": true }Code Changes
CNI Wrapper Plugin
Spec Changes
host_tcp_services_ipv6, similar tohost_tcp_servicesfor ipv4, adds those networks as ACCEPT iptables rulesdeny_networks_ipv6, similar todeny_networksfor ipv4ipv6.enableCode Changes
NetOutandNetOutChainare created specifically for IPv6 and used to initialize default and egress rules.netrules.NetOut:netrules.RuleConverter:Silk CNI (Plugin)
Code Changes
Silk Daemon
Spec Changes
Addedipv6_prefixipv6.enableipv6.prefix_network, the network name fromspec.networksthat holds the ipv6 prefix for containersNote:
ipv6_prefixis not part of the spec, it is dynamically assigned value, taken from a network namedipv6.prefix_networkCode Changes
ipv6.enable=true) and the host supports it andipv6_prefixis set in the config, return the configured prefix as well.VXLAN Policy Agent
Spec Changes
ipv6.enable. Disclaimer: ifipv6.enable=truebut the cni-wrapper plugin is not configured to assign IPv6 addresses, the vxlan-policy-agent fails to setup ASG rules, because of the missing netout chains for IPv6Code Changes
netrules.NetOutChain,Enforcer, andplanner.VxlanPolicyPlannerare created with IPv6 configurations.converger.SinglePollCycleis instantiated for IPv6 and added toPollCycleGroup, wrapping both IPv6 and IPv4 implementations.planner.VxlanPolicyPlanner:Backward Compatibility
Breaking Change? TBD