Comments (1)
To run as a pure L4 load balancer without support from the backend operating system, either:
- a separate backend connection would need to be created (in which case something like haproxy is likely easier), or
- there needs to be a way to drop the load balanced packets directly onto the NIC of the backend server so that the original src/dst IP is maintained (via some tunnelling method), or
- the packets have to essentially be NATed in both directions so that the destination becomes the backend IP rather than the load balancer IP (which GLB doesn't support)
Since glb-director is intentionally stateless and there is a need for the packets to be encapsulated in a packet that has the destination of the backend, GLB uses tunnelling over GUE - another way of doing this could be to have the network switch decapsulate the packet (perhaps with another protocol mechanism if GUE is not possible). We initially used IPIP, but found that encoding second chance information in IP headers caused poor switch performance as packets were redirected to software rather than hardware processing. Potentially it would be possible to use all the GLB logic, and then encapsulate in IPIP without any second chance information, if decapsulating the packet on a network device or NIC was easier to generalise - though this isn't supported by GLB today. That said, without storing any state, some form of tunnelling is required, whether that be decapsulated on a switch or on the backend server itself.
from glb-director.
Related Issues (20)
- glb-director-xdp on bonded nic HOT 2
- stopping the glb-director-xdp service does not stop directing traffic
- Metrics of glb-director-xdp HOT 1
- cibuild-create-packages fails to prepare the Docker build environment with a broken packages error HOT 1
- conntrack lookup removal in ipt_GLBREDIRECT breaks with network namespaces HOT 1
- Tag releases please HOT 1
- glb-director failing host + ecmp/ibgp HOT 4
- glb-director fails to build with kernel linux-5.9.1 HOT 1
- Question: XDP Director status HOT 3
- Question about filling state HOT 2
- How was this made?
- how to use glb-director-xdp?
- make error
- Destination Mac address mapping according to backend IP address HOT 2
- Package for Debian buster ? HOT 2
- dperf: a high performance open source l4lb load tester
- cannot build with latest DPDK HOT 1
- GUE healthcheck fails with self IP
- Branch Protections Audit - 2022-10-05T18-41-55-524 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from glb-director.