我在 VPC 中启动了一个 c3.xlarge ubuntu 实例。此实例支持 4 个接口。我使用 ec2 python API 来 create_network_interface 和 append_network_interface 来添加 eth1、eth2 和 eth3。在 AWS 控制台上,实例已启动并正在运行。所有 4 个网络接口都显示在 AWS 控制台中,并带有正确的子网 ID。
当我通过 ssh 进入实例并使用“ifconfig”显示接口时,只显示 eth0。如果我使用“ifconfig -a”,我可以看到 eth0-3,但只有 eth0 分配了 IP 地址。
我遗漏了什么吗?提前致谢……
编辑:从 AWS 控制台 EC2 仪表板,我单击了实例->描述,向下滚动以查看“网络接口”部分,它显示了所有 eth0、eth1、eth2 和 eth3。如果我单击 eth1 - eth3,它们都会显示如下 IP 地址和状态:网络接口 eth1 接口 ID eni-119f304f VPC ID vpc-873db7e2 附件所有者 17xxxxxxxx79 附件状态已附加 附件时间 2016 年 9 月 9 日星期五 10:58:58 GMT-700 终止时删除 false 私有 IP 地址 10.31.2.12 私有 DNS 名称 ip-10-31-2-12.us-west-2.compute.internal
弹性 IP 地址
源/目标检查 true 描述 cluster001-demux-peer1 安全组 cluster001-demux
从 AWS 的角度来看,私有 IP 地址是创建并分配给这些网络接口的。
/etc/network/interfaces 显示正常情况:auto lo iface lo inet loopback
# Source interfaces
# Please check /etc/network/interfaces.d before changing this file
# as interfaces may have been defined in /etc/network/interfaces.d
# NOTE: the primary ethernet device is defined in
# /etc/network/interfaces.d/eth0
# See LP: #1262951
source /etc/network/interfaces.d/*.cfg
答案1
您没有遗漏太多。只有 eth0 有 IP,因此默认情况下 ifconfig 只会显示该 IP。其他接口要么需要 IP,要么在您的接口文件中没有配置,要么在其第二层广播域上没有 dhcp 服务。
提供 /etc/networks/interfaces 的内容怎么样,这样我们就能知道应该是什么了?也就是说,如果您不能立即发现问题的话。
答案2
我明白了。我需要在 Python API create_network_interface 和 attachment_network_interface 之间添加一个延迟,例如 time.sleep(1)。这不是必需的,但现在看来 AWS 基础设施已经发生了变化,我确实需要添加这个延迟。它现在正在工作……