Миграция с vServer в облако

Миграция с vServer в облако

Вы можете перенести существующие vServers VQ / VX / CX на текущие облачные серверы.

Шаги миграции:

  1. Создайте аналогичный или более мощный облачный сервер
  2. Запустите Rescue System на обоих серверах и смонтируйте файловую систему.
  3. Запустить синхронизацию с помощью rsync

Отказ от ответственности: отдельные установки могут потребовать различных или более шагов.

Важная информация

Следующие операционные системы не поддерживаются.

  • Debian 6 и старше
  • Ubuntu 11.10 и старше
  • CentOS 5.6 и старше
  • openSUSE 11.4 и старше

Для перечисленных операционных систем необходимо обновление до более новой версии.

Перед миграцией все пакеты ДОЛЖНЫ быть обновлены до минимально поддерживаемой версии. Частичные обновления и / или операционные системы с пакетами из сторонних репозиториев могут работать не так, как ожидалось, и не поддерживаются.

Активируйте спасательную систему

Чтобы передать данные, вы должны загрузить оба сервера в Rescue System. Для VQ / VX / CX vServers вы можете активировать Rescue System через панель вашего робота на вкладке «vServer».

Для облачных серверов вы можете активировать спасательную систему через облачную консоль. Сервер будет перезагружен в Rescue System.

Смонтируйте файловую систему

После запуска Rescue System вы смонтируете файловую систему для копирования файлов.

На VQ / VX / CX vServer есть разные контроллеры. Пожалуйста, проверьте разделы через:

old_server ~ # fdisk -l

Вы можете смонтировать файловую систему через:

old_server ~ # mount /dev/XXXY /mnt

Замените XXX на декларацию устройства и Y на номер раздела. Если существует несколько разделов, они должны быть смонтированы в порядке установки (например, / before / boot).

Монтаж раздела подкачки:

old_server ~ # swapon /dev/XXXY

Если существует загрузочный раздел, смонтируйте сначала основной раздел, а в конце — загрузочный.

Точка монтирования для загрузочного раздела — / mnt / boot.

Вы смонтируете файловую систему облачного сервера позже.

Миграция на облачный сервер

Разбиение на разделы (необязательно)

Если используется более старая система (например, CentOS 6) с grub-legacy, необходимо создать 2 отдельных раздела, поскольку загрузчик не поддерживает ext4.

Начните с создания пустой таблицы разделов (при этом удаляются все существующие записи)

new_server ~ # parted -s /dev/sda mklabel msdos

Затем создайте раздел размером 512 МБ для / boot и еще один с оставшимся дисковым пространством:

new_server ~ # parted -s /dev/sda mkpart primary 2048s 513MiB
new_server ~ # parted -s /dev/sda mkpart primary 514MiB 100%

Стереть диск

В качестве первого шага удалите файловую систему облачного сервера .

new_server ~ # mkfs -O ^64bit,^metadata_csum -t ext4 /dev/sda1

Это создает новую файловую систему ext4 (без некоторых новых расширенных функций) и, следовательно, стирает все существующие данные на облачном сервере.

Если на первом этапе вы создали 2 раздела, они должны быть отформатированы с помощью ext3 и ext4 соответственно.

new_server ~ # mkfs.ext3 /dev/sda1
new_server ~ # mkfs -O ^64bit,^metadata_csum -t ext4 /dev/sda2

Смонтируйте файловую систему на облачном сервере

new_server ~ # mount /dev/sda1 /mnt
  • в случае 2 перегородок:
new_server ~ # mount /dev/sda2 /mnt
new_server ~ # mkdir /mnt/boot
new_server ~ # mount /dev/sda1 /mnt/boot

Миграция

Передача данных будет осуществляться с помощью rsync:

new_server ~ # rsync -avz --progress --numeric-ids IP-old-server:/mnt/* /mnt

настройки fstab

Вам нужно будет настроить fstab на облачном сервере, иначе сервер не загрузится.

Определите UUID разделов:

new_server ~ # blkid -o value -s UUID /dev/sda1
  • в случае 2 перегородок:
new_server ~ # blkid -o value -s UUID /dev/sda2

Пример / mnt / etc / fstab с UUID до:

UUID=<UUID-root-partition-old-server> / ext3 defaults 0 0

приспособить к:

UUID=<UUID-sda1-new-server> / ext4 discard,errors=remount-ro 0 1

или в случае 2 перегородок:

UUID=<UUID-sda2-new_server> / ext4 discard,errors=remount-ro 0 1
UUID=<UUID-sda1-new_server> /boot ext3 defaults 0 2

Необходимые доработки нового сервера

Перейти на DHCP

Debian / Ubuntu

Отредактируйте / mnt / etc / network / interfaces

Удалите такие строки, как auto ens3, iface ens3 inet static:

auto eth0
iface eth0 inet dhcp
iface eth0 inet6 static
    address <new IPv6 subnet>::1
    netmask 64
    gateway fe80::1

Удалите следующие строки, такие как адрес, сетевая маска и шлюз в части IPv4 (iface eth0 inet dhcp).

Ubuntu 18.04

Ubuntu 18.04 использует netplan, который отличается от старых конфигураций Ubuntu.

Отредактируйте файл .yml в папке / etc / netplan /:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      addresses:
        - <IPv6-Address>::1/64
      dhcp4: true
      gateway6: fe80::1

CentOS и openSUSE

new_server ~ # rm /mnt/etc/sysconfig/network-scripts/route-eth0

отредактируйте / mnt / etc / sysconfig / network-scripts / ifcfg-eth0

BOOTPROTO=dhcp

Удалите такие строки, как IPADDR, NETMASK, SCOPE и BROADCAST.

Arch Linux

Если установка Arch Linux производилась с использованием нашего ISO-образа или образа установки, мы будем использовать systemd-network.

