计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive

动态获取IPv6地址

更新时间:2024-07-24 GMT+08:00

操作场景

IPv6的使用,可以有效弥补IPv4网络地址资源有限的问题。如果当前云服务器使用IPv4,那么启用IPv6后,云服务器可在双栈模式下运行,即云服务器可以拥有两个不同版本的IP地址:IPv4地址和IPv6地址,这两个IP地址都可以进行内网/公网访问。

按照约束与限制中的网络环境要求创建的云服务器,有些不能动态获取到IPv6地址,需要进行相关配置才行。如果云服务器使用的是公共镜像,则支持情况如下:

  • Windows公共镜像默认已开启IPv6动态获取功能,无需配置,文中的Windows 2012操作系统Windows 2008操作系统部分供您验证、参考。
  • Linux公共镜像开启动态获取IPv6功能时,需要先判断是否支持IPv6协议栈,再判断是否已开启动态获取IPv6。目前,所有Linux公共镜像均已支持IPv6协议栈。

约束与限制

  • 请确保云服务器所在的子网已开启IPv6功能。

    云服务器所在子网未开启IPv6功能,需参考开启云服务器的IPv6功能进行开启,开启后不允许关闭。

  • 请确保创建云服务器时已选择“自动分配IPv6地址”。
  • 云服务器启动之后动态插拔的网卡不支持IPv6地址动态获取功能。
  • 弹性云服务器支持IPv6双栈,裸金属服务器不支持。
  • 同一个网卡上,只能绑定一个IPv6地址。

操作导航

  • Windows系统:本文以Windows 2012版本、Windows 2008版本为例,介绍Windows操作系统启用IPv6的方法,如表1所示。
  • Linux系统:本文提供了自动配置、手动配置两种方式启用IPv6,推荐您使用自动配置方法,如表1所示。

    对于CentOS 6.x和Debian操作系统,云服务器内部配置IPv6自动获取功能之后,将该云服务器制作为私有镜像,使用该镜像在非IPv6网络环境中创建云服务器时,由于等待获取IPv6地址超时,导致云服务器启动较慢,此时您可以参考设置云服务器获取IPv6地址超时时间操作。

表1 不同操作系统启用IPv6操作指导

操作系统

方式

操作指导

Windows 2012

自动配置启用IPv6

Windows 2012操作系统

Windows 2008

自动配置启用IPv6

Windows 2008操作系统

Linux

自动配置启用IPv6(推荐)

Linux操作系统(自动配置启用IPv6)

Linux

手动配置启用IPv6

Linux操作系统(手动配置启用IPv6)

开启云服务器的IPv6功能

开启子网的IPv6网段

说明:

云服务器所属子网的IPv6功能开启后会自动分配IPv6网段,开启后不允许关闭。

  1. 登录管理控制台。
  1. 选择“计算 > 弹性云服务器”。
  2. 单击待开启IPv6功能的弹性云服务器,进入详情页面。
  3. 单击“虚拟私有云”名称,进入弹性云服务器所属虚拟私有云列表。
  4. 在虚拟私有云列表中,单击“子网个数”列对应的数字超链接。

    进入子网列表页面。

  5. 在子网列表中,单击待修改的子网名称超链接。

    进入子网详情页面。

  6. 在子网详情页,单击“开启IPv6”。
  7. 单击“是”,完成子网IPv6网段的开启。

开启云服务器网卡的IPv6功能

  1. 返回弹性云服务器详情页面。
  2. 在“弹性网卡”页签,单击网卡折叠面板右上角的“开启IPv6”。
    说明:
    • 若不再使用弹性云服务器的IPv6功能,可以在当前页面单击“关闭IPv6”,关闭网卡的IPv6功能,关闭后该网卡的“IPv6地址”为空。
    • 关闭IPv6后,如果重新开启弹性云服务器的IPv6,在重启云服务器后,需要登录弹性云服务器手动清理IPv6缓存,并重新请求获取IPv6地址。
  3. 单击“是”,完成开启网卡的IPv6功能。

Windows 2012操作系统

  1. 检查是否启用IPv6。

    打开cmd窗口,执行如下命令,查看当前云服务器是否启用IPv6。

    ipconfig

    • 如果已启用IPv6,则会显示IPv6的地址。
      图1 显示IPv6的地址
    • 如果显示只有本地链接IPv6地址,则表示无法动态获取到IPv6地址。请执行2
      图2 本地链接IPv6地址
    • 如果未启用IPv6,则不会显示IPv6的地址。请执行3
      图3 未启用IPv6
      说明:

      Windows公共镜像默认已经配置了IPv6动态获取功能,即回显如图1所示,无需特殊配置。

  2. 配置动态获取IPv6。

    1. 单击“开始 > 控制面板”。
    2. 单击“网络和共享中心”。
    3. 单击以太网连接。
      图4 以太网连接
    4. 在以太网状态的弹窗中单击左下角的“属性”。
    5. 勾选“Internet协议版本 6 (TCP/IPv6)”,然后单击“确定”。
      图5 配置动态获取IPv6
    6. 执行1检查是否已开启动态获取IPv6。

  3. 启用和配置IPv6。

    1. 在“Internet 协议版本 6(TCP/IPv6)属性”弹窗中,配置云服务器的IPv6地址和DNS服务器地址。
      • IPv6地址:创建云服务器时分配的IPv6地址,请从控制台云服务器的列表页面获取。
      • 子网前缀长度:64
      • DNS服务器:推荐使用240c::6666
      图6 在控制台获取IPv6地址
    2. (可选配置)根据操作系统不同请分别执行以下命令。

      Windows Server 2012操作系统云服务器请在PowerShell或者cmd中执行如下命令:

      Set-NetIPv6Protocol -RandomizeIdentifiers disabled

    3. 执行1检查是否已开启动态获取IPv6。

Windows 2008操作系统

  1. 检查是否启用IPv6。

    打开cmd窗口,执行如下命令,查看当前云服务器是否启用IPv6。

    ipconfig

    • 如果已启用IPv6,则会显示IPv6的地址。
      图7 显示IPv6的地址
    • 如果显示只有本地链接IPv6地址,则表示无法动态获取到IPv6地址。请执行2
      图8 本地链接IPv6地址
    • 如果未启用IPv6,则不会显示IPv6的地址。请执行3
      图9 未启用IPv6
      说明:

      Windows公共镜像默认已经配置了IPv6动态获取功能,即回显如图7所示,无需特殊配置。

  2. 配置动态获取IPv6。

    1. 单击“开始 > 控制面板”。
    2. 单击“网络和共享中心”。
    3. 左键单击“更改适配器设置”。
    4. 右键单击网络连接并选择“属性”。
    5. 勾选“Internet协议版本 6 (TCP/IPv6)”,然后单击“确定”。
      图10 配置动态获取IPv6
    6. 执行1检查是否已开启动态获取IPv6。

  3. 启用和配置IPv6。

    1. 选择“开始 > 控制面板 > 网络连接 > 本地连接”。
    2. 选择“属性”,确认勾选以下选项后单击“安装”。
      图11 启用和配置IPv6
    3. 选择“协议”,然后单击“添加”。
      图12 添加协议
    4. 在网络协议列表中选择“Microsoft TCP/IP版本 6”,然后单击“确定”。
      图13 网络协议列表
    5. (可选配置)根据操作系统不同请分别执行以下命令。

      Windows Server 2008操作系统云服务器请在PowerShell或者cmd中执行如下命令:

      netsh interface ipv6 set global randomizeidentifiers=disable

      设置云服务器先禁用本地连接,再重启本地连接。

      禁用本地连接:单击“开始 > 控制面板 > 网络和共享中心 > 更改适配器配置”,选择本地连接,单击右键选择“禁用”。

      重启本地连接:单击“开始 > 控制面板 > 网络和共享中心 > 更改适配器配置”,选择本地连接,单击右键选择“启用”。

    6. 执行1检查是否已开启动态获取IPv6。

Linux操作系统(自动配置启用IPv6)

ipv6-setup-xxx工具能为开启IPv6协议栈的Linux操作系统自动配置动态获取IPv6地址。其中,xxx表示工具系列:rhel或debian。

您也可以参考Linux操作系统(手动配置启用IPv6)手动配置启用IPv6。

注意:
  • ipv6-setup-xxx工具运行时会自动重启网络服务,导致网络短暂不可用。
  • CentOS 6.x和Debian操作系统的云服务器内部配置IPv6自动获取功能之后,将该云服务器制作为私有镜像,使用该镜像在非IPv6网络环境中创建云服务器时,由于等待获取IPv6地址超时,导致云服务器启动较慢,您可以参考设置云服务器获取IPv6地址超时时间设置获取IPv6地址超时时间为30s,然后再重新制作私有镜像。
  1. 执行如下命令,查看当前云服务器是否启用IPv6。

    ip addr

    • 如果没有开启IPv6协议栈,则只能看到IPv4地址,如下图所示,请参考设置云服务器获取IPv6地址超时时间先开启IPv6协议栈。
      图14 云服务器未开启IPv6协议栈
    • 如果已开启IPv6协议栈,则可以看到LLA地址(fe80开头)。
      图15 云服务器已开启IPv6协议栈
    • 如果已开启IPv6协议栈并且已获取到IPv6地址,则会看到如下地址:
      图16 云服务器已开启IPv6协议栈并且已获取到IPv6地址
    说明:

    Linux公共镜像均已开启IPv6协议栈,如图15所示;

  2. 开启Linux云服务器IPv6协议栈。

    1. 执行如下命令,确认内核是否支持IPv6协议栈。

      sysctl -a | grep ipv6

      • 如果有输出信息,表示内核支持IPv6协议栈。
      • 如果没有任何输出,说明内核不支持IPv6协议栈,需要执行2.b加载IPv6模块。
    2. 执行以下命令,加载IPv6模块。

      modprobe ipv6

    3. 修改“/etc/sysctl.conf”配置文件,增加如下配置:

      net.ipv6.conf.all.disable_ipv6=0

    4. 保存配置并退出,然后执行如下命令,加载配置。

      sysctl -p

  3. 自动配置启用IPv6。

    1. 下载对应系统版本的工具ipv6-setup-rhel或ipv6-setup-debian,并上传至待操作的云服务器。

      ipv6-setup-xxx工具会添加或者修改网卡设备的配置文件,添加IPv6动态获取的配置信息,然后重启网卡或者网络服务。

      ipv6-setup-rhel和ipv6-setup-debian的工具下载地址请联系管理员获取。

    2. 执行以下命令,添加执行权限。

      chmod +x ipv6-setup-xxx

    3. 执行以下命令,指定一个网卡设备,配置动态获取IPv6地址。

      ./ipv6-setup-xxx --dev [dev]

      示例:

      ./ipv6-setup-xxx --dev eth0

      说明:
      • 如需对所有网卡配置动态获取IPv6地址,命令为./ipv6-setup-xxx,即不带参数。
      • 如需查询工具的用法,请执行命令./ipv6-setup-xxx --help

Linux操作系统(手动配置启用IPv6)

注意:

