Hetzner - DokuWiki

Netzkonfiguration Debian/ru

Inhaltsverzeichnis

Основной IP-адрес

IPv4

Выделенные серверы

Основной IP-адрес сервер Hetzner обычно относится к подсети /26 или /27. Для предотвращения случайного использования чужих IP-адресов, наша инфраструктура не принимает любые Ethernet пакеты, адресованные не на адрес шлюза. Для того чтобы был доступ к серверам в той же сети, в сетевых настройках наших стандартных образов уже есть статичный маршрут. Этот статичный маршрут направляет трафик на шлюз вместо непосредственной отправки соседнему серверу.

Однако, это не самое лучшее решение, т.к. в таблице маршрутизации присутствует противоречивая, дублируемая информация. Более правильный способ получения доступа к серверам в той же сети — использование сетевой маски 255.255.255.255 (/32). В этом случае сервер считает, что он один в своей сети и не будет посылать пакеты напрямую. Однако, при этом нужно явно задать маршрут до шлюза. Это легко сделать в Debian добавив опцию «pointopoint 192.168.0.1» в конфигурации. Замените «192.168.0.1» на IP-адрес вашего шлюза.

## /etc/network/interfaces example Hetzner root server
# Loopback-Adapter
auto lo
iface lo inet loopback

# LAN interface
auto eth0
iface eth0 inet static
  # Main IP address of the server
  address 192.168.0.250
  # Netmask 255.255.255.255 (/32) independent from the
  # real subnet size (e.g. /27)
  netmask 255.255.255.255
  # explicit host route to the gateway
  gateway 192.168.0.1
  pointopoint 192.168.0.1

Больше нет необходимости в дополнительном маршруте до шлюза.

Виртуальные серверы (модели VQ/VX)

Настройка виртуальных серверов полностью совпадает с настройкой выделенных серверов. Однако, по сравнению с выделенными серверами, дополнительный маршрут можно не задавать, так как привязка IP-адреса к MAC-адресу производится на хост-системе.

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

Виртуальные серверы (модели CX)

Публичный IP-адрес перенаправляется на частный IP-адрес виртуального сервера посредством 1:1 NAT. В стандартной установке сеть настраивается при помощи DHCP. Статическая настройка возможна, но не рекомендуется, так как может потребовать изменений при появлении у виртуальных серверов новых возможностей.

IPv6

Выделенные серверы и виртуальные серверы моделей CX

В принципе, всё описанное выше также применимо и к IPv6. Но вместо одиночного IP-адреса вы получаете блок адресов /64.

В противоположность настройки IPv4, в IPv6 нет настройки «pointopoint».

Например:

  • Блок адресов: 2a01:4f8:61:20e1::2 - 2a01:4f8:61:20e1:ffff:ffff:ffff:ffff
  • Мы используем первый адрес из блока: 2a01:4f8:61:20e1::2
  • Шлюз: fe80::1
## /etc/network/interfaces example Hetzner root server
# Loopback-Adapter
auto lo
iface lo inet loopback

# IPv6 LAN
auto eth0
iface eth0 inet6 static
  # Main IPv6 Address of the server
   address 2a01:4f8:61:20e1::2
   netmask 64
   gateway fe80::1

Виртуальные серверы (модели VQ и VX)

Для этих моделей виртуальных серверов шлюз расположен в выделенной /64 подсети.

Например:

  • Блок адресов: 2a01:4f8:61:20e1::2 — 2a01:4f8:61:20e1:ffff:ffff:ffff:ffff
  • Шлюз: 2a01:4f8:61:20e1::1
## /etc/network/interfaces example Hetzner Virtual Server
# Loopback-Adapter
auto lo
iface lo inet loopback
#
# IPv6 LAN
auto eth0
iface eth0 inet6 static
  # Main IPv6 Address of the server
  address 2a01:4f8:61:20e1::2
  netmask 64
  gateway 2a01:4f8:61:20e1::1

IPv4 + IPv6

Ожидается, что в ближайшие несколько лет IPv4 и IPv6 будут использоваться параллельно. Оба конфигурационных файла просто объединяются, опуская дублирующиеся строки.

Выделенные серверы

## /etc/network/interfaces example Hetzner root server
# Loopback-Adapter
auto lo
iface lo inet loopback

# LAN interface
auto eth0
iface eth0 inet static
  # Main IP address of the server
  address 192.168.0.250
  # Netmask 255.255.255.255 (/32) independent from the
  # real subnet size (e.g. /27)
  netmask 255.255.255.255
  # explicit host route to the gateway
  gateway 192.168.0.1
  pointopoint 192.168.0.1

iface eth0 inet6 static
  # Main IPv6 Address of the server
  address 2a01:4f8:61:20e1::2
  netmask 64
  gateway fe80::1

Виртуальные серверы

## /etc/network/interfaces Example Hetzner Virtual Server
# Loopback-Adapter
auto lo
iface lo inet loopback

# LAN interface
auto eth0
iface eth0 inet static
  # Main IP address of the server
  address 192.168.0.250
  netmask 255.255.255.224
  gateway 192.168.0.1

# IPv6 LAN
iface eth0 inet6 static
  # Main IPv6 Address of the server
  address 2a01:4f8:61:20e1::2
  netmask 64
  gateway 2a01:4f8:61:20e1::1
  

Дополнительные IP-адреса

Для всех выделенных серверов (за исключением SX131/291) можно заказать до 6 дополнительных IP-адресов. Конфигурация сети идентична в обоих случаях.

Для использования дополнительных IP-адресов требуются пакеты «iproute» и «ip». Конфигурация с псевдо-интрефейсами (eth0:1, eth0:2 и т.д.) устарела и её не следует использовать. Для добавления IP-адреса выполните:

ip addr add 10.4.2.1/32 dev eth0

Команда «ip addr» показывает активные в данный момент IP-адреса. Так как сервер использует всю сеть, то следует добавлять адреса с префиксом /32, что означает маску сети 255.255.255.255.

Настройка

Добавьте в файл /etc/network/interfaces под соответствующим интерфейсом (например, «eth0») следующие строки:

up ip addr add 10.4.2.1/32 dev eth0
down ip addr del 10.4.2.1/32 dev eth0

после «up» и «down» следует одна команда, выполняемая bash. Их можно повторить для нескольких IP-адресов. Недостаток этого метода в том, что приходится дважды указывать имя интерфейса и IP-адрес. При большом количестве используемых IP-адресов это неэффективно и чревато ошибками. При изменении данных все записи должны быть скорректированы.

Альтернативный способ настройки

Внимание: в данном разделе описано стороннее программное обеспечение (www.wertarbyte.de), не поддерживаемое Hetzner. В случае возникновение каких-либо проблем обращайтесь к разработчику.

Скрипт находится в пакете «ifupdown-scripts-wa», котой не входит в официальный дистрибутив Debian. Перед установкой пакета добавьте следующие строки в файл с настройками APT:

# /etc/apt/sources.list.d/wertarbyte.list
# Tartarus, ifupdown-scripts etc.
deb http://wertarbyte.de/apt/ ./

Полностью процедура установки может быть завершена при помощи следующей последовательности команд:

wget -P/etc/apt/sources.list.d/ http://wertarbyte.de/apt/wertarbyte-apt.list
wget -O - http://wertarbyte.de/apt/software-key.gpg | apt-key add -
apt-get update
apt-get install ifupdown-scripts-wa

Если вы не хотите устанавливать скрипт при помощи системы пакетов, то можно его скачать: http://wertarbyte.de/debian/ifupdown/addresses и разместить в директории /etc/network/if-up.d/, а также сделать ссылку на него в директории /etc/network/if-down.d/:

cd /etc/network/if-up.d/ && \
wget http://wertarbyte.de/debian/ifupdown/addresses && \
chmod +x addresses && \
cd ../if-down.d/ && \
ln -s ../if-up.d/addresses .

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

Этот скрипт расширяет синтаксис конфигурационного файла добавлением команды «addresses». Она позволяет указывать дополнительные IP-адреса (с префиксом через /):

addresses 10.4.2.1/32 10.4.2.2/32 10.4.2.3/32

Если эту строку добавить к настройкам «eth0», то указанные адреса будут добавляться при активации интерфейса и удаляться при деактивации.

Также можно использовать несколько строк для объединения адресов в категории:

addresses       10.4.2.1/32
addresses-https 10.4.2.2/32 10.4.2.3/32 # SSL-Websites
addresses-mail  10.4.2.4/32             # Mailserver

Скрипт обрабатывает команды, начинающиеся с ключевого слова «addresses-» и содержащие метку по вашему выбору. Метки не должны повторяться. Повторение метки вызовет синтаксическую ошибку в ifupdown и настройка интерфейса будет прервана, что приведёт к недоступности сервера.

Добавленные при помощи команды «ip addr» IP-адреса не отображаются в выводе команды «ifconfig». Используйте команду «ip addr show» для просмотра таких IP-адресов. Скрипт также может создать псевдо-интерфейсы:

addresses 10.0.0.1/32 10.0.0.2/32 10.0.0.3/32
create_alias_devices yes

В этом случае скрипт создаст пронумерованные интерфейсы eth0:X. Такие интерфейсы отображаются в выводе команды «ifconfig».

Вместо простой нумерации также можно использовать метки:

addresses-https 10.0.0.1/32 10.0.0.3/32
addresses-vhost 10.0.0.2/32
label_addresses yes

В результате будут созданы интерфейсы «eth0:https» и «eth0:vhost». Такие интерфейса отображаются как в выводе «ip addr», так и в выводе «ifconfig».

Дополнительные IP-адреса (виртуализация)

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

Схема с маршрутизацией

При таком типе настройки пакеты маршрутизируются. Потребуется настроить дополнительный мостовой интерфейс настройками, похожими на настройки eth0 (без указания шлюза).

На хост-системе:

auto eth0
iface eth0 inet static
   address (основной IP)
   netmask 255.255.255.255
   pointopoint (IP шлюза)
   gateway (IP шлюза)

iface eth0 inet6 static
  address 2a01:4f8:XX:YY::2
  netmask 128
  gateway fe80::1

auto virbr1
iface virbr1 inet static
   address (основной IP)
   netmask 255.255.255.255
   bridge_ports none
   bridge_stp off
   bridge_fd 0
   pre-up brctl addbr virbr1
   up ip route add (дополнительный IP)/32 dev virbr1
   down ip route del (дополнительный IP)/32 dev virbr1

 iface virbr1 inet6 static
   address 2a01:4f8:XX:YY::2
   netmask 64

На хост-системе следует создать маршруты для каждого дополнительного IP-адреса. Настройка eth0 для IPv4 остаётся неизменной. Для IPv6 префикс уменьшается с /64 до /128.

Гостевая система:

auto eth0
iface eth0 inet static
   address (дополнительный IP)
   netmask 255.255.255.255
   pointopoint (основной IP)
   gateway (основной IP)

iface eth0 inet6 static
  address 2a01:4f8:XX:YY::4
  netmask 64
  gateway 2a01:4f8:XX:YY::2

Схема с мостом

При таком типе настройки пакеты отправляются непосредственно в сеть Hetzner. Так как MAC-адрес гостевой системы «виден» снаружи, для каждого IP-адреса следует запросить отдельный MAC-адрес через панель Robot и назначить его сетевой карте виртуальной машины. Вместо eth0 настраивается мостовой интерфейс.

# remove or disable configuration for eth0
#auto eth0
#iface eth0 inet static

auto  br0
iface br0 inet static
 address (основной IP)
 netmask (как eth0, например, 255.255.255.254)
 gateway (такой же как у основного IP)
 bridge_ports eth0
 bridge_stp off
 bridge_fd 1
 bridge_hello 2
 bridge_maxage 12


© 2018. Hetzner Online GmbH. Alle Rechte vorbehalten.