Отредактируйте /mnt/etc/systemd/network/network/10-ens3.network (в некоторых случаях 10-eth0.network тоже!)

[Match]
Name=eth0
[Network]
DHCP=ipv4

Удалите такие строки, как адрес и шлюз.

Удаление udev-правила сетевой карты

Каждый виртуальный сервер имеет уникальный MAC-адрес. Удалите текущее правило udev при подготовке к миграции.

new_server ~ # rm /mnt/etc/udev/rules.d/70-persistent-net.rules
new_server ~ # rm /mnt/etc/udev/rules.d/80-net-setup-link.rules

Arch Linux

Создайте ссылку с помощью / dev / null. По этой причине сетевая карта снова называется eth0.

new_server ~ # ln -s /dev/null /etc/systemd/network/99-default.link

GRUB

У загрузчика все еще старая конфигурация. Теперь обновите конфигурацию с помощью следующих команд.

Debian / Ubuntu

new_server ~ # chroot-prepare /mnt ; chroot /mnt
new_server ~ # grub-mkdevicemap
new_server ~ # grub-install /dev/sda
new_server ~ # update-initramfs -u
new_server ~ # update-grub
new_server ~ # exit

В Debian 9 перед запуском следующих команд необходимо отредактировать файл / etc / default / grub:

GRUB_CMDLINE_LINUX="net.ifnames=0"

Это приведет к тому, что сетевая карта будет доступна в системе как eth0 вместо ens3.

Теперь запустите следующие команды:

new_server ~ # update-grub
new_server ~ # exit

CentOS 6

new_server ~ # rm /mnt/etc/mtab
new_server ~ # chroot-prepare /mnt ; chroot /mnt
new_server ~ # ln -s /proc/mounts /etc/mtab
new_server ~ # grub-install /dev/sda

Пожалуйста, измените UUID в /boot/grub/grub.cfg самостоятельно, потому что загрузчик не будет обновляться через grub-install.

После настройки /boot/grub/grub.cfg выполните следующие команды.

new_server ~ # dracut -f
new_server ~ # exit

CentOS 7

new_server ~ # chroot-prepare /mnt ; chroot /mnt
new_server ~ # grub2-install /dev/sda
new_server ~ # grub2-mkconfig -o /boot/grub2/grub.cfg
new_server ~ # dracut -f
new_server ~ # exit

Arch Linux

new_server ~ # chroot-prepare /mnt ; chroot /mnt
new_server ~ # grub-install /dev/sda
new_server ~ # grub-mkconfig -o /boot/grub/grub.cfg
new_server ~ # mkinitcpio -p linux
new_server ~ # exit

openSUSE

new_server ~ # chroot-prepare /mnt ; chroot /mnt
new_server ~ # grub2-install /dev/sda
new_server ~ # grub2-mkconfig -o /boot/grub2/grub.cfg
new_server ~ # mkinitrd
new_server ~ # exit

Обновление ядра

Ubuntu

При использовании более старой версии Ubuntu 12.04 система не загружается должным образом из-за отсутствия драйверов. Чтобы решить эту проблему, необходимо установить ядро ​​HWE. Снова перезагрузите сервер в Rescue System, смонтируйте все разделы и переключитесь на chroot:

new_server ~ # chroot-prepare /mnt ; chroot /mnt
new_server ~ # apt-get install --install-recommends linux-generic-lts-trusty
new_server ~ # exit

Последние шаги на облачном сервере

Чтобы снова использовать облачный сервер, отключите файловую систему:

new_server ~ # umount -R /mnt

Затем перезапустите сервер:

new_server ~ # reboot

Облачные сервера — FAQ

В чем разница между локальными дисками и дисками ceph для серверов на моделях CX?

Серверы с локальными дисками хранят все данные на локальном зеркале RAID в хост-системе. Они оптимизированы для обеспечения высокой производительности ввода-вывода и малой задержки и особенно подходят для приложений, которым требуется быстрый доступ к дискам с низкой задержкой, например к базам данных.

Серверы с дисками ceph хранят свои данные в удаленной файловой системе. Каждый блок хранится на трех разных серверах. Они особенно подходят для повышения доступности: если аппаратное обеспечение локального хоста выйдет из строя, мы загрузим сервер на другом компьютере.

Какие планы на выделенный сервер vCPU?

Каждый выделенный экземпляр виртуального ЦП имеет свои собственные выделенные ресурсы ЦП (1 виртуальный ЦП = 1 гиперпоток), поэтому эти серверы CCX обеспечивают предсказуемо высокую производительность ЦП. Мы рекомендуем их для систем с высокой производственной нагрузкой и приложениями, интенсивно использующими процессор. Они доступны только с локальным хранилищем (NVMe SSD). Они используют то же высокопроизводительное оборудование, что и другие наши облачные серверы Hetzner, с щедрым распределением операций ввода-вывода и сетевой мощности.

Конечно, все другие функции Hetzner Cloud, которые вы знаете и любите, также доступны для этих выделенных экземпляров vCPU. Используя функцию изменения масштаба в интерфейсе администрирования Cloud Console, вы можете повышать или понижать версию серверов CCX в зависимости от того, сколько ресурсов вам требуется.

Обратите внимание, что наши системные политики на https://www.hetzner.com/rechtliches/cloud-server/ также применяются к нашим выделенным экземплярам vCPU.

Могу ли я использовать Cloud-Init при создании серверов?

При создании сервера вы можете ввести данные пользователя cloud-init. Это означает, что вы можете заставить свой сервер выполнять специальные команды во время загрузки, такие как создание пользователей или выполнение команды оболочки.

Пример:

#!/bin/bash
touch /tmp/cloudinit_was_here

Дополнительные примеры см. На https://help.ubuntu.com/community/CloudInit и http://cloudinit.readthedocs.io/en/latest/topics/examples.html.

