我有一个运行 CoreOS 1068.9.0 的 EC2 实例。
该服务器正在运行一个非常简单的 Hello World HTTP 服务器。
> curl http://52.43.128.34/
Hello, world!
我有一个弹性 IP 分配给同一子网上的网络接口。它有公共 IP 地址 54.190.35.220 和私有 IP 地址 10.8.0.104。实例的安全组和网络接口上的安全组都允许 TCP 端口 80 上来自0.0.0.0/0
.
我将网络接口添加到实例。CoreOS 日志似乎表明新 IP 添加得很好,它在 ifconfig 中显示为 eth1。
但是子网中的其他计算机无法访问HTTP服务器,外部也无法访问。VPC 内部和外部的连接均失败 - 其他计算机无法使用 访问它,curl http://10.8.0.104/
外部计算机也无法使用 访问它curl http://54.190.35.220/
。
是什么赋予了?
编辑:更多信息
- 服务器应该监听所有接口。此外,我从 SSH 服务器看到了相同的行为,所以我认为这不是 HTTP 服务器本身的问题。
- 网络 ACL 完全开放。
- 安全组都对来自 0.0.0.0/0 的 80 端口和 22 端口的流量开放。
子网的路由表:
Route Table: rtb-b6449fd1 ---------------------------- Destination | Target ---------------------------- 10.8.0.0/16 | local 0.0.0.0/0 | igw-91eb56f5 172.31.0.0/16 | pcx-f6f64e9f
我最终通过为同一个接口分配多个 IP 地址而不是向同一台机器添加多个接口来完成同样的事情。事实证明,第一种方式是内核路由的痛苦。这篇博文让我直截了当。