帮助与文档

我们为你提供丰富、详尽的使用指南以及产品文档

IPv6 用户指南

按照早前工信部关于贯彻落实《推进互联网协议第六版(IPv6)规模部署行动计划》通知中要求,各大云服务厂商在 2018 年末完成 50% 云产品的 IPv6 改造。 VPC 是重要的网络产品,支持 IPv4/IPv6 双栈网络。

IPv6 与 IPv4 相比,优势主要体现在两个大的方面,一个是地址空间数量可以达到2的128 次方,满足未来更多网络设备的需要,另一个则是更高的网络安全保证, IPv6 可通过对地址的管理和路由机制,使得IP层的溯源与可信验证成为可能。

注解 目前仅北京3-A 区,北京3区和广东2区支持 VPC IPv4/IPv6 双栈,且支持虚拟主机 IPv6 地址的公网接入。将来负载均衡器也会升级支持 IPv6 ,其他网络2.0区域也将逐步支持 IPv4/IPv6 双栈。

创建支持 IPv6 的网络资源

创建启用 IPv6 的 VPC

您只需要在创建专有网络 VPC 时,在 IPv6 网络地址选择“系统自动分配”即可创建支持 IPv4/IPv6 双栈的 VPC 。创建后可查看 IPv6 管理地址范围的详细信息。专有网络VPC会默认分配掩码为 /56 的IPv6地址段。

创建启用 IPv6 的私有网络

为专有网络 VPC 添加私有网络, 在 IPv6 网络地址处选择“系统自动分配”或者“手动指定”,即可创建出启用 IPv6 的私有网络。

创建完成后,即可查看私有网络的管理 IPv6 属性。私有网络的 IPv6 网络地址默认为掩码为 /64 的 IPv6 地址。

升级现有网络资源支持 IPv6

除创建新 VPC 和私有网络支持 IPv6 外,您也可升级您现有的仅支持 IPv4 的 VPC 和私有网络来支持 IPv6 。

升级 VPC 支持 IPv6

在 VPC 页面上点击“更多操作”,选择“启用 IPv6 ”,在弹出的提示框中点击“确认”,即可完成 VPC 支持 IPv6 的升级。

升级后即可看到 VPC 的 IPv6 地址范围。

升级私有网络支持 IPv6

旧有的 VPC 升级为 IPv6 以后,私有网络也可以一键升级为 IPv6 。具体方法为:在 VPC 的私有网络列表上,右键点击要升级的私有网络,在弹出的右键菜单中点击“启用 IPv6 ”。

在弹出的窗口中,选择“系统自动分配”或“手动指定”,点击“提交”即可。

创建虚拟主机并加入到启用 IPv6 的私有网络

在私有网络中,点击“创建资源”按钮,选择“主机”,按照向导选择支持 IPv6 DHCP 自动化配置的镜像完成创建主机后,可查看虚拟主机的 IPv6 地址信息。

注解 目前仅部分操作系统镜像支持 IPv6 自动化配置:centos75x64bbionic1x64cxenial5x64b(及相关操作系统以后的版本)。 若从其他的镜像启动的主机, 则未针对 DHCPv6 进行配置, 也即该主机的网络接口无法自动获取/识别 IPv6 相关网络配置, 需手动配置该主机,参考主机 IPv6 自动化配置

开通主机 IPv6 公网访问

针对获取到私有网络 IPv6 地址的虚拟主机,如果想要接入到公网,只需开通 IPv6 的公网访问即可。方法是在虚拟主机上点击右键,在弹出菜单中依次选择:“公网 IP ” – “ IPv6 接入公网”,在弹出的对话框中,为 IPv6 公网 IP 选择计费模式,点击“确定”即可。

接入公网以后,在公网 IP 页面,可查看接入公网的 IPv6 地址详情,以及计费和监控的具体信息:IPv6公网 IP

与 IPv4 公网 IP 一样, IPv6 的公网 IP 支持“带宽计费”和“流量计费”两种模式。

我们秉持 IPv6 协议本身“地址无限”的理念, IPv6 地址免费,只对使用流量和带宽收费。

防火墙开通 IPv6 协议

为了保证您的主机安全,在虚拟主机 IPv6 接入公网时自动加载防火墙以保证您的访问安全。因此接入公网之后,您需要在虚拟主机的防火墙上开通 IPv6 的相关访问协议。

注解 在启用 IPv6 后,除 IPv6 ICMP(ping6)需额外配置,其他在您防火墙里的策略规则会同时应用到 IPv6 地址。 “IP/端口集合”功能同样适用于 IPv6 ,您也可以用此功能实现对 IPv6 地址/端口的批量管理。

至此,您就可以轻松的体验 IPv6 带来的种种好处了。

主机 IPv6 自动化配置

对于使用不支持 IPv6 自动化配置的镜像所启动的主机,通过对主机进行手动配置, 也可以开启 IPv6 自动化配置 。

青云的网络采用了DHCPv6,用户主机需要以DHCPv6的方式获取到IPv6地址,并通过Network Discovery Protocol里的Router Advertisement来自动路由寻址。

主机内要配置支持 DHCPv6,主要包括三个要点:

  1. 需要配置 DUID 的类型为 DUID-LLT
  2. 需要在关闭网络时,及时清理 lease 文件,确保切换网络时 duid 不会缓存在 lease 文件里。
  3. 配置 sysctl accept_dad 为 0。DAD 功能会避免 IPv6 地址重复分配。在青云,会通过 DHCP 机制避免地址重复分配;且底层实现有对 IPv6 实现地址代答功能,可能会导致主机内 IPv6 地址变为 ‘duplicated’,所以需要关闭 DAD。

此外,不同操作系统、不同发行版的配置方法是不同的,需要根据您的操作系统版本和网络管理工具,并查阅相关文档,进行合理正确配置。

下面的文档包括了 CentOS 7.5 / Ubuntu 18.04 / Ubuntu 16.04 的配置方法(如有其它发行版的需求,建议您通过提工单来技术交流)。

配置完成后,需要重启主机,以确保您的配置生效。

Centos 7.5