Для работы cloud-init необходимо использовать предоставленные нами образы системы, поскольку они включают специальный источник данных cloud-init.

Могу ли я выбрать окно резервного копирования?

Раньше была возможность выбрать окно самостоятельно, однако нам пришлось отключить эту функцию. Это позволяет нам лучше распределить дополнительную нагрузку, вызванную запуском резервного копирования в течение дня. Это было необходимо, потому что многие пользователи выбирали одно и то же окно, что приводило к снижению производительности и отрицательно влияло на производительность сервера в определенное время дня.

Как я могу переустановить сервер?

Предположим, вы перестроили свой сервер server1 из снимка с именем snap1.

Как я могу получить доступ к серверу, который я восстановил?

Предположим, вы создали Server1 из снимка с именем Snap1.

Случай 1: server1 изначально был создан без выбора SSH-ключа:

После перестройки будет сгенерирован и отправлен вам по почте новый пароль root для server1. Он будет установлен при первой загрузке с использованием механизма cloud-init.

Если snap1 содержал внедренные ключи SSH, они также продолжат работать.

Случай 2: server1 был создан с выбором вашего SSH-ключа key1:

После перестройки ключ key1 будет введен в server1 при первой загрузке с использованием механизма cloud-init. Вы можете использовать key1 для доступа к вашему серверу.

Если snap1 содержит еще какие-либо ключи в своем файле authorized_keys, вы все равно можете использовать их для доступа к server1.

Во всех случаях невозможно получить доступ к серверу server1 с помощью пароля root сразу после перестройки, даже если он был установлен в snap1.

Варианты 1 и 2 применяются только в том случае, если вы восстанавливаете снимок, сделанный из официально предоставленных нами изображений. Если вы использовали систему восстановления или другие средства для установки сервера, с которого был взят snap1, он не будет пригоден для перенастройки через cloud-init, и его поведение может быть другим.

При создании нового сервера я выбрал снимок в качестве исходного изображения. Как я могу получить доступ к этому серверу?

Предположим, вы создали свой сервер server1 из снимка с именем snap1.

Случай 1: вы не выбрали ключ ssh при создании server1:

После создания сервера пароль root для доступа будет сгенерирован и отправлен вам по почте. Он будет установлен с помощью механизма cloud-init.

Если snap1 содержал внедренные ключи SSH, они также продолжат работать.

Случай 2: Вы выбрали ключ ssh key1 при создании server1:

После создания сервера ключ key1 будет введен в server1 с помощью механизма cloud-init. Вы можете использовать key1 для доступа к вашему серверу.

Если snap1 содержит еще какие-либо ключи в своем файле authorized_keys, вы все равно можете использовать их для доступа к server1.

Во всех случаях к серверу server1 нельзя получить доступ с помощью пароля root сразу после его создания, даже если он был установлен в snap1.

Варианты 1 и 2 применимы только в том случае, если вы используете снимок, сделанный с наших официально предоставленных изображений. Если вы использовали систему восстановления или другие средства для установки сервера, с которого был взят snap1, он не будет пригоден для перенастройки с помощью cloud-init, и его поведение может быть другим.

Отображение клавиатуры в окне консоли кажется неправильным. Как я могу это исправить?

Все наши изображения поставляются с набором раскладок клавиатуры для американской клавиатуры. Если у вас есть что-то другое, вам нужно настроить его самостоятельно на своем сервере.

Например, в Ubuntu это можно сделать, запустив:

sudo dpkg-reconfigure keyboard-configuration

и выберите раскладку клавиатуры, которую вы используете на локальном ПК. После перезагрузки раскладка клавиатуры в консоли будет правильной.

Как защитить свой сервер от случайного удаления?

Серверы, снимки и плавающие IP-адреса можно защитить в облачной консоли и API.

Прежде чем вы сможете удалить защищенный ресурс, вы должны сначала деактивировать защиту от удаления. Это обеспечивает дополнительную защиту от случайного удаления.

Защищенные ресурсы обозначаются значком замка на странице обзора сервера, моментального снимка и плавающего IP-адреса. Вы не можете использовать функцию «Rebuild» для переустановки защищенного сервера.

Сколько серверов я могу создать?

У каждого клиента есть ограничение по умолчанию на количество облачных ресурсов, которые мы одновременно предоставляем. Если вы хотите увеличить свой лимит, вы можете отправить запрос в нашу службу поддержки, открыв заявку в службу поддержки через Cloud Console. Наша команда быстро рассмотрит ваш запрос и, если все в порядке, увеличит ваш лимит.

Что это значит, если изображение помечено как устаревшее?

При создании сервера вы можете выбрать его из списка готовых образов операционной системы, например Debian версии 10. Когда приблизится конец жизненного цикла этой конкретной версии образа, мы отметим его как устаревший.

Это означает, что изображение все еще доступно. Однако мы удалим его в будущем.

Мы будем хранить изображения, помеченные как устаревшие, как минимум еще 3 месяца после даты прекращения поддержки. По истечении этого срока они могут стать недоступными в любое время.

Установка Cloud-ISO — настройка шлюза

Установка Cloud-ISO — настройка шлюза

Ручная установка через ISO создаст некоторые проблемы с автоматической настройкой через DHCP. Ручная настройка через установщик невозможна.

Установка

Если используется Ubuntu 16.04 (или новее) или Debian 9, имя интерфейса — ens3. Если используется Ubuntu 14.04 или Debian 8, имя интерфейса — eth0.

Чтобы переключиться на консоль, вам нужно будет нажать ALT + стрелка вправо .

$ ip address
$ ip route add 172.31.1.1 dev ens3 # eth0 on Debian 8 or Ubuntu 14.04
$ ip route add default via 172.31.1.1

Когда команды будут выполнены, вы можете вернуться к установке, нажав ALT + стрелка влево .

После установки

Ubuntu / Debian

18.04

