按顺序,通过 CLI:
- 我创建了 vpc {10.1.0.0/16}
- 我创建了两个子网 {10.1.0.0/24, 10.1.1.0/24}
- 我在 10.1.0.0/24 子网中创建了具有默认 NIC 的 EC2 实例
aws ec2 run-instances --image-id $AWS_IMAGE --count 1 --instance-type $AWS_INSTANCE_TYPE --key-name $AWS_KEY_NAME --security-group-ids "$SG_ID" --subnet-id "$SUBNET_ID" --private-ip-address $AWS_GATEWAY_IP
- 我创建了一个具有 10.1.1.0/24 子网的新 NIC
aws ec2 create-network-interface --subnet-id $SEC_SUBNET_ID --groups $SG_ID --private-ip-address $AWS_GATEWAY_SEC_IP
- 我将新的 NIC 附加到之前创建的 EC2 实例
aws ec2 attach-network-interface --network-interface-id $SEC_NIC_ID --instance-id $AWS_GATEWAY_ID --device-index 1
当我通过 ssh 访问 EC2 实例时,第二个 NIC 处于关闭状态,如果我手动将其打开,它就没有其私有 IP 地址,所以我还必须手动设置它。
如何让辅助 NIC 默认启用?
答案1
您必须在 Ubuntu 上自行配置接口。多个接口(全部使用 DHCP,有时每个接口分配多个地址)不会自行配置,并且无法添加所需的策略路由,以使流量从正确的接口退出。
Amazon Linux 使用名为 ec2-net-tools 的软件包自动执行此操作。
这显然已被移植到 Ubuntu 兼容性,或者至少正在努力进行此操作:https://github.com/ademaria/ubuntu-ec2net
或者您可以启动 Amazon Linux 实例并对其执行的操作进行逆向工程。
答案2
到目前为止,我能找到的唯一解决方案是直接在机器中手动设置界面:
# sudo ifconfig eth1 up
# sudo ifconfig eth1 10.1.1.x netmask 255.255.255.0
第一个命令是启用接口,第二个命令是为其分配 IP 地址。目前我分配的 IP 与亚马逊自动分配给 NIC 的 IP 相同,我不知道设置不同的 IP 是否会导致一致性问题。