我有几个关于 ENI 的问题:
为什么我无法更改默认 ENI 上自动分配的私有 IP 地址?
如果我手动更改系统内部 eth0 上的 IP 会怎样?这会起作用吗,还是接口会被破坏?
我的目标是了解这些时刻,以了解 ENI 的工作原理以及它与物理网络适配器的行为有何不同。我想更深入地了解 ENI 的本质。
答案1
为什么我无法更改默认 ENI 上自动分配的私有 IP 地址?
一旦启动 EC2 实例,就会在启动时为其分配一个私有 IP 地址。实例的私有 IP 地址在该实例的生命周期内永远不会改变。根据 AWS,当在 EC2-Classic 中启动实例时,会自动从 EC2-Classic 公共 IPv4 地址池中为实例分配一个公共 IP 地址。此行为无法修改。
如果我手动更改系统内部 eth0 上的 IP 会怎样?这会起作用吗,还是接口会被破坏?
启动后,您无法手动取消公有 IP 地址与实例的关联。相反,在某些情况下,它会自动释放,之后您无法重复使用它。
欲了解更多详情,请参阅以下链接 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html
答案2
- 为什么我无法更改默认 ENI 上自动分配的私有 IP 地址?
主 ENI 无法更改。我假设 AWS 使用主接口进行 NAT 操作。但是,如果您连接另一个 ENI,则可以在猜测的操作系统内更改 IP 地址。
- 如果我手动更改系统内部 eth0 上的 IP 会怎样?这会起作用吗,还是接口会被破坏?
如果您更改它,您将中断与实例的连接,解决问题的唯一方法是重新启动实例。 IP 和 MAC 分配是在比客户操作系统高一层进行的(查看上面的链接)。
AWS 使用 Xen 作为虚拟机管理程序,这不是什么秘密。ENI 使用一种称为“netfront”(在客户操作系统端)和“netback”(在虚拟机管理程序端)的驱动程序。如果您想更深入地了解 ENI,您需要研究此文档https://wiki.xenproject.org/wiki/Xen_Networking和https://wiki.xenproject.org/wiki/Xen_Project_Software_Overview
我希望我已经阐明了这个话题。