Ubuntu 18.04 использует netplan, который отличается от старых конфигураций Ubuntu. Отредактируйте файл .yml в папке / etc / netplan /:

 network:
   version: 2
   renderer: networkd
   ethernets:
     ens3:
       addresses:
         - <your IPv6 address>::1/64
       dhcp4: true
       gateway6: fe80::1
16.04 и новее

Отредактируйте / etc / network / interfaces

auto ens3
iface ens3 inet dhcp
iface ens3 inet6 static
    address {{ IPv6 Adresse des Servers }}
    netmask 64
    gateway fe80::1
14.04

Отредактируйте / etc / network / interfaces

auto eth0
iface eth0 inet dhcp
iface eth0 inet6 static
    address {{ your IPv6 address }}
    netmask 64
    gateway fe80::1

Облачный сервер rDNS

Облачный сервер rDNS

Чтобы установить запись rDNS (обратный DNS или PTR) для облачного сервера, вам сначала необходимо войти в Cloud Console. Когда вы окажетесь там, выберите свой облачный сервер и нажмите «Сеть». Здесь вы можете изменить записи rDNS.

Что такое допустимая запись rDNS для почтовых серверов?

Вы должны иметь возможность разрешать обратную запись DNS в обоих направлениях. Это означает, что домен, которому назначен IP-адрес, должен соответствовать тому же IP.

Как мне правильно настроить запись IPv6 rDNS через Cloud Console?

Адрес IPv6 состоит из префикса сети (8 x 8 байтов) и идентификатора интерфейса (8 x 8 байтов). Дополнительные сведения о том, как правильно писать или представлять IPv6-адрес, можно найти в этой статье в Википедии.

Сначала убедитесь, какой IPv6 назначен вашей сетевой карте (сетевой карте, также иногда называемой контроллером сетевого интерфейса).

На этом сервере идентификатор интерфейса :: 1. В Cloud Console сетевой префикс уже сохранен, поэтому вам нужно только ввести идентификатор интерфейса. Посмотрите на пример ниже. Это должно выглядеть примерно так:

Важное предупреждение: обязательно используйте два двоеточия там, где это необходимо (: :), чтобы вы вводили действительный IPv6-адрес.

Конфигурация Hetzner Cloud Networks

Установка пакета автоконфигурации

Загрузите последнюю версию hc-utilsдля вашей ОС и вашей архитектуры: https://packages.hetzner.com/hcloud/

В дистрибутивах на основе Debian (Ubuntu, Debian):

 curl https://packages.hetzner.com/hcloud/deb/hc-utils_0.0.3-1_all.deb -o /tmp/hc-utils_0.0.3-1_all.deb -s
 apt install /tmp/hc-utils_0.0.3-1_all.deb

В дистрибутивах на основе RHEL:

CentOS 7

 curl https://packages.hetzner.com/hcloud/rpm/hc-utils-0.0.3-1.el7.noarch.rpm -o /tmp/hc-utils-0.0.3-1.el7.noarch.rpm -s
 yum install /tmp/hc-utils-0.0.3-1.el7.noarch.rpm

CentOS 8

 curl https://packages.hetzner.com/hcloud/rpm/hc-utils-0.0.3-1.el8.noarch.rpm -o /tmp/hc-utils-0.0.3-1.el7.noarch.rpm -s
 yum install /tmp/hc-utils-0.0.3-1.el8.noarch.rpm

Fedora 31

 curl https://packages.hetzner.com/hcloud/rpm/hc-utils-0.0.3-1.fc31.noarch.rpm -o /tmp/hc-utils-0.0.3-1.fc31.noarch.rpm -s
 dnf install /tmp/hc-utils-0.0.3-1.fc31.noarch.rpm

Fedora 32

 curl https://packages.hetzner.com/hcloud/rpm/hc-utils-0.0.3-1.fc32.noarch.rpm -o /tmp/hc-utils-0.0.3-1.fc32.noarch.rpm -s
 dnf install /tmp/hc-utils-0.0.3-1.fc32.noarch.rpm

Удалить пакет автоконфигурации

В дистрибутивах на основе Debian (Ubuntu, Debian):

 apt remove hc-utils

В дистрибутивах на основе RHEL (Fedora, CentOS):

 yum remove hc-utils

Ручная настройка через DHCP

Debian / Ubuntu

Интерфейс для первой подключенной сети будет назван ens10(для CX, CCX) или enp7s0(для CPX). Дополнительные интерфейсы будут называться ens11(CX, CCX) или enp8s0(CPX) для второго и ens12(CX, CCX) или enp9s0(CPX) для третьего.

  1. Доступ к серверу через SSH2.
  2. Создайте файл конфигурации и откройте редактор
    touch /etc/network/interfaces.d/61-my-private-network.cfg
    nano /etc/network/interfaces.d/61-my-private-network.cfg
  3. Вставьте следующую конфигурацию в редактор.

CX и CCX

 auto ens10
 iface ens10 inet dhcp

Только CPX

 auto enp7s0
 iface enp7s0 inet dhcp
  1. Теперь вам следует перезапустить вашу сеть. Внимание: это сбросит ваше сетевое соединение.sudo service networking restart CentOS / FedoraПервый интерфейс будет называться Debian / Ubuntu ( ens10для CX, CCX и enp7s0для CPX), за исключением CentOS, где для интерфейсов используются традиционные имена ( eth1eth2и eth3).
  2. Доступ к серверу через SSH
  3. Создайте файл конфигурации и откройте редактор

    touch /etc/sysconfig/network-scripts/ifcfg-ens10
    vi /etc/sysconfig/network-scripts/ifcfg-ens10
  4. Вставьте следующую конфигурацию в редактор

    DEVICE=ens10 BOOTPROTO=dhcp ONBOOT=yes

  5. Теперь вам следует перезапустить вашу сеть. Внимание: это сбросит ваше сетевое соединение. systemctl restart networkРучная настройка псевдонимов IPВ дистрибутивах на основе Debian (Ubuntu, Debian). Доступ к серверу через SSH2. Создайте файл конфигурации и откройте редактор

    touch /etc/network/interfaces.d/61-my-private-network.cfg
    nano /etc/network/interfaces.d/61-my-private-network.cfg
  6. Вставьте следующую конфигурацию в редактор и замените your.ali.as.IP одним из псевдонимов IP-адресов. Не забывайте увеличивать идентификатор на единицу при использовании большего количества псевдонимов IP.

    auto ens10:1 iface ens10:1 inet static address your.ali.as.IP netmask 32
  7. Теперь вам следует перезапустить вашу сеть. Внимание: это сбросит ваше сетевое соединение.sudo service networking restartВ дистрибутивах на основе RHEL: интерфейсы будут иметь имена eth1и до eth3.
  8. Доступ к серверу через SSH
  9. Создайте файл конфигурации и откройте редактор

    touch /etc/sysconfig/network-scripts/ifcfg-eth1:0
    vi /etc/sysconfig/network-scripts/ifcfg-eth1:0
  10. Вставьте следующую конфигурацию в редактор и замените your.ali.as.IP одним из псевдонимов IP-адресов. Не забывайте увеличивать идентификатор на единицу при использовании большего количества псевдонимов IP.

    BOOTPROTO=static DEVICE=eth1:0 IPADDR=your.ali.as.IP PREFIX=32 TYPE=Ethernet USERCTL=no ONBOOT=yes
  11. Теперь вам следует перезапустить вашу сеть. Внимание: это сбросит ваше сетевое соединение.systemctl restart network

Ручная статическая конфигурация

В дистрибутивах на основе Debian (Ubuntu, Debian):

Интерфейс сети будет назван ens10в честь первой подключенной сети, ens11второй и ens12третьей.

  1. Доступ к серверу через SSH
  2. Создайте файл конфигурации и откройте редактор
touch /etc/network/interfaces.d/61-my-private-network.cfg
nano /etc/network/interfaces.d/61-my-private-network.cfg

3. Вставьте следующую конфигурацию в редактор и замените выделенные значения на значения вашей сети.

auto ens10
iface ens10 inet static
address private.address.ofThe.CloudServer
netmask 255.255.255.255
mtu 1450
pointopoint gateway.of.the.network
post-up ip route add net.work.ip.range/8 via gateway.of.the.network dev ens10

Теперь вам следует перезапустить вашу сеть. Внимание: это сбросит ваше сетевое соединение.

sudo service networking restart
  1. В дистрибутивах на основе RHEL (Fedora, CentOS):
  2. Интерфейсы будут называться ens10ens11а ens12CentOS по-прежнему использует eth0, eth1 и eth2.
  3. Доступ к серверу через SSH
  4. Создайте файл конфигурации и откройте редактор
touch /etc/sysconfig/network-scripts/ifcfg-ens10
vi /etc/sysconfig/network-scripts/ifcfg-ens10

Вставьте следующую конфигурацию в редактор и замените private.address.ofThe.CloudServer на IP-адрес частной сети вашего сервера.

BOOTPROTO=static
DEVICE=ens10
MTU=1450
IPADDR=private.address.ofThe.CloudServer
PREFIX=32
TYPE=Ethernet
USERCTL=no
ONBOOT=yes
  1. Создайте файл конфигурации маршрута и откройте редактор
    touch /etc/sysconfig/network-scripts/route-ens10
    vi /etc/sysconfig/network-scripts/route-ens10
  2. Вставьте следующую конфигурацию в редактор и замените выделенные значения на значения вашей сети.
gateway.of.the.network/32 via 0.0.0.0 dev ens10 scope link
net.work.ip.range/8 via gateway.of.the.network dev ens10

Теперь вам следует перезапустить вашу сеть. Внимание: это сбросит ваше сетевое соединение.

systemctl restart network

Ручная настройка для систем на базе Windows

  1. Доступ к серверу через консоль RDP или HTML5.
  2. Откройте повышенный cmd.
  3. Распечатайте список интерфейсов и получите идентификатор интерфейса «Red Hat VirtIO Ethernet Adapter # 2».
route print ?

Должно получиться так:

Interface List
3...xx xx xx xx xx xx ......Red Hat VirtIO Ethernet Adapter
5...xx xx xx xx xx xx ......Red Hat VirtIO Ethernet Adapter #2</span>
1...........................Software Loopback Interface 1
2...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter
4...00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface
7...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2
  1. Вам нужен красный жирный номер.
  2. Добавьте статические маршруты в интерфейс
route add -p gateway.of.the.network 0.0.0.0 if 5
route add -p net.work.ip.range mask mask.of.network.range gateway.of.the.network if 5

Проверьте имя интерфейса на предмет статической конфигурации

netsh interface ip show config

Результат должен быть примерно таким:

Configuration for interface "Ethernet"
DHCP enabled:                         Yes
IP Address:                           xxx.xxx.xxx.xxx
Subnet Prefix:                        xxx.xxx.xxx.xxx/32 (mask 255.255.255.255)
Default Gateway:                      172.31.1.1
Gateway Metric:                       0
InterfaceMetric:                      5
DNS servers configured through DHCP:  213.133.99.99
                                      213.133.100.100
                                      213.133.98.98
