给一台腾讯云服务器配上4/12/20个免费外网弹性IP

一、申请弹性网卡与弹性IP:

根据腾讯云服务器网卡相关的限制规则:

https://cloud.tencent.com/document/product/213/15379#.E7.BD.91.E5.8D.A1.E7.9B.B8.E5.85.B3.E9.99.90.E5.88.B6

根据 CPU 和内存配置不同,云服务器可以绑定的弹性网卡数和单网卡绑定 IP 数如下表所示:

云服务器配置 弹性网卡数 网卡绑定 IP 数 单台机器总计 IP 数
CPU: 1核 内存: 1G 2 2 4
CPU: 1核 内存: > 1G 2 6 12
CPU: 2核 2 10 20
...

可知单台机器至少可配置4个弹性IP,接下来就以4个弹性IP为例,进行描述。

1、申请弹性网卡

首先,需要在腾讯云控制台 私有网络 中申请 2个弹性网卡

https://console.cloud.tencent.com/vpc/eni

并且将两个弹性网卡的 所属网络、所属子网绑定云主机安全组 都配置为同一个,

弹性网卡的主内网IP可分配为:172.19.1.1、172.19.2.1

这样就机器就拥有了两个网关相同的网卡。

2、申请弹性IP

https://console.cloud.tencent.com/cvm/eip

根据规则,一个区域最多可申请20个弹性IP,绑定的弹性IP不计费,空闲的弹性IP按时计费

在这里我们申请4个需要用到的外网弹性IP。

3、绑定弹性IP至弹性网卡

进入弹性网卡管理页面,对IP进行管理:

首先,分配更多的内网IP:

弹性网卡 内网IP
弹性网卡1 172.19.1.1、172.19.1.2 (更多IP可继续申请)
弹性网卡2 172.19.2.1、172.19.2.2 (更多IP可继续申请)

接着,将申请得到的弹性IP绑定到内网IP上,一个内网IP对应一个弹性IP。

到此,服务器上已成功绑定了4个外网弹性IP。

二、配置服务器

这里以  Ubuntu 18.04.1 LTS 为例,利用 iproutenetplan 工具进行配置。

1、编辑 iproute 配置文件:

$ vim /etc/iproute2/rt_tables

为每一个IP配置路由表,在文字底部新增:

#
# local
#
#1      inr.ruhep
111     eth0:1
112     eth0:2
121     eth1:1
122     eth1:2
# 更多ip可继续新增

2、编辑 netplan 配置文件:

$ vim /etc/netplan/config.yaml

编辑文件

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:            # 弹性网卡1
      dhcp4: true
      addresses:
        - 172.19.1.1/20        # 弹性网卡1 - 内网IP段1
        - 172.19.1.2/20        # 弹性网卡1 - 内网IP段2
      routes:
        - to: 0.0.0.0/0
          via: 172.19.1.1        # 弹性网卡1 - 内网IP1
          table: 111             # 与上文 iproute table eth0:1 对应
        - to: 0.0.0.0/0
          via: 172.19.1.2        # 弹性网卡1 - 内网IP2
          table: 112             # 与上文 iproute table eth0:2 对应
      routing-policy:
        - from: 172.19.1.1       # 弹性网卡1 - 内网IP1
          table: 111             # 与上文 iproute table eth0:1 对应
        - from: 172.19.1.2       # 弹性网卡1 - 内网IP2
          table: 112             # 与上文 iproute table eth0:2 对应
    eth1:            # 弹性网卡2
      dhcp4: true
      addresses:
        - 172.19.2.1/20        # 弹性网卡2 - 内网IP段1
        - 172.19.2.2/20        # 弹性网卡2 - 内网IP段2
      routes:
        - to: 0.0.0.0/0
          via: 172.19.2.1        # 弹性网卡2 - 内网IP1
          table: 121             # 与上文 iproute table eth1:1 对应
        - to: 0.0.0.0/0
          via: 172.19.2.2        # 弹性网卡2 - 内网IP2
          table: 122             # 与上文 iproute table eth1:2 对应
      routing-policy:
        - from: 172.19.2.1       # 弹性网卡2 - 内网IP1
          table: 121             # 与上文 iproute table eth1:1 对应
        - from: 172.19.2.2       # 弹性网卡2 - 内网IP2
          table: 122             # 与上文 iproute table eth1:2 对应

3、使配置生效

$ netplan apply

至此,完成配置,可用以下命令检测是否生效。

ifconfig ip addr ip rule ip route

尝试每一个IP是否能通。