Skip to content

IPv6 with static routing - #5594

Closed
weizhouapache wants to merge 23 commits into
apache:mainfrom
shapeblue:4.16-ipv6-static-routing
Closed

IPv6 with static routing#5594
weizhouapache wants to merge 23 commits into
apache:mainfrom
shapeblue:4.16-ipv6-static-routing

Conversation

@weizhouapache

Copy link
Copy Markdown
Member

Description

This PR implements IPv6 with static routing for isolated networks and vpcs.

Types of changes

  • Breaking change (fix or feature that would cause existing functionality to change)
  • New feature (non-breaking change which adds functionality)
  • Bug fix (non-breaking change which fixes an issue)
  • Enhancement (improves an existing feature and functionality)
  • Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity

Feature/Enhancement Scale

  • Major
  • Minor

Bug Severity

  • BLOCKER
  • Critical
  • Major
  • Minor
  • Trivial

Screenshots (if appropriate):

How Has This Been Tested?

@weizhouapacheweizhouapache added this to the 4.17.0.0 milestone Oct 20, 2021
@weizhouapacheweizhouapache changed the title 4.16 ipv6 static routingIPv6 with static routingOct 20, 2021
@weizhouapache

Copy link
Copy Markdown
MemberAuthor

@blueorangutan package

@blueorangutan

Copy link
Copy Markdown

@weizhouapache a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@blueorangutan

Copy link
Copy Markdown

Packaging result: ✔️ el7 ✔️ el8 ✔️ debian ✔️ suse15. SL-JID 1596

Comment threadapi/src/main/java/com/cloud/network/Ipv6Address.java Outdated
Comment threadapi/src/main/java/com/cloud/network/Ipv6Address.java
Comment threadapi/src/main/java/com/cloud/network/Ipv6Address.java

@Override
public String getCommandName() {
return APINAME.toLowerCase() + BaseCmd.RESPONSE_SUFFIX;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like this code repeats along several classes, could we extract it to a method?

Comment threadserver/src/main/java/com/cloud/network/Ipv6ServiceImpl.java Outdated
Comment threadserver/src/main/java/com/cloud/network/guru/ExternalGuestNetworkGuru.java Outdated
Comment threadserver/src/main/java/com/cloud/network/guru/GuestNetworkGuru.java Outdated
Comment threadserver/src/main/java/com/cloud/network/router/CommandSetupHelper.java Outdated
@weizhouapache

Copy link
Copy Markdown
MemberAuthor

@GutoVeronezi
this PR is still in progress and not ready for review.
thanks for your review anyway.

cc @shwstppr

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
@shwstppr

Copy link
Copy Markdown
Contributor

@blueorangutan package

@blueorangutan

Copy link
Copy Markdown

@shwstppr a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@blueorangutan

Copy link
Copy Markdown

Packaging result: ✔️ el7 ✔️ el8 ✔️ debian ✔️ suse15. SL-JID 1597

@weizhouapache

Copy link
Copy Markdown
MemberAuthor

@blueorangutan package

@blueorangutan

Copy link
Copy Markdown

@weizhouapache a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@blueorangutan

Copy link
Copy Markdown

Packaging result: ✔️ el7 ✔️ el8 ✔️ debian ✔️ suse15. SL-JID 1604

@weizhouapache

Copy link
Copy Markdown
MemberAuthor

@blueorangutan package

@blueorangutan

Copy link
Copy Markdown

@weizhouapache a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@blueorangutan

Copy link
Copy Markdown

Packaging result: ✔️ el7 ✔️ el8 ✔️ debian ✔️ suse15. SL-JID 1606

throw new CloudRuntimeException(String.format("Invalid routerIpv6Gateway for network %s", network.getName()));
}
final String routerIpv6Prefix = routerIpv6Gateway.split("::")[0];
final String routerIpv6Prefix = routerIpv6Gateway.split("::")[0] + "::";

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's create a utility createIpv6PrefixFromGateway(String)

@weizhouapache

Copy link
Copy Markdown
MemberAuthor

@blueorangutan package

@blueorangutan

Copy link
Copy Markdown

@weizhouapache a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@blueorangutan

Copy link
Copy Markdown

Packaging result: ✔️ el7 ✔️ el8 ✔️ debian ✔️ suse15. SL-JID 1660

@yadvr

Copy link
Copy Markdown
Member

@weizhouapache Assuming this was just PoC for the talk, is this being progressed by @shwstppr or should it be closed if @shwstppr is using this just as reference?

@weizhouapache

Copy link
Copy Markdown
MemberAuthor

@rhtyd
I am ok with closing this ticket. it is up to @shwstppr if update this PR or open a new PR.

@shwstppr

Copy link
Copy Markdown
Contributor

@rhtyd @weizhouapache let's close this, will open a new PR in next couple of days

