数据存储产业服务平台

CC-Tech|IPv6:如何在公有云上部署

上一篇我们讨论的IPv6相对于IPv4的诸多变化和相应的基础知识。这一篇,我们要讨论的是如何根据这些变化,具体落实到在公有云上部署一套自己的IPv6系统,以验证或者直接在IPv6的网络世界中提供自己的业务服务。

我们在海外测试IPv6的过程中,在AWS上和Azure云都做了详尽的技术对比和测试,其中的经验藉此分享给大家。

在公有云上IPv6配置部署的方式

在公有云上部署IPv6应用原理上和使用配置部署IPv4的应用和服务是一样的。然而,由于公有云底层架构的不同,具体的配置架构和方法则差距很大。总体来说,有2种方式:

  1. 直接绑定在VPC的虚机上,和IPv4并存使用
  2. 需要绑定在VPC的特定网络设备上(如Net Gateway或者Load Balancer)

下面我们就以AWS和Azure分别说明两种VPC配置IPv6的方法。

01

AWS 配置IPv6的方式

AWS的VPC配置IPv6相当的简单直接。从2016年起,AWS的EC2就已经支持IPv6了。

01 为AWS VPC添加IPv6的绑定

首先,通过https://console.aws.amazon.com/vpc/ 通过AWS console访问VPC的配置。

对于没有VPC,需要先创建VPC。

  1. 通过AWS console中,通过VPC创建向导来创建一个具有 /16 IPv4 CIDR 块的 VPC 并将一个 /56 IPv6 CIDR 块与该 VPC 关联。有关更多信息,请参阅您的 VPC。IPv6 CIDR 块的大小是固定的 (/56),IPv6 地址的范围是从 Amazon 的 IPv6 地址池中自动分配的 (不能手动自选范围)。
  2. 将 Internet 网关连接到 VPC。
  3. 在 VPC 中创建一个具有 /24 IPv4 CIDR 块和 /64 IPv6 CIDR 块的子网。IPv6 CIDR 块的大小是固定的 (/64)。
  4. 创建一个自定义路由表,并将其与您的子网相关联,以便在子网与 Internet 网关之间进行通信。

具体而言,配置IPv6 CIDR就是在第一步的VPC创建向导中实现的:

CC-Tech|IPv6:如何在公有云上部署

随后,选择第一个选项,即 VPC with a Single Public Subnet,然后选择 Select。

在配置页面上,在 VPC name 字段中为您的 VPC 输入一个名称 (例如,my-vpc),并在 Subnet name 字段中为您的子网输入一个名称。

然后,就到了配置IPv4和IPv6 CIDR的阶段。对于 IPv4 CIDR block,您可以保留默认设置 (10.0.0.0/16) 或指定自己的设置。对于 IPv6 CIDR block,则选择 Amazon-provided IPv6 CIDR block。

对于 Public subnet’s IPv4 CIDR,保留默认设置或指定您自己的设置。对于 Public subnet’s IPv6 CIDR,选择 Specify a custom IPv6 CIDR。您可以保留 IPv6 子网的默认十六进制对值 (00)。

保留页面上的其余默认配置,然后选择 Create VPC。

02 为已有的VPC添加IPv6地址

作为已经使用了IPv4搭建的EC2 instance,为其所在的VPC 添加IPv6的地址则比上文中提到的从头创建VPC就更加简单了。

首先,仍旧是通过https://console.aws.amazon.com/vpc/ 访问VPC的配置。

随后,选择左侧导航栏里的Your VPCs:

CC-Tech|IPv6:如何在公有云上部署

随后,在右侧下拉框选择Edit CIDRs:

CC-Tech|IPv6:如何在公有云上部署

这时就会看到IPv6的CIDR还没有配置:

CC-Tech|IPv6:如何在公有云上部署

直接选择“Add IPv6 CIDR”来为VPC添加IPv6。

如何查看EC2的IPv6地址

首先访问https://console.aws.amazon.com/ec2/, 进入EC2的配置界面。

然后,在左侧的导航栏里选中自己的Instance,这时,下方的具体信息栏里就可以看到这个Instance的具体配置信息,比如IPv4的内网、外网地址等。

随后,点击actions下拉菜单:

CC-Tech|IPv6:如何在公有云上部署

依次选择Networking → Manage IP Addresses:

CC-Tech|IPv6:如何在公有云上部署

02

在Azure中为VPC配置IPv6

通过在AWS中配置IPv6简直不能再简单了,然而,到了Azure,你还想鼠标点点点就配置了,那么你就错了。因为,这里只能通过Azure里portal中输入命令,或者运行脚本才能配置。

不过,这里有个好消息,就是使用Windows平台的用户,可以通过按照Azure for PowerShell的插件来在本机运行Azure命令和脚本,比起来直接访问Azure Portal 要速度快的多(想想国内打开Portal的速度……)。

除此2个方法之外,还有一个ARM模板的方法创建。

01 Azure配置的基本方法

我先讨论一下Azure VPC的IPv6的基本原则:

  • Azure 的VPC中已有VM不支持添加IPv6,只能为了支持IPv6新创建VM
  • 公网可访问的IPv6必须绑定在Load Balance上
  • 访问VM的公网IPv6Inbound通过Load Balance上的映射关系实现
  • 而出向的IPv6是另外一个绑定关系,Egress IPv6
  • 同一个VPC中,VM之间不能使用IPv6相互通信,IPv6只用于VM和外部的IPv6通信

当然,以上原则是我8月份验证的,也许Azure配置原则发生变化了,也未可知。

CC-Tech|IPv6:如何在公有云上部署

好在终于找到了一个教程,其完成的结构如上图,即一个Load Balancer对应了2个VM,这样他可以在一个VM升级改造过程中,仍旧有另一个VM提供服务。

不需要那么多VM,其实一个就够了,然而他的script显然有不少bug。 分步运行,然后逐条的排错,最后终于能够顺利运行下来了。

具体步骤如下:(如需脚本,请直接在公号后台联系我们)

  1. 建立一个新的Resource Group
  2. 建立vNet的子网
  3. 建立IPv4和IPv6的公网地址
  4. Load Balancer的公网一侧的配置
  5. Load Balancer 内网侧的配置
  6. Load Balancer 的入向NAT配置
  7. 建立RDP端口3389的探测
  8. 建立 Load Balancer上的负载均衡策略
  9. 创建Load Balancer
  10. 获取vNet信息
  11. 给VM的网卡配置IPv4、IPv6
  12. 配置VM的存储账号(硬盘)
  13. 配置Admin的用户密码
  14. 创建VM

脚本运行过程中,会不断有提示信息,所以,你要做的事就是一杯咖啡,慢慢等待。(当然,有了bug请及时删掉已经创建的内容,这个可以从portal做)。

未经允许不得转载:存储在线-存储专业媒体 » CC-Tech|IPv6:如何在公有云上部署