Register with which suffix:           Primary only
WINS servers configured through DHCP: None
Configuration for interface <span style="color: #ff0000;"><strong>"Ethernet 2"</strong></span>
DHCP enabled:                         Yes
IP Address:                           <span style="color: #ff0000;">private.address.ofThe.CloudServer</span>
Subnet Prefix:                        <span style="color: #ff0000;">private.address.ofThe.CloudServer</span>/32 (mask 255.255.255.255)
Default Gateway:                      <span style="color: #ff0000;">gateway.of.the.network</span>
Gateway Metric:                       0
InterfaceMetric:                      5
DNS servers configured through DHCP:  None
Register with which suffix:           Primary only
WINS servers configured through DHCP: None
Configuration for interface "Loopback Pseudo-Interface 1"
DHCP enabled:                         No
IP Address:                           127.0.0.1
Subnet Prefix:                        127.0.0.0/8 (mask 255.0.0.0)
InterfaceMetric:                      75
Statically Configured DNS Servers:    None
Register with which suffix:           None
Statically Configured WINS Servers:   None

Установите IP-адрес для интерфейса

gateway.of.the.network 1

Настройки сети — FAQ

Что такое облачные сети Hetzner?

Сети обеспечивают частные связи уровня 3 между облачными серверами Hetzner с использованием выделенных сетевых интерфейсов. Их можно использовать для удобного построения многоуровневых архитектур, охватывающих несколько мест.

Могут ли сети охватывать несколько мест?

Да, вы можете подключить экземпляры из наших офисов в Фалькенштейне, Нюрнберге и Хельсинки к одной сети.

Будете ли вы платить за эту функцию? Как насчет трафика?

Функция «Сети» бесплатна. Трафик на интерфейсах частной сети бесплатный и не взимается.

Как IP-адреса управляются в сетях?

Вы можете использовать облачную консоль для управления IP-адресами в сетях. Каждый раз, когда вы подключаете сервер к сети, наша система автоматически назначает ему IPv4-адрес в вашей частной сети. Или вы можете выбрать конкретный IP-адрес в своей частной сети, если хотите.

Поскольку сети — это функция уровня 3, вы можете использовать только IP-адреса, выделенные серверной частью. Сети поддерживают только IPv4.

Какие IP-адреса можно использовать?

Вы можете создавать сети для всех диапазонов частных IP-адресов RFC1918, а именно:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

Как настроены IP-адреса на моих серверах?

Если вы недавно создали свой сервер, используя один из наших стандартных образов, мы автоматически настроим основной IP-адрес для интерфейса вашей частной сети с помощью DHCP.

Вы можете отключить автоконфигурацию, удалив наш пакет автоконфигурации. В этом случае вам нужно будет вручную настроить сетевые интерфейсы для их использования.

Мы подготовили вики-запись со всей информацией о конфигурации и пакете автоконфигурации .

Может ли один сервер иметь несколько IP-адресов в сети?

Да. Помимо основного IP-адреса в сети, вы также можете настроить до пяти псевдонимов IP-адресов для каждого сервера. Вам придется настроить эти IP-адреса вручную, поскольку они не могут быть выданы DHCP.

Могу ли я подключить сервер к нескольким сетям?

Вы можете подключить свой сервер к трем сетям одновременно.

Зашифрован ли трафик внутри Hetzner Cloud Networks?

Трафик между облачными серверами внутри сети является частным и изолированным, но не шифруется автоматически. Мы рекомендуем вам использовать TLS или аналогичные протоколы для шифрования конфиденциального трафика.

Что такое подсети?

Что такое подсети? Подсети являются частью функции «Сети». При создании сети вам необходимо определить диапазон ее IP-адресов. В пределах этого диапазона IP-адресов можно создать одну или несколько подсетей, каждая из которых имеет собственное IP-пространство в пределах диапазона IP-адресов сети. IP-адреса для ваших серверов всегда будут выделяться из IP-пространства вашей подсети.

Пример: вы создаете сеть 10.0.0.0/8. Внутри сети вы создаете подсеть 10.0.0.0/24. Когда вы подключаете сервер к своей сети, он получает IP-адрес из 10.0.0.0/24подсети.

Сейчас функция подсетей не очень полезна. Однако это изменится в будущем, когда мы добавим больше функций.

Когда вы создаете сеть через Cloud Console, мы выбираем разумные значения по умолчанию и автоматически создаем для нее подходящую подсеть. Поэтому, если сомневаетесь, используйте значения по умолчанию.

Что такое маршруты?

Маршруты — это расширенная функция в сетях. С его помощью вы можете создать маршрут, который автоматически применяется к частному трафику. Вы можете использовать Routes, чтобы убедиться, что все пакеты для данного IP-префикса назначения будут отправлены на адрес, указанный в его шлюзе.

Что особенного в направлениях маршрута, которые не входят в диапазон IP-адресов моей сети?

Если вы выберете пункт назначения для своих маршрутов, который находится в диапазоне IP-адресов вашей сети, они будут автоматически работать должным образом.

Однако, если вы настроили пункт назначения вне диапазона IP-адресов сети, вам необходимо убедиться, что трафик для пункта назначения отправляется на интерфейс вашей частной сети. Для этого вам нужно вручную добавить маршрут в операционную систему каждого из ваших серверов.

Зарезервированы ли какие-либо IP-адреса?

Следующие IP-адреса не могут быть назначены вашему серверу:

  • Первый IP-адрес из диапазона IP-адресов вашей сети. Например, 10.0.0.0/8вы не можете использовать 10.0.0.1.
  • Сетевые и широковещательные IP-адреса любой подсети. Например, 10.0.0.0/24вы не можете использовать 10.0.0.0так же хорошо, как 10.0.0.255.
  • Специальный частный IP-адрес 172.31.1.1. Этот IP-адрес используется в качестве шлюза по умолчанию для общедоступного сетевого интерфейса вашего сервера.

Существуют ли какие-либо ограничения на использование сетей?

  • Вы можете подключить к сети до 100 серверов
  • Каждый сервер может иметь до 5 псевдонимов IP в дополнение к его частному основному IP.
  • Вы можете создать до 50 подсетей
  • Вы можете создать до 100 маршрутов

Могу ли я включить свои выделенные корневые серверы Hetzner в свои облачные сети Hetzner?

