Skip to content
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

dual-stack support #1142

Closed
32 of 37 tasks
danwinship opened this issue Mar 14, 2020 · 11 comments
Closed
32 of 37 tasks

dual-stack support #1142

danwinship opened this issue Mar 14, 2020 · 11 comments

Comments

@danwinship
Copy link
Contributor

danwinship commented Mar 14, 2020

Tracking for what needs to be done for dual-stack support.

cc @dcbw @russellb

@danwinship
Copy link
Contributor Author

(I'm currently working on all the annotation-related stuff.)

@danwinship
Copy link
Contributor Author

doing config stuff now too

@Billy99
Copy link
Contributor

Billy99 commented Apr 17, 2020

@danwinship Looking into "pkg/ovn/port_cache.go: needs to handle multiple pod IPs" now. (#1270)

@Billy99
Copy link
Contributor

Billy99 commented Apr 21, 2020

Looking into the remaining "pods" bullet item above.

@gvbalaji
Copy link
Collaborator

gvbalaji commented May 5, 2020

I am looking into these two items under Services

  1. pkg/node/gateway_localnet.go:localnetAddService() / localnetDeleteService() need to add/delete IPv4 or IPv6 rules depending on the service IP
  2. pkg/node/gateway_localnet.go:localnetNodePortWatcher() needs to set up both iptables and ip6tables base rules

i will discuss the code changes I have done with Dan Winship on these two items

@gvbalaji
Copy link
Collaborator

PR's for these two items under services:

  1. pkg/node/gateway_localnet.go:localnetAddService() / localnetDeleteService() need to add/delete IPv4 or IPv6 rules depending on the service IP
    2.pkg/node/gateway_localnet.go:localnetNodePortWatcher() needs to set up both iptables and ip6tables base rules

#1326
#1327

@gvbalaji
Copy link
Collaborator

gvbalaji commented Jun 2, 2020

@danwinship I am planning to look at this item under "NetworkPolicy".

pkg/ovn/namespace.go:addPodToNamespace() / deletePodFromNamespace() / AddNamespace() need to check/add/remove multiple IPs from address sets

Please let me know if this is ok Or you want me to look at some other policy item first.

@gvbalaji
Copy link
Collaborator

gvbalaji commented Jun 3, 2020

pkg/ovn/namespace.go:addPodToNamespace() / deletePodFromNamespace() / AddNamespace() need to check/add/remove multiple IPs from address sets is under progress
PR link
#1376

I think this also addresses this line item where the structure definition has moved to ovn.go

pkg/ovn/common.go needs to update naming to allow separate IPv4 and IPv6 sets for each namespace

@gvbalaji
Copy link
Collaborator

gvbalaji commented Jun 4, 2020

Looking into these items now.
pkg/ovn/policy_common.go:getL3MatchFromAddressSet() needs to match "IPv4-expression || IPv6-expression"
pkg/ovn/policy_common.go:ipMatch() needs to be based on the IP address in question, not the global mode
pkg/ovn/policy_common.go:addAllowACLFromNode() needs to allow from both IPv4 or IPv6 address

PR link
#1428

@danwinship

@gvbalaji
Copy link
Collaborator

gvbalaji commented Jun 26, 2020

Additional items I found that needs dual stack support are

  1. hybrid overlay
    hybrid-overlay/pkg/controller/master.go : Method handleOverlayPort needs to handle multiple subnets in case of dual stack
    hybrid-overlay/pkg/controller/node.go : Method getNodeSubnetAndIP needs to handle multiple CIDRs in case of dual stack
    pkg/ovn/pods.go : Method addRoutesGatewayIP needs to handle dual stack aspects for hybridOverlayExternalGW.

  2. pkg/ovn/gateway_init.go : Method gatewayInit needs to configure multiple IPs for lb_force_snat_ip values

  3. pkg/ovn/master.go : Method 'StartClusterMaster' needs to handle multiple subnets for shared gateway mode

cc : @danwinship PTAL

@danwinship
Copy link
Contributor Author

All of the original work is done now... I'm going to update the ipv6 shared gateway bug, and add a new one for hybrid overlay, and we can just fix other things as we find them

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants