Get Rewarded! We will reward you with up to €50 credit on your account for every tutorial that you write and we publish!

Hetzner Cloud: Сети

profile picture
Author
Lukas Kämmerling
Published
2019-07-10
Time to read
5 minutes reading time

Введение

В этом руководстве мы сделаем краткое описание Hetzner Cloud Сети — частные сети для Hetzner Cloud.

Мы предоставляем несколько вариантов управления Hetzner Cloud Сети:

В данном руководстве мы будем использовать утилиту командной строки hcloud.

Требования

  • Токен Hetzner Cloud API
    • Базовые знания о Hetzner Cloud
      • Мы предполагаем, что вы знаете что такое сервер, образ, тип сервера или том.
    • Откройте Hetzner Cloud Console https://console.hetzner.cloud, выберите проект и создайте новый API токен.
  • установлена последняя версия hcloud (> 1.13.0)
    • Windows, FreeBSD
      • Скачайте архив с бинарным файлом с Github
    • Linux
      • При помощи Homebrew
        • brew install hcloud
      • Скачайте архив с бинарным файлом с Github
    • MacOS
      • При помощи Homebrew
        • brew install hcloud
      • Скачайте архив с бинарным файлом с Github

Что такое Сети?

Сети — это бесплатная функция Hetzner Cloud, которая позволяет создавать частные IPv4 сети между облачными серверами. Например, можно создать сервер базы данных, доступный только в частной сети и не привязывать его к интерфейсу публичной сети.

Пожалуйста, используйте диапазоны адресов, указанные в RFC1918:

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

Сама Сеть глобально доступна, каждая Сеть может иметь до 50 подсетей. К Сети можно подключить до 100 серверов. Например, Сеть может иметь диапазон IP 10.0.0.0/8, подсеть может быть 10.0.0.0/24 и сервер в этой подсети может иметь IP 10.0.0.2.

Шаг 1 — Настройка тестовой среды

Прежде чем мы сможем начать, нам нужно настроить тестовую среду. Нам нужно как минимум два сервера, чтобы продемонстрировать использование Сетей. Для теста достаточно двух серверов модели CX11. Создаем их с помощью CLI следующими командами:

hcloud server create --name node-1 --type cx11 --image ubuntu-18.04
hcloud server create --name node-2 --type cx11 --image ubuntu-18.04

Далее создадим новую сеть и подсеть. Будем использовать диапазон 10.0.0.0/8, поэтому каждый сервер, подключенный к этой сети, получит IP из этого диапазона.

hcloud network create --name my-network --ip-range 10.0.0.0/8

Теперь создадим подсеть в этой сети. Укажем, что подсеть находится в зоне eu-central, которая включает в себя местоположения hel1, fsn1 и nbg1, имеет тип server и диапазон ip 10.0.0.0/24, поэтому каждый подключенный сервер получит ip из этого диапазона.

hcloud network add-subnet my-network --network-zone eu-central --type server --ip-range 10.0.0.0/24

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

hcloud server attach-to-network node-1 --network my-network
hcloud server attach-to-network node-2 --network my-network --ip 10.0.0.7

Теперь оба сервера должны иметь IP-адреса из вашей Сети. node-1 должен иметь IP 10.0.0.2 и node-2 должен иметь IP 10.0.0.7. Это можно проверить с помощью команд hcloud server describe node-1 и hcloud server describe node-2. При выполнении этой команды вы должны увидеть вывод, похожий на этот:

Name:		node-1
[...]
Private Net:
  - ID:			21
    Name:		my-network
    IP:			10.0.0.2
    Alias IPs:		-

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

hcloud server ssh node-1

Вы должны увидеть что-то вроде IP address for ens7: 10.0.0.2 в приветственном сообщении с вашего сервера!

Шаг 2 — Сети в действии

Вы успешно настроили сети, теперь давайте сделаем несколько небольших тестов. Для начала откроем два окна терминала и подключимся к серверам.

Первое окно:

hcloud server ssh node-1

Второе окно:

hcloud server ssh node-2

Теперь выполним пинг от каждого узла.

Первое окно:

ping 10.0.0.7

Второе окно:

ping 10.0.0.2

Вы должны увидеть аналогичный вывод в каждом окне:

Первое окно:

root@node-1:~# ping 10.0.0.7
PING 10.0.0.7 (10.0.0.7) 56(84) bytes of data.
64 bytes from 10.0.0.7: icmp_seq=1 ttl=63 time=0.464 ms
64 bytes from 10.0.0.7: icmp_seq=2 ttl=63 time=0.969 ms

Второе окно:

root@node-2:~# ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=63 time=2.89 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=63 time=0.630 ms

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

Посмотрим, как идет трафик между этими узлами. Выполним mtr на node-1.

Первое окно:

mtr 10.0.0.7

Вы должны получить результат, подобный этому:

                                       Packets               Pings
 Host                                Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 10.0.0.1                          0.0%    45    8.8   7.8   5.4  11.1   1.0
 2. 10.0.0.7                          0.0%    44    0.6   0.7   0.5   2.0   0.3

Как видите, пакеты к 10.0.0.7 идут через шлюз (10.0.0.1) и затем непосредственно к месту назначения 10.0.0.7! Между ними больше никого нет. Чтобы показать разницу выполним mtr на публичный IP-адрес node-2. В нашем примере публичный IP 203.0.113.XX.

Первое окно:

mtr 203.0.113.XX # укажите настоящий публичный IP-адрес node-2

Результат:

 1. _gateway                          0.0%     4    0.2   0.2   0.1   0.2   0.0
 2. XXXXX.your-cloud.host             0.0%     4    0.3   0.7   0.3   1.9   0.8
 3. XXX.cloud1.YYYYYY.hetzner.com     0.0%     4   13.5  15.3  13.5  19.0   2.5
 4. YYYYY.your-cloud.host             0.0%     4    0.6   0.6   0.3   1.0   0.3
 5. ???
 6. static.XX.113.0.203.clients.your  0.0%     3    0.5   0.6   0.5   0.6   0.1

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

Вывод

Теперь у вас есть краткий обзор функции Hetzner Cloud Сети. Как вы можете видеть, существует множество способов использования данной функции, таких как базы данных, kubernetes или безопасное подключение к серверам через vpn.

Want to contribute?

Get Rewarded: Get up to €50 in credit! Be a part of the community and contribute. Do it for the money. Do it for the bragging rights. And do it to teach others!

Report Issue
Try Hetzner Cloud

Get 20€ free credit!

Valid until: 31 December 2024 Valid for: 3 months and only for new customers
Get started
Want to contribute?

Get Rewarded: Get up to €50 credit on your account for every tutorial you write and we publish!

Find out more