Пока нет, но мы надеемся скоро это изменить. Следите за объявлениями об этом в наших социальных сетях или в нашей информационной рассылке для клиентов.

Как использовать сети? У вас есть какие-нибудь руководства / учебники?

Да! Это очень полезно для начала.

Если вы хотите написать руководство о нашей функции «Сети», обратитесь к нашему менеджеру сообщества здесь, написав вопрос.

Балансировщики нагрузки — FAQ

Что такое балансировщик нагрузки и почему он может быть мне полезен?

Балансировщик нагрузки обычно устанавливается перед вашими серверами приложений и действует как первая точка контакта для входящих запросов. В зависимости от того, какой алгоритм он использует, он может распределять трафик по вашей инфраструктуре. Это приводит к повышению доступности, масштабируемости и производительности вашего приложения.

Сколько балансировщиков нагрузки я могу создать?

У каждого клиента есть ограничение по умолчанию на количество облачных ресурсов, которые мы одновременно предоставляем. Если вы хотите увеличить свой лимит, вы можете отправить запрос в нашу службу поддержки, открыв заявку в службу поддержки через Cloud Console. Наша команда быстро рассмотрит ваш запрос и, если все в порядке, увеличит ваш лимит.

Как вы выставляете счет за балансировщики нагрузки?

Балансировщики нагрузки оплачиваются так же, как и серверы. У них есть как ежемесячный предел цены, так и цена за час.

Какой производительности я могу ожидать от балансировщиков нагрузки?

Это сильно зависит от вашей конфигурации. От нашего самого маленького балансировщика нагрузки типа LB11 вы должны ожидать производительности, примерно эквивалентной запуску популярного программного обеспечения для балансировки нагрузки на облачном сервере CX11.

Является ли мой балансировщик нагрузки доступным?

Мы разработали балансировщики нагрузки для обеспечения высокой доступности. В случае аппаратного сбоя произойдет автоматическое переключение на резерв, и клиентам будет видно только короткое прерывание обслуживания.

Какие протоколы поддерживают балансировщики нагрузки?

Наши балансировщики нагрузки способны обрабатывать любой трафик на основе TCP, а также HTTP и HTTPS. По умолчанию они используют HTTP / 2, в зависимости от возможностей клиента.

Что такое проверки здоровья?

Проверки работоспособности защищают ваше приложение от сбоев одного сервера, гарантируя, что трафик направляется только к работоспособным целям. Есть два типа проверки работоспособности: активная и пассивная. Наши балансировщики нагрузки поддерживают оба.

Активные проверки работоспособности настраиваются и через определенные интервалы времени активно проверяют, живы ли целевые объекты балансировщиков нагрузки и отвечают на запросы.

Пассивные проверки работоспособности — это проверки, которые происходят пассивно с каждым запросом, который пересылается от балансировщика нагрузки к цели. Если цель считается невосприимчивой и, следовательно, «нездоровой», ее можно оживить только с помощью активной проверки работоспособности.

Что означает протокол прокси и нужно ли его включать?

!! Включение протокола прокси для целей, которые НЕ поддерживают его, сделает всю службу недоступной !!

ProxyProtocol используется для передачи информации о соединении через несколько уровней соединений. Его можно использовать для пересылки исходного IP-адреса клиента целевой службе. Чтобы это работало, ваше программное обеспечение для прослушивания на цели должно поддерживать эту функцию и иметь ее явную активацию.

Вот пример включения его для nginx: https://docs.nginx.com/nginx/admin-guide/load-balancer/using-proxy-protocol/

Пересылают ли балансировщики нагрузки специальные заголовки HTTP?

Если вы выберете протокол http или https, балансировщик нагрузки добавит эти заголовки в перенаправленный запрос:

  • X-Forwarded-For — содержит IP-адрес исходного клиента, отправившего запрос
  • X-Forwarded-Port — содержит порт прослушивания службы балансировки нагрузки. Поэтому, если ваш балансировщик нагрузки прослушивает порт 80, он будет содержать 80.
  • X-Forwarded-Proto — содержит протокол, который клиент использовал для связи с балансировщиком нагрузки. Может быть http или https.

Как определить, с какого IP-адреса исходил запрос?

Для сервисных протоколов http и https заголовок HTTP «X-Forwarded-For» содержит IP-адрес запрашивающего клиента.

Если ваша целевая служба поддерживает это, вы можете изучить возможность использования функции ProxyProtocol для достижения этой цели.

Могу ли я назначить плавающий IP-адрес своему балансировщику нагрузки?

Плавающие IP-адреса поддерживают только облачные серверы в качестве целей. Сами балансировщики нагрузки обладают высокой доступностью, поэтому использование плавающего IP-адреса не обязательно для достижения наилучшего времени безотказной работы.

Поскольку мы получаем этот запрос функции довольно часто, мы думаем о расширении балансировщиков нагрузки для поддержки этой функции в будущем.

Как я могу добавить сертификат, включая промежуточные сертификаты?

Чтобы добавить сертификат сервера со всеми необходимыми промежуточными сертификатами, вам необходимо объединить сертификаты. Вот как это работает:

-----BEGIN CERTIFICATE-----
(Your Primary SSL certificate)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Your Intermediate certificate(s))
-----END CERTIFICATE-----

Этот комбинированный сертификат можно вставить в форму сертификата.

Постоянный плавающий IP-адрес

Если вы используете более одного плавающего IP-адреса, то номер интерфейса (eth0: 1 ) будет увеличен (например, eth0: 2 ).

В дистрибутивах на основе Debian (Ubuntu — до 20.04, Debian):

  1. Доступ к серверу через SSH
  2. Создайте файл конфигурации и откройте редакторtouch /etc/network/interfaces.d/60-my-floating-ip.cfg nano /etc/network/interfaces.d/60-my-floating-ip.cfg
  3. Вставьте следующую конфигурацию в редактор и замените  your.Float.ing.IP  своим плавающим IP-адресом.

