Skip to content

createLoadBalancerRule does not allow for tcp and udp #4481

Closed

Description

@nlindblo
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


Activity

  1. added this to the 4.16.0.0 milestone on Nov 19, 2020
  2. DaanHoogland commented on Nov 19, 2020

    @DaanHoogland
    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

  3. davidjumani commented on Nov 23, 2020

    @davidjumani
    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

  4. davidjumani commented on Nov 24, 2020

    @davidjumani
    Contributor
  5. davidjumani commented on Dec 2, 2020

    @davidjumani
    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.

  6. DaanHoogland commented on Dec 2, 2020

    @DaanHoogland
    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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions