Перейти к основному содержимому

Связать S3 с другими продуктами

Последнее изменение:
к сведению

Связать S3 с другими продуктами по приватной сети можно только в определенных пулах: в пулах ru-3 и ru-7 — с серверами в России, в пуле uz-2 — с серверами в Узбекистане.

Для связи S3 с другими продуктами по приватной сети используется глобальный роутер.

  1. Если у вас еще нет глобального роутера, создайте роутер.
  2. Подключите подсеть другого продукта к глобальному роутеру.
  3. Создайте стыковочную подсеть для связи S3 с глобальным роутером.
  4. Пропишите статический маршрут к S3 на серверах в другом продукте.
  5. Настройте обращение к приватному эндпоинту S3 на серверах в другом продукте.

1. Создать глобальный роутер

  1. В панели управления в верхнем меню нажмите Продукты и выберите Глобальный роутер.
  2. Нажмите Создать роутер. Для каждого аккаунта установлен лимит в пять глобальных роутеров.
  3. Введите имя роутера.
  4. Нажмите Создать.
  5. Если роутер создался со статусом ERROR или завис в одном из статусов, создайте тикет.

2. Подключить подсеть другого продукта к глобальному роутеру

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

  1. В панели управления в верхнем меню нажмите Продукты и выберите Глобальный роутер.

  2. Откройте страницу роутера → вкладка Сети.

  3. Нажмите Создать сеть.

  4. Введите имя сети. Оно будет использоваться только в панели управления.

  5. Выберите услугу Серверы и оборудование.

  6. Выберите локацию сети.

  7. Выберите или введите VLAN.

  8. Если вы хотите создать сеть до внутреннего сегмента (Q-in-Q), укажите его тег — число от 2 до 4094. Если до VLAN уже есть сеть, обязательно укажите Q-in-Q-сегмент этого VLAN.

  9. Введите имя подсети. Оно будет использоваться только в панели управления.

  10. Введите CIDR — IP-адрес и маску приватной подсети. Можно ввести новую подсеть либо существующую приватную подсеть сервера, если она еще не добавлена на любой из глобальных роутеров в аккаунте. Подсеть должна соответствовать условиям:

    • принадлежать диапазону приватных адресов по RFC 1918: 10.0.0.0/8, 172.16.0.0/12 или 192.168.0.0/16;
    • иметь размер не меньше /29, так как три адреса будут заняты сетевым оборудованием Selectel;
    • не пересекаться с другими подсетями, добавленными на этот роутер, — в подсетях одного роутера не должно быть одинаковых IP-адресов;
    • если в сеть глобального роутера будет включен кластер Managed Kubernetes на облачных серверах, подсеть не должна пересекаться с диапазонами 10.10.0.0/16, 10.96.0.0/12, 10.250.0.0/16 и 10.251.0.0/24. Если в сеть будет включен кластер на выделенных серверах — с диапазонами 10.10.0.0/16, 10.222.0.0/16, 10.250.0.0/16, 10.251.0.0/24 и 172.250.0.0/14. Эти подсети участвуют во внутренней адресации Managed Kubernetes, их использование может привести к конфликтам в сети глобального роутера.
  11. Введите IP шлюза или оставьте первый адрес из подсети, который назначается по умолчанию. Не назначайте этот адрес на свои устройства, чтобы не нарушить работу сети.

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

  13. Нажмите Создать сеть.

  14. Опционально: проверьте топологию сети на глобальном роутере. В панели управления в верхнем меню нажмите ПродуктыГлобальный роутер → страница роутера → Карта сети.

  15. Если на шаге 8 вы указали тег Q-in-Q, нужно включить технологию Q-in-Q на порту коммутатора и настроить сетевой интерфейс приватной сети, которую вы указали на шаге 10. Подробнее в подразделе Настроить Q-in-Q инструкции Q-in-Q.

3. Создать стыковочную подсеть для связи S3 с глобальным роутером

  1. Создайте тикет. В тикете укажите:

    • ID глобального роутера, можно посмотреть в панели управления: в верхнем меню нажмите ПродуктыГлобальный роутер Selectel → страница роутера → под именем роутера скопируйте ID;
    • желаемый CIDR подсети размером не менее /28, которая будет использоваться в качестве стыковочной подсети от глобального роутера до S3. Подсеть должна принадлежать диапазону приватных адресов по RFC 1918: 10.0.0.0/8, 172.16.0.0/12 или 192.168.0.0/16. Подсеть не должна пересекаться с другими подсетями, добавленными на этот роутер, — в подсетях одного роутера не должно быть одинаковых IP-адресов;
    • эндпоинт — приватный IP-адрес с маской /32, на который будет отправляться трафик в S3. Этот IP-адрес не должен входить в выбранную стыковочную подсеть.
  2. Дождитесь ответа сотрудника Selectel о том, что связность от S3 до глобального роутера организована. Созданная стыковочная сеть не будет отображаться в глобальном роутере в панели управления. Если вам нужно изменить настройки связности на стороне S3, создайте тикет.

4. Прописать статические маршруты к S3

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

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

Если нет, на серверах, которые нужно связать с S3, пропишите статический маршрут:

  • в качестве подсети назначения укажите CIDR стыковочной подсети, которую указали в тикете на этапе 3;
  • в качестве шлюза укажите адрес из подсети, в которую добавлен соответствующий сервер и который используется как шлюз глобального роутера.
  1. Подключитесь к серверу.

  2. Откройте файл конфигурации сети:

    vi /etc/netplan/01-netcfg.yaml
  3. В конце блока с данными нужного сетевого интерфейса добавьте маршрут:

    routes:
    - to: <ip_address>/<mask>
    via: <gateway>

    Укажите:

    • <ip_address>/<mask> — подсеть, до которой нужен маршрут, с указанием маски, например 192.168.0.0/28;
    • <gateway> — шлюз для подсети текущего сервера, который указан на глобальном роутере.
  4. Если вам нужно прописать несколько маршрутов, добавьте их последовательно в том же блоке, например:

    routes:
    - to: 192.168.0.0/28
    via: 172.16.0.1
    - to: 192.168.1.0/28
    via: 172.16.0.1
  5. Сохраните файл.

  6. Проверьте настройки:

    sudo netplan try
  7. Примените изменения:

    netplan apply

5. Настроить обращение к приватному эндпоинту S3 на серверах в другом продукте

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

Чтобы избежать ошибки, необходимо задать соответствие приватного IP-адреса, который вы указали в качестве эндпоинта на этапе 3, и домена S3 API в нужном пуле (ru-3, ru-7 или uz-2).

Настройка зависит от того, есть ли в вашей инфраструктуре собственный DNS-рекурсор.

Добавьте на рекурсоре A-записи:

storage.selcloud.ru. IN A <endpoint_ip_address>
<s3_domain>. IN A <endpoint_ip_address>

Укажите:

  • <endpoint_ip_address> — приватный IP-адрес эндпоинта, который вы указали при создании стыковочной подсети на этапе 3;
  • <s3_domain>домен S3 API в нужном пуле (ru-3, ru-7 или uz-2). Если вы настраиваете связность для S3 в нескольких пулах, укажите каждый в отдельной записи.