以下操作基于镜像ID: centos75x64a

  1. 升级 NetworkManager至1.12 NetworkManager 1.12 以后,才支持 dhcp-duid 配置。

     [root@ipv6-12 ~]# NetworkManager --version
     1.10.2-13.el7
     [root@ipv6-12 ~]# yum update NetworkManager
     [root@ipv6-12 ~]#
    
  2. 配置 /etc/NetworkManager/NetworkManager.conf,增加 ipv6.dhcp-duid 配置:

     [root@ipv6-12 ~]# vi /etc/NetworkManager/NetworkManager.conf
     [main]
     plugins=ifcfg-rh,keyfile
    
     [connection]
     ipv6.dhcp-duid=llt
     [root@ipv6-12 ~]#
    
  3. 配置 ifcfg-eth0

     [root@ipv6-12 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
     TYPE=Ethernet
     NAME=eth0
     DEVICE=eth0
     BOOTPROTO=dhcp
     ONBOOT=yes
     IPV6INIT=yes
     IPV6_AUTOCONF=no
     IPV6_FAILURE_FATAL=no
     DHCPV6C=yes
     [root@ipv6-12 ~]#
    
  4. 配置 down hook 清理 dhcp6 的 lease,避免切换网络时,DUID 还包含老的 MAC 信息。

     [root@ipv6-12 ~]# vi /etc/NetworkManager/dispatcher.d/dhclient-down-hooks.sh
     #!/bin/sh
    
     RUN="yes"
     if [ "${RUN}" != "yes" ]; then
         exit 0
     fi
    
     if [ "${NM_DISPATCHER_ACTION}" != "down" ]; then
         exit 0
     fi
    
     interface=${DEVICE_IFACE}
    
     f_leases="/var/lib/NetworkManager/dhclient*-${interface}.lease"
    
     rm -f ${f_leases};
     [root@ipv6-12 ~]# chmod u+x /etc/NetworkManager/dispatcher.d/dhclient-down-hooks.sh
     [root@ipv6-12 ~]#
    
  5. 关闭 DAD,在/etc/sysctl.conf里配置:

     [root@ipv6-12 ~]# vi /etc/sysctl.conf
     net.ipv6.conf.eth0.accept_dad = 0
     net.ipv6.conf.eth0.accept_ra = 1
     net.ipv6.conf.eth0.accept_ra_defrtr = 1
     net.ipv6.conf.eth0.accept_ra_rtr_pref = 1
     net.ipv6.conf.eth0.accept_ra_rt_info_max_plen = 1
     [root@ipv6-12 ~]#
    

Ubuntu 18.04

以下操作基于镜像ID: bionic1x64a

  1. 安装 ifupdown,使用 networking 来管理网络:

     [root@ipv6-02 ~]# apt-get update
     [root@ipv6-02 ~]# apt-get install ifupdown -y
     [root@ipv6-02 ~]#
    
  2. 禁用 netplan / systemd-networkd / networkd-dispatcher

     [root@ipv6-02:~]# echo > /etc/netplan/50-cloud-init.yaml
     [root@ipv6-02:~]# systemctl disable systemd-networkd
     [root@ipv6-02:~]# systemctl disable networkd-dispatcher
    
  3. 修改 interfaces 配置文件, allow-hotplug

     [root@ipv6-02:~]# mkdir -p /etc/network/interfaces.d/
     [root@ipv6-02:~]# vi /etc/network/interfaces
     source /etc/network/interfaces.d/*.cfg
    
     auto lo
     iface lo inet loopback
    
     [root@ipv6-02:~]# vi /etc/network/interfaces.d/50-cloud-init.cfg
     allow-hotplug eth0
     iface eth0 inet dhcp
    
     [root@ipv6-02:~]# vi /etc/network/interfaces.d/60-default-with-ipv6.cfg
     iface eth0 inet6 dhcp
         autoconf 0
     [root@ipv6-02 ~]#
    
  4. 配置 down hook dhclient 会把 v4/v6的配置互做 backup 来确保使用相同的 duid ,所以两个 leases 都需要删除。

     [root@ipv6-02:~]# vi /etc/network/if-post-down.d/lease_clean
     #!/bin/sh
    
     f6_leases="/var/lib/dhcp/dhclient6.${IFACE}.leases"
     f4_leases="/var/lib/dhcp/dhclient.${IFACE}.leases"
    
     if [ -e ${f6_leases} ]; then
         rm -f ${f6_leases};
     fi
    
     if [ -e ${f4_leases} ]; then
         rm -f ${f4_leases};
     fi
     [root@ipv6-02:~]# chmod u+x /etc/network/if-post-down.d/lease_clean
     [root@ipv6-02:~]#
    
  5. 关闭DAD,在/etc/sysctl.conf里加一行:

     [root@ipv6-02 ~]# vi /etc/sysctl.conf
     net.ipv6.conf.eth0.accept_dad = 0
     [root@ipv6-02 ~]#
    

Ubuntu 16.04

以下操作基于镜像ID: xenial5x64a

  1. 修改interfaces 配置文件,allow-hotplug

     [root@ipv6-02:~]# mkdir -p /etc/network/interfaces.d/
     [root@ipv6-02:~]# vi /etc/network/interfaces
     source /etc/network/interfaces.d/*.cfg
    
     auto lo
     iface lo inet loopback
    
     [root@ipv6-02:~]# vi /etc/network/interfaces.d/50-cloud-init.cfg
     allow-hotplug eth0
     iface eth0 inet dhcp
    
     [root@ipv6-02:~]# vi /etc/network/interfaces.d/60-default-with-ipv6.cfg
     iface eth0 inet6 dhcp
         autoconf 0
     [root@ipv6-02:~]#
    
  2. 配置 down hook dhclient 会把 v4/v6的配置互做 backup 来确保使用相同的 duid,所以两个 leases 都需要删除。

     [root@ipv6-02:~]# vi /etc/network/if-post-down.d/lease_clean
     #!/bin/sh
    
     f6_leases="/var/lib/dhcp/dhclient6.${IFACE}.leases"
     f4_leases="/var/lib/dhcp/dhclient.${IFACE}.leases"
    
     if [ -e ${f6_leases} ]; then
         rm -f ${f6_leases};
     fi
    
     if [ -e ${f4_leases} ]; then
         rm -f ${f4_leases};
     fi
     [root@ipv6-02:~]# chmod u+x /etc/network/if-post-down.d/lease_clean
    
  3. 关闭DAD,在/etc/sysctl.conf里加一行:

     [root@ipv6-02 ~]# vi /etc/sysctl.conf
     net.ipv6.conf.eth0.accept_dad = 0
     [root@ipv6-02 ~]#