Skip to content

vaccovecrana/awe4lb

Repository files navigation

awe4lb

awe4lb is a layer 4 load balancer

Configuration notes

  • TCP buffer sizes are currently determined by the Operating System.
  • UDP buffer sizes are application specific. Default is 16384 bytes.

Security considerations

  • Do not allow public access to the REST api, since it allows for full management. Expose it only within a trusted network perimeter.
  • Most applications and use cases should work fine with the default TCP buffer size. However, applications which stream large amounts of data should make sure that the underlying hardware has enough memory capacity to handle backpressure from either clients or backends.

Implementation items

TCP

  • Schema modeling (configuration template).
  • SSL connection tracking.
  • ACME certificate issuance/renewal. For now, use certbot to rotate certificates, then restart awe4lb.

UDP

  • UDP backend selection strategies (weight, random, round robin).
  • Sticky session support.
  • UDP Transparent proxying.

Backend discovery

  • DNS records.
  • Exec return value.
  • Kubernetes.
  • Any others provided by gobetween.

Monitoring

  • Metrics capturing.
    • Bytes sent/received (global).
    • Whichever other metrics gobetween exposes.
  • Metrics access (prometheus endpoint).

Admin functionality

  • REST API access for configuration changes.
  • UI implementation.
  • Documentation/Usage notes/caveats.

Similar projects

Resources

In memory of James Perry McCaffrey (March 27, 1958 – December 17, 2023).