弹性云服务器 ECS-动态获取IPv6地址:Linux操作系统(手动配置启用IPv6)

时间:2024-06-28 19:56:31

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

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

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

    ip addr

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

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

  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

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

        vi 01-network-manager-all.yaml

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

        修改完成后保存退出。

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

        sudo netplan apply

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

        cd /etc/netplan

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

        ls

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

        vi 01-netcfg.yaml

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

        修改完成后保存退出。

      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
        图27 修改结果
      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

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

          nmcli con

          图29 查看网卡信息
        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无需特殊配置。

support.huaweicloud.com/usermanual-ecs/ecs_03_0508.html