如何在GCE上为单个实例分配多个传出IP地址?

时间:2018-09-07 14:36:48

标签: google-compute-engine

一个人如何在Google Compute Engine的同一台计算机上分配多个临时外部IP地址? Web界面仅讨论主要IP地址,但我没有提及添加更多地址。

我在https://stackoverflow.com/a/39963576/14731处发现了一个相关问题,但重点是将多个传入 IP路由到同一实例。

我的应用程序是一个Web客户端,需要从多个源IP建立多个传出连接。

1 个答案:

答案 0 :(得分:1)

是的,有可能,并执行以下步骤:

  1. 根据需要的接口创建相同数量的VPC(网络)
  2. 在每个VPC内创建一个子网,并确保它们不重叠
  3. 在第一个VPC中添加防火墙规则,以允许您所在位置的SSH
  4. 创建具有多个接口的实例(每个VPC一个),并为每个实例分配外部地址
  5. 通过第一个VPC上的地址
  6. SSH到您的实例
  7. Configure a separate routing table for each network interface

您必须了解的事情:

  • 您只能在创建实例时添加界面
  • 我在配置路由表时遇到了一个错误,但是它起作用了(RTNETLINK答案:文件存在)
  • 辅助接口的路由表未持久,您必须管理该操作

结果

yann@test-multiple-ip:~$ ip a
[...]
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 42:01:c0:a8:00:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.2/32 brd 192.168.0.2 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::4001:c0ff:fea8:2/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 42:01:c0:a8:01:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/32 brd 192.168.1.2 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::4001:c0ff:fea8:102/64 scope link 
       valid_lft forever preferred_lft forever

yann@test-multiple-ip:~$ curl --interface eth0 ifconfig.co
35.241.195.172
yann@test-multiple-ip:~$ curl --interface eth1 ifconfig.co
35.241.253.41