docker-archive / for-aws

92 stars 26 forks source link

ELB DNS Returns Wrong Host #156

Open sachnk opened 6 years ago

sachnk commented 6 years ago

Expected behavior

The AWS ELB DNS should resolve to an IP of worker/manager in the swarm. For example, if I curl to the ELB DNS name, then it should resolve properly to an IP of a worker/manager in my swarm.

Actual behavior

When all instances with the ELB have a status "InService" in them, then the following command hangs indefinitely:

$ curl -v http://internal-sandbox-ExternalLo-xxxx-yyyy.us-east-1.elb.amazonaws.com:8010
* Rebuilt URL to: http://internal-sandbox-ExternalLo-xxxx-yyyy.us-east-1.elb.amazonaws.com:8010/
*   Trying 10.0.140.77...
* TCP_NODELAY set
* Connected to internal-sandbox-ExternalLo-xxxx-yyyy.us-east-1.elb.amazonaws.com (10.0.140.77) port 8010 (#0)
> GET / HTTP/1.1
> Host: internal-sandbox-ExternalLo-xxxx-yyyy.us-east-1.elb.amazonaws.com:8010
> User-Agent: curl/7.59.0
> Accept: */*

The IP 10.0.140.77 is not an IP of any instance in our AWS account. I don't understand how the curl command is even connecting to it.

The above command sometimes works, when it happens to resolve to an IP of a node in my swarm. But not always. It usually fails. Only sensible hypothesis here is that 10.0.140.77 is an IP of an old instance that is somehow cached, either within ELB or locally on the node.

Information

Docker diagnostic ID:

Your diagnostics session ID is 1526990997-K7YXDRE1s2fLsjsUIh1fsVo9BLDZqk0m
Please provide this session ID to the maintainer debugging your issue.
mixja commented 6 years ago

10.0.140.77 could be a container on a Docker subnet within Swarm?