Consul + ALB/ELB shows traffic as coming from the LB instead of the actual clients
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 30.1k
- Forks
- 4.6k
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 39
Description
When filing a bug, please include the following headings if possible. Any example text in this template can be deleted.
Overview of the Issue
We are running consul on EC2 in AWS with an ALB in front of it (previously an ELB with TLS connectivity). In both cases, the debug logs for consul is showing traffic as coming from the Load Balancer IP addresses instead of the actual clients. This means that if one app starts opening too many concurrent connections, we get the 429 errors for everyone because it thinks the client is the LB. Is there a recommendation on how to deal with this?
Reproduction Steps
Steps to reproduce this issue, eg:
- Create a cluster and put an ALB in front of it
- Have 200+ concurrent connections going through ALB to consul from one IP then try to connect from the other IP
- Other IP shows "Your IP is issuing too many concurrent connections, please rate limit your calls"
Consul info for both Client and Server
Client info
output from client 'consul info' command here
Server info
output from server 'consul info' command here
Operating system and Environment details
AWS/ALB/RHEL
Log Fragments
Include appropriate Client or Server log fragments. If the log is longer than a few dozen lines, please include the URL to the gist of the log instead of posting it in the issue. Use -log-level=TRACE on the client and server to capture the maximum log detail.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No source file, test, or entry point is identified. Start with the ALB/ELB reproduction steps and collect the missing Consul info and debug log fragments, then trace the request identity and rate-limit handling reached by that path. Done should include a confirmed client-identity behavior and regression coverage.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, go
- Domain
- backend-api-design, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100