IPv4:

 auto eth0:1
 iface eth0:1 inet static
     address your.Float.ing.IP
     netmask 32

IPv6:

 auto eth0:1
 iface eth0:1 inet6 static
     address one IPv6 address of the subnet, e.g. 2a01:4f9:0:2a1::2
     netmask 64
  1. Теперь вам следует перезапустить вашу сеть. Внимание: это сбросит ваше сетевое соединение.sudo service networking restart

Ubuntu 20.04:

  1. Доступ к серверу через SSH
  2. Создайте файл конфигурации и откройте редакторtouch /etc/netplan/60-floating-ip.yaml nano /etc/netplan/60-floating-ip.yaml
  3. Вставьте следующую конфигурацию в редактор и замените  your.Float.ing.IP  своим плавающим IP-адресом.

IPv4:

 network:
   version: 2
   ethernets:
     eth0:
       addresses:
       - your.float.ing.ip/32

IPv6:

 network:
   version: 2
   ethernets:
     eth0:
       addresses:
       - your.float.ing.ip/64
  1. Теперь вам следует перезапустить вашу сеть. Внимание: это сбросит ваше сетевое соединение.sudo netplan apply

В дистрибутивах на основе RHEL (Fedora, CentOS):

  1. Доступ к серверу через SSH
  2. Создайте файл конфигурации и откройте редакторtouch /etc/sysconfig/network-scripts/ifcfg-eth0:1 vi /etc/sysconfig/network-scripts/ifcfg-eth0:1
  3. Вставьте следующую конфигурацию в редактор и замените  your.Float.ing.IP своим плавающим IP-адресом.

IPv4:

 BOOTPROTO=static
 DEVICE=eth0:1
 IPADDR=your.Float.ing.IP
 PREFIX=32
 TYPE=Ethernet
 USERCTL=no
 ONBOOT=yes

IPv6:

 BOOTPROTO=none
 DEVICE=eth0:1
 ONBOOT=yes
 IPV6ADDR=one IPv6 address of the subnet, e.g. 2a01:4f9:0:2a1::2/64
 IPV6INIT=yes
  1. Теперь вам следует перезапустить вашу сеть. Внимание: это сбросит ваше сетевое соединение.systemctl restart network

Плавающие IP — FAQ

Что такое плавающие IP-адреса и как они работают?

Каждый сервер Hetzner Cloud автоматически поставляется с одной сетью IPv4 и одной сетью IPv6 (/ 64). Вы также можете добавить плавающие IP-адреса за небольшую плату.

Плавающие IP-адреса помогают создавать очень гибкие настройки. Вы можете назначить плавающий IP любому серверу. Затем сервер может использовать этот IP-адрес. Вы можете переназначить его другому серверу в любое время или можете отменить назначение плавающего IP-адреса для всех серверов.

Плавающие IP-адреса можно использовать глобально. Это означает, что вы можете назначить плавающий IP-адрес серверу в одном месте, а затем переназначить его серверу в другом месте. Для оптимальной маршрутизации и задержки плавающие IP-адреса должны использоваться в том месте, где они были созданы.

Чтобы плавающие IP-адреса работали, вы должны настроить их в операционной системе сервера, который вы используете.

Чтобы временно настроить плавающий IPv4 «1.2.3.4», вы можете запустить

ip addr add 1.2.3.4/32 dev eth0

Обратите внимание, что эта конфигурация не выдержит перезагрузки.

Чтобы настроить первый IPv6-адрес плавающего сетевого блока IPv6 2a01: 4f8: 2c17: 2c :: / 64, вы должны запустить:

ip addr add 2a01:4f8:2c17:2c::1/128 dev eth0

Как постоянно настроить плавающий айпи?

Чтобы узнать, как настроить постоянный плавающий IP-адрес, прочитайте наш учебник

API — FAQ

Могу ли я получить доступ к вашей службе через API?

Конечно! Вы можете найти нашу документацию по API на docs.hetzner.cloud .

Если вы разрабатываете что-то против нашего API, мы будем благодарны за отзывы через форму поддержки облачной консоли.

Вы спонсируете усилия по интеграции Hetzner Cloud в библиотеки с открытым исходным кодом?

Да, мы делаем: если вы разрабатываете интеграцию на основе нашего API, и ваш продукт является открытым исходным кодом, вы можете иметь право на бесплатный одноразовый кредит в размере 50 евро (без НДС) для вашей учетной записи. Свяжитесь с нами через страницу поддержки в облачной консоли и сообщите нам следующее:

  • Тип интеграции, которую вы хотели бы разработать
  • Ссылка на репозиторий GitHub, который вы будете использовать для проекта
  • Ссылка на другую работу с открытым исходным кодом, которую вы уже сделали (если вы это сделали). Список интеграций, которые уже выполнены или над которыми работают, можно найти здесь:
https://github.com/hetznercloud/awesome-hcloud

Мы хотели бы услышать от вас! 🙂

Есть ли инструмент командной строки (CLI) для доступа к Hetzner Cloud?

Да. Он представлен здесь как проект с открытым исходным кодом: https://github.com/hetznercloud/cli

Если вы хотите внести свой вклад или расширить его, сделайте это, открыв запросы на вытягивание.

Есть ли библиотека для доступа к Hetzner Cloud с моего языка программирования?

В настоящее время мы предоставляем библиотеки для Go и Python с открытым исходным кодом.

Вы можете найти неофициальные библиотеки для многих языков в нашем списке интеграций: https://github.com/hetznercloud/awesome-hcloud

Поскольку наш API очень прост в использовании, вам может даже не потребоваться полная библиотека, и может быть достаточно быстрого запроса HTTPS; ознакомьтесь с нашей документацией по API на docs.hetzner.cloud .