我有一个设置了公有子网和私有子网的基本 Amazon VPC。我在公有子网中部署了一个 Vyatta 路由器,该路由器对私有子网进行 NAT。我为 Vyatta 实例分配了一个弹性 IP 地址,该地址对 Vyatta 的 eth0 接口的私有 IP 进行 1:1 NAT。
问题:我正在从 Vyatta 实例构建 ipsec VPN,这需要 Vyatta 实例知道它当前没有的公共 IP 地址。有没有办法将公共弹性 IP 地址直接分配给 eth0 接口?
如果没有,是否有人知道在配置了 ipsec VPN 的 VPC 中使用 Vyatta 的解决方法?
谢谢!
答案1
有没有办法将公共弹性 IP 地址直接分配给 eth0 接口?
没有。往返于 EC2 实例的 Internet 流量总是穿越弹性 IP 1:1 NAT 基础设施。
如果没有,是否有人知道在配置了 ipsec VPN 的 VPC 中使用 Vyatta 的解决方法?
我在 VPC 中运行了各种 IPsec(包括跨越 NAT 边界的 IPSec 隧道),没有任何问题。你认为为什么需要将公共地址直接分配给主机?从 IPsec 的角度来看,这不是一项要求。
答案2
正如 EEAA 所提到的,您实际上无法将弹性 IP 分配给实例上的接口。这不是 EC2 公共路由 IP 的工作方式。
我不确定它对你有多大帮助,但如果你确实想以编程方式了解 IP,你可以从元数据“API”中查询它:
curl -s http://169.254.169.254/latest/meta-data/public-ipv4
如果为实例分配了弹性 IP,则会将其打印到标准输出。