@yadvryadvr closed this Nov 18, 2021
@yadvryadvr removed this from the 4.17.0.0 milestone Nov 18, 2021
shwstppr added a commit to shapeblue/cloudstack that referenced this pull request Dec 17, 2021
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
nvazquez pushed a commit that referenced this pull request Apr 26, 2022
* wip
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* IPv6: configure VR of isolated networks
* IPv6: add default IPv6 route in VR of isolated networks
* Reformat server/src/main/java/com/cloud/network/NetworkServiceImpl.java
* IPv6: update network to offering which support IPv6
* IPv6: update vm nic ipv6 address when update network to new offering
* IPv6: configure VPC VR to support multiple tiers with IPv6
* IPv6: add RDNSS in radvd.conf
* IPv6/UI: support ipv6 protocols in Network ACL
* wip
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* changes for diagnostics
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* more import fromo #5594
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* IPv6: fix wrong public ipv6 in VPC VR
* changes
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* Update server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
Co-authored-by: dahn <daan.hoogland@gmail.com>
* ui: fix add ipv6 prefix labels, message
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* ui: label fix
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* logging fix
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* test fix
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* changes
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* minor ui refactor
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* ip6 events
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* ip6 usage
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* unused
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* slaac based public ip
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* remove unused
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* diagnostics fix for vr
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* firewall changes
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* alert and show ipv6 usage
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* change for network response
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* ipv6 network test
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* changes
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* ui: fix ipaddress listing
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* wip
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix simulator
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* changes
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* changes
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* test fix
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* test and fixes
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* test temp change revert
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fixes
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* use uuid
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* event syntax fix
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* wip
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* review comments
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* assign vlan public IP for dualstack only if both protocols present on same vlan
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* internetprotocol in networkofferingresponse
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* add tcp, udp
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* support vpc with ipv6 only on same vlan
- adds new internet protocol param to createVpcOffering API
- When DualStack internet protocol is selected for the VPC offering, tiers with network with or without IPv6 support can be deployed.
- When IPv4 internet protocol is used for the VPC offering, tiers with network with only IPv4 support can be deployed
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* change and fix
allow VPC with IPv4 protocol to deploy tiers with IPv6
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* test fix
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* ui fixes
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix multiple routes, network guest ipv6 gateway
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* address review comments
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* stop radvd on backup VR
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix router redundant status with ipv6
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* disable radvd for backup vr
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* correctly set ipv6 in redundant router case
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* remove unused code
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix connection
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* ui: don't show all protocol for egress
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix guest ipv6 for redundant VRs
Redundant VRs will not be assigned an IPv6 by ACS and guest netwrok gateway will be added as IPv6 for guest interface by systemvm scripts during setting redundant state of the VR.
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix missing ipv6 on redundant vr
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix syntax
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* ui: fix vpc tier redirect to show details
When redirecting to VPC tier, details tab should be active by default
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* restart radvd on primary redundant vr
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* check for ipv6 values
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* remove old ui change
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix condition
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* remove gateway from backup vr
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* network upgrade fail early
when IPv6 network cannot be allocated fail before shutting down the network
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix radvd not running on RVR
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* prepare radvd.conf once
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix job polling
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix RVR for vpc with ipv6
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix ipv6 network acls
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* Update CsConfig.py
* add check
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* test: vpc offering test
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* test: add negative tests for guest prefix, public range
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* add default ipv6 route for primary
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix dadfailed on vpc rvr
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* ui: fix add iprange form, dedicate action visibility
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix adding, deleting ipv6 range
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix failing test
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix missing destination cidr in ipv6 firewall
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix ipv6 nftables rules
Allow storing linger IPv6 CIDRs in DB
Specify all port range for TC{, UDP protocol rules withot ports
Fix adding nft rules by creating chains first
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix icmpv6 type, code
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix icmp type, code
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* test: add more for ipv6 network
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* add warning message for egress policy in ipv6 fw rule
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* ui,server: update ipv6 vlan range
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* subnet operations inside transaction
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* server: persistent public IPv6 for network
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* ui: fix action alignment
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix vpc acl for tiers
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix removing network placeholder nic
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix acl rules for ip version
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix placeholder nic and nd-neighbor block issue
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* test for redundant nw
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* fix ping
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* systemvm: uprgade to debian 11.3.0
* ipv6: enable ipv6 in sysctl config in bootstrap.sh
* VR: fix KeyError: 'nic_ip6_cidr'
* build fix for latest event changes
Signed-off-by: Abhishek Kumar <abhishek.kumar@shapeblue.com>
Co-authored-by: Wei Zhou <weizhou@apache.org>
Co-authored-by: dahn <daan.hoogland@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@weizhouapache@blueorangutan@shwstppr@yadvr@DaanHoogland@GutoVeronezi