Облачная платформаAdvanced

Как настроить ECS для использования DHCPv6?

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Сценарии

IPv6-адреса используются для решения проблемы исчерпания IPv4-адресов. Если ECS использует IPv4-адрес, то ECS может работать в режиме dual-stack после включения IPv6. Тогда у ECS будет два IP-адреса для доступа к интранету и Интернету: IPv4-адрес и IPv6-адрес.

В некоторых случаях ECS не может динамически получать IPv6-адрес, даже если он соответствует всем требованиям в Constraints. Необходимо настроить ECS для динамического получения IPv6-адресов. Для публичных образов:

Ограничения

  • Убедитесь, что IPv6 включён в подсети, где работает ECS.

    Если IPv6 не включён, включите его, обратившись к Enabling IPv6 for an ECS. После включения IPv6 отключить нельзя.

  • Убедитесь, что Automatically-assigned IPv6 address выбран при создании ECS.
  • После запуска ECS его горячие заменяемые NIC не могут автоматически получать IPv6-адреса.
  • К NIC может быть привязан только один IPv6-адрес.

Процедура

  • Windows: в качестве примера используется Windows Server 2012/2008 для описания того, как включить динамическое назначение IPv6-адресов в Windows, как показано в Table 1.
  • Linux: динамическое назначение IPv6-адресов может быть включено автоматически (рекомендовано) или вручную, как показано в Table 1.

    Если вы используете private image из CentOS 6.x или Debian ECS с включённым IPv6 auto-assignment для создания ECS в среде без IPv6, ECS может испытывать медленный запуск из‑за тайм‑аута назначения IPv6‑адреса. Вы можете задать длительность тайм‑аута назначения IPv6‑адресов, обратившись к Setting the Timeout Duration for IPv6 Address Assignment.

Table 1 Включение динамического назначения IPv6‑адресов для разных OSs

OS

Auto/Manual

Reference

Windows Server 2012

Auto

Windows Server 2012

Windows Server 2008

Auto

Windows Server 2008

Linux

Auto (recommended)

Linux (Automatically Enabling Dynamic Assignment of IPv6 Addresses)

Linux

Руководство

Linux (Ручное включение динамического назначения IPv6‑адресов)

Включение IPv6 для ECS

Note

После включения IPv6 в подсети, в которой работает ECS, подсети автоматически назначается блок IPv6 CIDR. IPv6 нельзя отключить после включения.

  1. Войдите в консоль управления.
  1. В Computing нажмите Elastic Cloud Server.
  2. Нажмите целевой ECS, чтобы перейти на страницу сведений ECS.
  3. В области ECS Information нажмите имя VPC. Отобразится список VPC.
  4. Нажмите номер в столбце Subnets.

    Отобразится страница Subnets.

  5. В списке подсетей найдите целевую подсеть и нажмите её имя.

    Отобразится страница сведений о подсети.

  6. In the Subnet Information area, click Enable for IPv6 CIDR Block.
  7. Click OK.

Windows Server 2012

  1. Проверьте, включён ли IPv6 для ECS.

    Выполните следующую команду в окне CMD:

    ipconfig

    • Если отображается IPv6‑адрес и link-local IPv6‑адрес, IPv6 включён, и динамическое назначение IPv6 также включено.

      Рисунок 1 Запрос IPv6‑адреса


    • Если отображается только link-local IPv6‑адрес, IPv6 включён, но динамическое назначение IPv6 не включено. Перейдите к 2.

      Рисунок 2 Link-local IPv6‑адрес


    • Если не отображается ни IPv6‑адрес, ни link-local IPv6‑адрес, IPv6 отключён. Перейдите к 3.

      Рисунок 3 IPv6 отключён


      Note

      По умолчанию динамическое назначение IPv6‑адресов включено для публичных образов Windows, как показано на Рисунок 1. Дополнительная настройка не требуется.

  2. Включить динамическое назначение IPv6‑адресов.

    1. Выберите Start > Control Panel.
    2. Нажмите Network and Sharing Center.
    3. Нажмите Ethernet connection.

      Рисунок 4 Ethernet connection


    4. В Ethernet Status диалоговом окне нажмите Properties в левом нижнем углу.
    5. Выберите Internet Protocol Version 6 (TCP/IPv6) и нажмите OK.

      Рисунок 5 Настройка динамического назначения IPv6‑адресов


    6. Выполните 1 чтобы проверить, включено ли динамическое назначение IPv6‑адресов.

  3. Включите и настройте IPv6.

    1. В Internet Protocol Version 6 (TCP/IPv6) Properties диалоговом окне настройте IPv6‑адрес и адрес DNS‑сервера.
      • IPv6 address: IPv6‑адрес, выделенный при создании ECS. Получите значение из списка ECS в консоли.
      • Subnet prefix length: 64
      • Preferred DNS server: 240c::6666 (рекомендовано)

      Рисунок 6 Настройка IPv6‑адреса и адреса DNS‑сервера


    2. (Необязательно) Выполните следующую команду в зависимости от ОС вашего ECS.

      Для Windows Server 2012 выполните следующую команду в PowerShell или CMD:

      Set-NetIPv6Protocol -RandomizeIdentifiers disabled

    3. Выполните 1 чтобы проверить, включено ли динамическое назначение IPv6‑адресов.

Windows Server 2008

  1. Проверьте, включён ли IPv6 для ECS.

    Выполните следующую команду в окне CMD:

    ipconfig

    • Если отображается IPv6‑адрес и link‑local IPv6‑адрес, IPv6 включён и динамическое назначение IPv6 также включено.

      Рисунок 7 Запрос IPv6‑address


    • Если отображается только link‑local IPv6‑address, IPv6 включён, но динамическое назначение IPv6 не включено. Перейдите к 2.

      Рисунок 8 Link‑local IPv6‑address


    • Если не отображается ни IPv6‑адрес, ни link‑local IPv6‑address, IPv6 отключён. Перейдите к 3.

      Рисунок 9 IPv6 отключён


      Note

      По умолчанию динамическое назначение IPv6‑address включено для публичных образов Windows, как показано на Figure 7. Дополнительная настройка не требуется.

  2. Включить динамическое назначение IPv6‑address.

    1. Выберите Start > Control Panel.
    2. Нажмите Network and Sharing Center.
    3. Нажмите Change adapter settings.
    4. Щёлкните правой кнопкой мыши локальное сетевое соединение и выберите Properties.
    5. Выберите Internet Protocol Version 6 (TCP/IPv6) и нажмите OK.

      Figure 10 Настройка динамического назначения IPv6-адресов


    6. Выполните 1, чтобы проверить, включено ли динамическое назначение IPv6-адресов.

  3. Включите и настройте IPv6.

    1. Выберите Start > Control Panel > Network Connection > Local Connection.
    2. Выберите Properties, выберите следующие параметры и нажмите Install.

      Figure 11 Включение и настройка IPv6


    3. Выберите Protocol и нажмите Add.

      Figure 12 Добавление протокола


    4. Выберите Microsoft TCP/IP Version 6 и нажмите OK.

      Figure 13 Сетевые протоколы


    5. (Необязательно) Выполните следующие команды в зависимости от ОС вашего ECS.

      Для Windows Server 2008 выполните следующую команду в PowerShell или CMD:

      netsh interface ipv6 set global randomizeidentifiers=disable

      Отключите локальное соединение, а затем включите его снова.

      Чтобы отключить локальное соединение, выберите Start > Control Panel > Network and Internet > Network and Sharing Center > Change Adapter Options. Щелкните правой кнопкой мыши по локальному соединению и выберите Disable в контекстном меню.

      Чтобы включить локальное соединение, выберите Start > Control Panel > Network and Internet > Network and Sharing Center > Change Adapter Options. Щелкните правой кнопкой мыши по локальному соединению и выберите Enable в контекстном меню.

    6. Выполните 1, чтобы проверить, включено ли динамическое назначение IPv6‑адресов.

Linux (Автоматическое включение динамического назначения IPv6‑адресов)

Инструмент ipv6-setup-xxx может использоваться для включения автоматического получения IPv6‑адресов в Linux OS. xxx обозначает инструмент, которым может быть rhel или debian.

Вы также можете включить динамическое назначение IPv6‑адресов, следуя инструкциям в Linux (Manually Enabling Dynamic Assignment of IPv6 Addresses).

Caution
  • При запуске ipv6-setup-xxx сетевой сервис будет автоматически перезапущен. В результате сеть будет временно отключена.
  • Если вы используете частный образ из CentOS 6.x или Debian ECS с включённым автоматическим назначением IPv6 для создания ECS в среде без IPv6, ECS может испытывать медленный запуск из‑за тайм‑аута назначения IPv6‑адреса. Вы можете установить длительность тайм‑аута назначения IPv6‑адресов в 30 с, обратившись к Setting the Timeout Duration for IPv6 Address Assignment, и попытаться создать новый частный образ.
  1. Выполните следующую команду, чтобы проверить, включён ли IPv6 для ECS:

    ip addr

    • Если отображается только IPv4‑адрес, IPv6 отключён. Включите его, обратившись к Setting the Timeout Duration for IPv6 Address Assignment.

      Рисунок 14 IPv6 отключён


    • Если отображается link‑local‑адрес (начинающийся с fe80), IPv6 включён, но динамическое назначение IPv6‑адресов не включено.

      Рисунок 15 IPv6 включён


    • Если отображается следующий адрес, IPv6 включён и IPv6‑адрес был назначен:

      Figure 16IPv6 включён и назначен IPv6‑адрес


    Note

    IPv6 включён для публичных образов Linux по умолчанию, как показано на Figure 15.

  2. Включите IPv6 для ECS.

    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‑адресов для ECS.

    1. Скачайте ipv6-setup-rhel или ipv6-setup-debian требуемой версии и загрузите его в целевой ECS.

      ipv6-setup-xxx изменяет файл конфигурации NIC, чтобы включить динамическое назначение IPv6-адресов, или добавляет такой файл конфигурации для NIC, а затем перезапускает NIC или сетевую службу.

      Обратитесь к администратору, чтобы получить пути загрузки ipv6-setup-rhel и ipv6-setup-debian.

    2. Выполните следующую команду, чтобы сделать ipv6-setup-xxx исполняемым:

      chmod +x ipv6-setup-xxx

    3. Выполните следующую команду, чтобы включить динамическое назначение IPv6-адресов для NIC:

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

      Пример:

      ./ipv6-setup-xxx --dev eth0

      Note
      • Чтобы включить динамическое назначение IPv6-адресов для всех NIC, выполните команду ./ipv6-setup-xxx.
      • Чтобы узнать, как использовать ipv6-setup-xxx, выполните команду ./ipv6-setup-xxx --help.

Linux (ручное включение динамического назначения IPv6-адресов)

Caution

Если вы используете частный образ из CentOS 6.x или Debian ECS с включённым автоматическим назначением IPv6 для создания ECS в среде без IPv6, ECS может испытывать медленный запуск из‑за тайм‑аута назначения IPv6-адреса. Вы можете установить длительность тайм‑аута назначения IPv6-адресов в 30 с, обратившись к Setting the Timeout Duration for IPv6 Address Assignment, и попытаться создать новый частный образ.

  1. Выполните следующую команду, чтобы проверить, включён ли IPv6 для ECS:

    ip addr

    • Если отображается только IPv4-адрес, IPv6 отключён. Включите его, обратившись к 2.

      Figure 17 IPv6 отключен


    • Если отображается link-local‑адрес (начинающийся с fe80), IPv6 включён, но динамическое назначение IPv6‑адресов не включено.

      Figure 18 IPv6 включён


    • Если отображается следующий адрес, IPv6 включён и IPv6‑адрес был назначен:

      Figure 19 IPv6 включён и IPv6‑адрес назначен


    Note

    IPv6 включён для публичных образов Linux по умолчанию, как показано в Figure 18.

  2. Включить IPv6 для ECS.

    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-адресов для ECS.

    • Ubuntu 18.04/20.04
      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
      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
      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. Добавьте конфигурации для каждого NIC в файл /etc/network/interfaces. Ниже приведён пример с eth1:
        auto eth1
        iface eth1 inet dhcp
        iface eth1 inet6 dhcp
        pre-up sleep 3
      3. Выполните следующую команду для перезапуска сетевой службы:

        service networking restart

        Note

        Если после отключения и повторного включения NICs не назначен IPv6‑адрес, вы можете выполнить эту команду для перезапуска сети.

      4. Выполните 1, чтобы проверить, включено ли динамическое назначение IPv6‑адресов.
    • CentOS, EulerOS, Fedora, or openEuler
      1. Откройте файл конфигурации /etc/sysconfig/network-scripts/ifcfg-eth0 основного NIC.

        Добавьте следующие элементы конфигурации в файл:

        IPV6INIT=yes
        DHCPV6C=yes

      2. Отредактируйте файл /etc/sysconfig/network, чтобы добавить или изменить следующую строку:
        NETWORKING_IPV6=yes
      3. Для ECS с CentOS 6 необходимо отредактировать файлы конфигурации его расширенных NIC. Например, если расширенный NIC имеет имя eth1, необходимо отредактировать /etc/sysconfig/network-scripts/ifcfg-eth1.

        Добавьте в файл следующие элементы конфигурации:

        IPV6INIT=yes
        DHCPV6C=yes

        В CentOS 6.3 запросы dhcpv6-client по умолчанию фильтруются ip6tables. Поэтому также необходимо добавить правило, разрешающее запрос 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

          Figure 25 Пример команды


      4. (Optional) Для CentOS 7/CentOS 8/openEuler измените режим IPv6 link-local адреса расширенных NIC на EUI64.
        1. Выполните следующую команду, чтобы запросить информацию о NIC:

          nmcli con

          Figure 26 Запрос информации о NIC


        2. Выполните следующую команду, чтобы изменить режим IPv6 link-local адреса eth1 на EUI64:

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

          Note

          Информация о NIC зависит от серии CentOS. В команде Wired connection 1 необходимо заменить значением из столбца NAME запрошенной информации о NIC.

        3. Выполните следующие команды, чтобы отключить и включить eth1:

          ifdown eth1

          ifup eth1

      5. Перезапустите сетевую службу.
        1. Для CentOS 6 выполните следующую команду для перезапуска сетевой службы:

          service network restart

        2. Для CentOS 7/EulerOS/Fedora/openEuler выполните следующую команду для перезапуска сетевой службы:

          systemctl restart NetworkManager

      6. Выполните 1, чтобы проверить, включено ли динамическое назначение IPv6‑адресов.
    • SUSE, openSUSE или CoreOS

      SUSE 11 SP4 не поддерживает динамическое назначение IPv6‑адресов.

      Для SUSE 12 SP1 или SUSE 12 SP2 дополнительная конфигурация не требуется.

      Для openSUSE 13.2 или openSUSE 42.2 дополнительная конфигурация не требуется.

      Для CoreOS 10.10.5 дополнительная конфигурация не требуется.

Настройка длительности тайм‑аута для назначения IPv6‑адреса

Если вы используете private image из CentOS 6.x или Debian ECS с включённым IPv6 auto-assignment для создания ECS в среде без IPv6, ECS может испытывать медленный запуск из‑за тайм‑аута назначения IPv6‑адреса. Вы можете установить длительность тайм‑аута назначения IPv6‑адресов в 30 s и попытаться снова создать новый private image.

  • 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.