google / seesaw

Seesaw v2 is a Linux Virtual Server (LVS) based load balancing platform.
Apache License 2.0
5.65k stars 511 forks source link

Expose tunneling mode in config.proto #91

Closed unicell closed 4 years ago

unicell commented 4 years ago

IPVS tunneling mode is another option to achieve DSR, along side with the current default direct routing mode. Tunneling scales better network topology wise to allow ipvs and real servers spread across L2 domain. However, it requires extra tunneling interface configuration on the real server side.

This change exposes TUN mode as one option in VserverEntry protobuf definition, with additional coverage in both UT and integration test tool.

liuyuan10 commented 4 years ago

Thanks for the enhancement. could you fix the test? Also is there any configuration needed like setting up the tunnel on the LB node itself?

unicell commented 4 years ago

Thanks for the enhancement. could you fix the test?

Yep, working on it. It seems to be a timing issue and not able to reproduce on my local.

Also is there any configuration needed like setting up the tunnel on the LB node itself?

There's no extra config for the network interface on the LB itself, as the packet encapsulation is handled by ipvs. However, the healthcheck path will need a similar patch to allow traffic sent through the tunnel. Will cover that part in another PR. Let me know if you prefer to use a single PR for both (TUN LB mode and TUN HC mode)

unicell commented 4 years ago

Test fix in https://github.com/google/seesaw/pull/93

Will rebase this one after https://github.com/google/seesaw/pull/93 got merged.