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

Flow based Load Balancer #495

Open
p4pe opened this issue Aug 4, 2021 · 7 comments
Open

Flow based Load Balancer #495

p4pe opened this issue Aug 4, 2021 · 7 comments

Comments

@p4pe
Copy link

p4pe commented Aug 4, 2021

Hello everyone,
I want to create a flow-based load balancer.
LB

Which elements should I use to be able to implement this functionality?

Thank you

@tbarbette
Copy link
Collaborator

IPRewriter, like a NAT, with something like RoundRobinIPMapper for pattern

@p4pe
Copy link
Author

p4pe commented Aug 30, 2021

Hello @tbarbette thank you for your response.

Sorry for the late reply.

To be more precise, I would like to implement something like ECMP protocol. I don't know if this can be done with Click.
In my example, the VNF1 and VNF2 are simply forwarding the traffic to sink.
ECMP

Thank you!

@tbarbette
Copy link
Collaborator

Remember ECMP is per-packet, so you would break flows and VNFs would see part of multiple flows, so they can't run NAT etc. But if you don't want something flow-aware, then you can simply use RoundRobinSwitch that will forward packets in a RR fashion.

@tbarbette
Copy link
Collaborator

To be flow-aware, but independent of load, you have HashSwitch.
To do RoundRobin you need the aforementioned solution.

Tom

@p4pe
Copy link
Author

p4pe commented Sep 3, 2021

Hello Tom,

Today I saw the RoundRobinSwitch element, thank you for the confirmation.

So I can have:

in1::FromDevice()
in2:FromeDevice()

out::ToDevice
out1::ToDevice

lb::RoundRobinSwitch

And the inputs of the lb will be the in1 and in2 (after they passed from IPClassifier, etc..)

Am I right?

@tbarbette
Copy link
Collaborator

Yes, with the usual Queue etc

@xt1234567
Copy link

Hello Tom,

Today I saw the RoundRobinSwitch element, thank you for the confirmation.

So I can have:

in1::FromDevice()
in2:FromeDevice()

out::ToDevice
out1::ToDevice

lb::RoundRobinSwitch

And the inputs of the lb will be the in1 and in2 (after they passed from IPClassifier, etc..)

Am I right?

Hello , I also want to create a per-packet load balancer, but it was a little difficult for me to implement it ,can you share the .click file? Thank you very much in advance.
my email is [email protected]

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