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

Load banlancing function can't work properly. #2

Open
TINCEHUANG opened this issue Jan 17, 2015 · 7 comments
Open

Load banlancing function can't work properly. #2

TINCEHUANG opened this issue Jan 17, 2015 · 7 comments

Comments

@TINCEHUANG
Copy link

Hello,

I've tried and tested the basic LB function time and again following the guide http://docs.projectfloodlight.org/display/floodlightcontroller/Load+Balancer , but I can't PING successfully. I also use wireshark and catch the packet to find out what have happened, and I found the ARPproxy and packetOut work well, but no FlowMod was sent to SW. After that, I tried HTTP, the same thing happened.
Then, oddly enough, I set the default ALGORITHM to "Least CPU usage" and test again, the controller become sending a bunch of wrong FlowMod and LB still can't work well.
There are two things I'm not sure. First, when I test the PING, I have not used the extended curl that you'd given(because I believe it only can extend the service based on TCP only and the MALOB may have a default algorithm to handle any type of loadbanlancing). Second, I'm not sure whether I get something wrong when using the curl to test HTTP, so I list my testing code as follow.

In Linux:
sudo curl -X POST -d '{"id":"1","name":"vip1","protocol":"http","address":"10.0.0.100","port":"80"}' http://192.168.138.2:8080/quantum/v1.0/vips/
sudo curl -X POST -d '{"id":"1","name":"pool1","protocol":"http","vip_id":"1"}' http://192.168.138.2:8080/quantum/v1.0/pools/
sudo curl -X POST -d '{"id":"1","address":"10.0.0.3","port":"80","pool_id":"1"}' http://192.168.138.2:8080/quantum/v1.0/members/
sudo curl -X POST -d '{"id":"2","address":"10.0.0.4","port":"80","pool_id":"1"}' http://192.168.138.2:8080/quantum/v1.0/members/

In mininet:
h3 python -m SimpleHTTPServer 80 &
h4 python -m SimpleHTTPServer 80 &
h1 wget -O - 10.0.0.100
(ip:10.0.0.x)

Finally I really want to figure out this "curl –x POST –d '{"service_name":" BioApp ","algorithm":"3","port":"6789"}' http:///quantum/v1.0/services/". Does it can use for TCP/UDP/ICMP or only TCP?

Thanks a lot.
TINCEHUANG

@goncaloSemedo
Copy link
Owner

That's odd.

Note that I did not use mininet, I used the GENI test bed, where I created a WAN topology with real machines.

I do not know if this difference has anything to do with the problem. Nevertheless I will run the program using mininet and than, I will let you know what can be wrong.

The "curl –x POST –d '{"service_name":" BioApp ","algorithm":"3","port":"6789"}' http:///quantum/v1.0/services/", works with TCP/UDP/ICMP.

Thanks
Gonçalo

@goncaloSemedo
Copy link
Owner

Hello again,

So I run the program using the mininet and strangely it did not worked.

After some debugging I realized that the problem was the host detection, for some reason in mininet it works differently.

I updated the repository and now it should work.

Thanks for the help in debugging the code ;)

Gonçalo

@TINCEHUANG
Copy link
Author

Hello,
Thank you for clarifying the issue. Host detection is exactly the question I struggle with. I guess in Mininet, any host/server won't actively send out gratuitous ARP, so the controller can't detect the IP/MAC of hosts. I called this kind of host "slient server" and I also create an issue in
floodlight/floodlight#486.
Like, a controller receive a PIng packet but it don't have the DIP and DMAC, and what it can do just flood the packet to every port, the same as the process of ARP?
Do you think the reason causing this bug is what I mentioned before ? And how can you solve it?

Thanks a lot :)
TINCEHUANG

@goncaloSemedo
Copy link
Owner

The controller uses the arp packets to discover the hosts.

You could make the controller discover the servers, using the IP packets but the first packet has to be flooded.

Btw is better if put your questions regarding floodlight on their google group:
https://groups.google.com/a/openflowhub.org/forum/#!forum/floodlight-dev

Thanks
Gonçalo

@TINCEHUANG
Copy link
Author

Thanks for your information. So no matter what protocol packet have, as long as controller don't have the endpoint(eg. server) ip or mac, it will simply flood the packet, right?

@goncaloSemedo
Copy link
Owner

Yes, that is what should happen.

2015-01-22 1:21 GMT+00:00 TINCEHUANG notifications@github.com:

Thanks for your information. So no matter what protocol packet have, as
long as controller don't have the endpoint(eg. server) ip or mac, it will
simply flood the packet, right?


Reply to this email directly or view it on GitHub
#2 (comment).

@eoluak
Copy link

eoluak commented Aug 27, 2015

TINCEHUANG can you please get in touch with me. Thanks

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