CentOS 6.x和Debian操作系统的云服务器内部配置IPv6自动获取功能之后,将该云服务器制作为私有镜像,使用该镜像在非IPv6网络环境中创建云服务器时,由于等待获取IPv6地址超时,导致云服务器启动较慢,您可以参考设置云服务器获取IPv6地址超时时间设置获取IPv6地址超时时间为30s,然后再重新制作私有镜像。

  1. 执行如下命令,查看当前云服务器是否启用IPv6。

    ip addr

    • 如果没有开启IPv6协议栈,则只能看到IPv4地址,如下图所示,请参考2先开启IPv6协议栈。
      图17 未开启IPv6协议栈
    • 如果已开启IPv6协议栈,则可以看到LLA地址(fe80开头)。
      图18 已开启IPv6协议栈
    • 如果已开启IPv6协议栈并且已获取到IPv6地址,则会看到如下地址:
      图19 已开启IPv6协议栈并且已获取到IPv6地址
    说明:

    Linux公共镜像均已开启IPv6协议栈,如图18所示;

  2. 开启Linux云服务器IPv6协议栈。

    1. 执行如下命令,确认内核是否支持IPv6协议栈。

      sysctl -a | grep ipv6

      • 如果有输出信息,表示内核支持IPv6协议栈。
      • 如果没有任何输出,说明内核不支持IPv6协议栈,需要执行2.b加载IPv6模块。
    2. 执行以下命令,加载IPv6模块。

      modprobe ipv6

    3. 修改“/etc/sysctl.conf”配置文件,增加如下配置:

      net.ipv6.conf.all.disable_ipv6=0

    4. 保存配置并退出,然后执行如下命令,加载配置。

      sysctl -p

  3. 手动配置启用IPv6。操作系统不同,步骤有所差别。

    • Ubuntu 18.04/20.04操作系统云服务器配置动态获取IPv6。
      1. 执行以下命令,进入“/etc/netplan/”。

        cd /etc/netplan

      2. 执行以下命令,查询配置文件名。

        ls

        图20 查询配置文件名
      3. 执行以下命令,编辑“01-network-manager-all.yaml”配置文件。

        vi 01-network-manager-all.yaml

      4. 在“01-network-manager-all.yaml”下增加如下内容,注意yaml文件格式及缩进:
        ethernets:
         eth0:
          dhcp6: true
        图21 修改结果

        修改完成后保存退出。

      5. 执行以下命令,使更改生效。

        sudo netplan apply

    • Ubuntu 22.04操作系统云服务器配置动态获取IPv6。
      1. 执行以下命令,进入“/etc/netplan/”。

        cd /etc/netplan

      2. 执行以下命令,查询配置文件名。

        ls

        图22 查询配置文件名
      3. 执行以下命令,编辑“01-netcfg.yaml”配置文件。

        vi 01-netcfg.yaml

      4. 在“01-netcfg.yaml”中增加如下内容,注意yaml文件格式及缩进:
        ethernets:
         eth0:
          dhcp6: true
        图23 修改结果

        修改完成后保存退出。

      5. 执行以下命令,使更改生效。

        sudo netplan apply

      6. 执行以下命令,编辑“/etc/NetworkManager/NetworkManager.conf”文件。

        vi /etc/NetworkManager/NetworkManager.conf

      7. 在“NetworkManager.conf”中增加如下内容,注意文件格式及缩进:
        [main]
        plugins=ifupdown,keyfile
        dhcp=dhclient
        
        [ifupdown]
        managed=true
        
        [device]
        wifi.scan-rand-mac-address=no
        图24 修改结果
      8. 执行以下命令,使配置生效。

        systemctl restart NetworkManager

    • Debian操作系统云服务器配置动态获取IPv6。
      1. 编辑“/etc/network/interfaces”文件,使之包含以下内容:
        auto lo 
        iface lo inet loopback 
        auto eth0
        iface eth0 inet dhcp
        iface eth0 inet6 dhcp 
             pre-up sleep 3
      2. 如果有多个网卡,则在“/etc/network/interfaces”文件中,增加对应网卡的配置,以eth1为例,需要增加:
        auto eth1
        iface eth1 inet dhcp
        iface eth1 inet6 dhcp 
             pre-up sleep 3
      3. 执行如下命令重启网络服务。

        service networking restart

        说明:

        如果将网卡进行down/up操作之后无法获取IPv6地址,也可以通过此命令重启网络服务。

      4. 执行步骤1检查是否已开启动态IPv6。
    • CentOS/EulerOS/Fedora操作系统云服务器配置动态获取IPv6。
      1. 编辑主网卡配置文件“/etc/sysconfig/network-scripts/ifcfg-eth0”。
        补充如下配置项:
        IPV6INIT=yes
        DHCPV6C=yes
      2. 编辑“/etc/sysconfig/network”,按如下所示添加或修改以下行。
        NETWORKING_IPV6=yes
      3. CentOS 6系列从网卡需要编辑对应的配置文件,以eth1为例,编辑“/etc/sysconfig/network-scripts/ifcfg-eth1”。
        补充如下配置项:
        IPV6INIT=yes
        DHCPV6C=yes

        CentOS 6.3系统中默认ip6tables会过滤dhcpv6-client请求,所以CentOS 6.3除了需要编辑“ifcfg-eth*”文件外,还需要额外添加一条允许dhcpv6-client请求的ip6tables规则。操作如下:

        1. 执行以下命令,添加ip6tables规则。

          ip6tables -A INPUT -m state --state NEW -m udp -p udp --dport 546 -d fe80::/64 -j ACCEPT

        2. 执行以下命令,保存ip6tables规则。

          service ip6tables save

          图25 命令示例
      4. (可选配置)CentOS 7/CentOS 8系列需要将扩展网卡的IPv6 LLA地址模式修改为EUI64。
        1. 执行如下命令查看网卡信息。

          nmcli con

          图26 查看网卡信息
        2. 将eth1的IPv6 LLA地址模式按以下命令修改为EUI64:

          nmcli con modify "Wired connection 1" ipv6.addr-gen-mode eui64

          说明:

          CentOS不同系列,网卡信息存在差异,命令中的“Wired connection 1”需要根据实际查询的网卡信息的“NAME”列进行替换。

        3. 通过ifconfig命令将eth1进行down/up操作。

          ifdown eth1

          ifup eth1

      5. 重启网络服务。
        1. CentOS 6系列执行以下命令,重启网络服务。

          service network restart

        2. CentOS 7/EulerOS/Fedora系列执行以下命令,重启网络服务。

          systemctl restart NetworkManager

      6. 执行步骤1检查是否已开启动态IPv6。
    • SUSE/openSUSE/CoreOS操作系统云服务器配置动态获取IPv6。

      SUSE 11 SP4不支持IPv6自动获取。

      SUSE 12 SP1、SUSE 12 SP2无需特殊配置。

      openSUSE 13.2、openSUSE 42.2无需特殊配置。

      CoreOS 10.10.5无需特殊配置。

设置云服务器获取IPv6地址超时时间

CentOS 6.x和Debian操作系统的云服务器内部配置IPv6自动获取功能之后,将该云服务器制作为私有镜像,使用该镜像在非IPv6网络环境中创建云服务器时,由于等待获取IPv6地址超时,导致云服务器启动较慢,您可以参考本节操作设置获取IPv6地址超时时间为30s,然后再重新制作私有镜像。

  • CentOS 6.x:
    1. 执行以下命令编辑“dhclient.conf”文件。

      vi /etc/dhcp/dhclient.conf

    2. 按“i”进入编辑模式,在文件中增加timeout属性。
      timeout  30;
    3. 输入:wq保存后退出。
  • Debian 7.5:
    1. 执行以下命令编辑“networking”文件。

      vi /etc/init.d/networking

    1. 按“i”进入编辑模式,增加延迟命令timeout,修改点如下图所示。
      图27 修改点1
      图28 修改点2
  • Debian 8.2.0/8.8.0
    1. 执行以下命令编辑“network-pre.conf”文件。

      vi /lib/systemd/system/networking.service.d/network-pre.conf

    2. 按“i”进入编辑模式,在文件中增加timeout属性。
      [Service]
      TimeoutStartSec=30
  • Debian 9.0
    1. 执行以下命令编辑“networking.service”文件。

      vi /etc/system/system/network-online.target.wants/networking.service

    2. 按“i”进入编辑模式,将TimeoutStartSec=5min改为TimeoutStartSec=30。

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容