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

createLoadBalancerRule does not allow for tcp and udp #4481

Closed
nlindblo opened this issue Nov 19, 2020 · 5 comments · Fixed by #4501
Closed

createLoadBalancerRule does not allow for tcp and udp #4481

nlindblo opened this issue Nov 19, 2020 · 5 comments · Fixed by #4501

Comments

@nlindblo
Copy link

ISSUE TYPE
  • Bug Report
COMPONENT NAME

createLoadBalancerRule API, UI


CLOUDSTACK VERSION

4.14


CONFIGURATION

Advanced Networking, VPC, Loadbalancer

OS / ENVIRONMENT

Ubuntu 16.04

SUMMARY

LoadBalancerRule API does not allow for tcp and udp to be selected as protocol. When a rule is created for a port choosing tcp as protocol, an additional rule cannot be created for udp and a error message stating conflicting rule is thrown.

STEPS TO REPRODUCE

with cloudmonkey:

createLoadBalancerRule algorithm=source name=test privateport=800 publicport=800 networkid=299aace4-a5c5-46f4-9ae7-92c86ded0cea publicipid=2c49bd00-cd6b-44d4-93a5-7082ead298e0 protocol=udp

createLoadBalancerRule algorithm=source name=test privateport=800 publicport=800 networkid=299aace4-a5c5-46f4-9ae7-92c86ded0cea publicipid=2c49bd00-cd6b-44d4-93a5-7082ead298e0 protocol=tcp

throws error message

The range specified, 800-800, conflicts with rule 4214 which has 800-800


EXPECTED RESULTS

either tcp/udp as a selection or being able to create a rule for each

ACTUAL RESULTS

The range specified, 800-800, conflicts with rule 4214 which has 800-800


@DaanHoogland
Copy link
Contributor

as discussed with @nlindblo on list at users@ [1] this is different as expected or as portforwarding works, while portforwarding is really not more than loadbalancing over a single backend. I can live with calling this a bug or a feature but really think it should be working as the user asks. It cuts across the whole system right into the VR hence I mark it as major but the solution might be just in the VR scripts or even just in the DAO?!?

[1] https://lists.apache.org/thread.html/rd0e615913601cbdae59d04e32907e1e4b8c995222a31d214ab0fe201%40%3Cusers.cloudstack.apache.org%3E

@davidjumani
Copy link
Contributor

Since CloudStack uses haproxy as a loadbalancer which doesn't support UDP, it would be a good idea to remove the option from the UI as well as have checks in the backend
haproxy/haproxy#62

@davidjumani
Copy link
Contributor

Disabled UDP via #4501 && apache/cloudstack-primate#871

@DaanHoogland DaanHoogland linked a pull request Nov 24, 2020 that will close this issue
12 tasks
@davidjumani
Copy link
Contributor

@nlindblo since HAproxy which is internally used for load balancing does not support udp, an appropriate check has been added. There will only be a conflict in case of tcp rules on the same port.

@DaanHoogland
Copy link
Contributor

@nlindblo per this fix, this is now going to be a feature request (if you still want it) I'm closing this. you can reopen, use an alternative to the internal lb or enter a new feature request (which will probably require atr least some functional research and spec effort)

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

Successfully merging a pull request may close this issue.

3 participants