有没有办法查看 AWS 认为已在子网中分配了哪些 IP 地址?我运行了 ping 扫描,并检查了我们的内部 IP 管理软件,应该有超过 8 个可用的 IP,但是网络负载均衡器创建向导坚持认为我拥有的可用 IP 少于 8 个。
如果我能看到亚马逊认为我们正在使用的 IP,那就太棒了,这样我就能知道差异是什么,但我看不出有什么办法。有人知道我该怎么做吗?它需要显示所有分配的 IP,而不仅仅是连接到 ec2 实例的 IP。
答案1
您的计数可能不准确,因为 AWS 为每个子网 CIDR 块保留了五个 IP 地址。子网 CIDR 块中的前四个 IP 地址和该 CIDR 块中的最后一个 IP 地址用于其内部网络。
例如,在 10.0.0.0/24 子网中,AWS 将保留:
10.0.0.0:网络地址。
10.0.0.1:AWS 为 VPC 路由器保留。
10.0.0.2:由 AWS 保留。DNS 服务器的 IP 地址是 VPC 网络范围的基数加二。对于具有多个 CIDR 块的 VPC,DNS 服务器的 IP 地址位于主 CIDR 中。我们还为 VPC 中的所有 CIDR 块保留每个子网范围的基数加二。有关更多信息,请参阅 Amazon DNS 服务器。
10.0.0.3:由 AWS 保留以供将来使用。
10.0.0.255:网络广播地址。我们不支持在 VPC 中进行广播,因此我们保留此地址。
要从命令行获取正在使用的 IP 地址列表:
aws ec2 describe-network-interfaces --filters Name=subnet-id,Values=<subnet id> |jq -r '.NetworkInterfaces[].PrivateIpAddress' |sort
使用subnet-id
过滤器可以排除您不关心的子网。
如果您想要计数,只需替换sort
为wc -l
。
您可以在 AWS 控制台的 VPC -> 子网部分直观地看到每个子网的可用 IP 数量。
参考
答案2
在EC2 控制台去网络接口在左侧栏中向下查看。它将显示分配给 EC2 的所有网络接口,还包括 Fargate、RDS、VPC Lambdas、NAT 网关等。
还请注意,每个 VPC 和子网中都保留了几个 IP - Internet 网关 (IGW)、AWS DNS 等。保留的是前 4 个和最后一个 IP。这些 IP 不会显示在上面的列表中。
希望有帮助:)