Основной IP-адрес
IPv4
Специальные серверы
Основной IP-адрес выделенного сервера обычно находится в подсети / 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
Дополнительный маршрут к шлюзу больше не нужен.
IPv6
Выделенные серверы / CX vServers
В принципе, вышесказанное относится и к IPv6. Но вместо одного основного IP вы получаете блок / 64.
В отличие от конфигурации IPv4, в IPv6 нет настройки «точка-точка».
Например:
- Блок адресов:
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
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-адресов. Конфигурация сети аналогична в обоих случаях.
Для использования дополнительных адресов на сервере (без виртуализации) необходимы пакет iproute
и служебная программа ip
. Конфигурация с псевдонимами интерфейсов (например eth0:1
, eth0:2
и т. Д.) Устарела и больше не должна использоваться. Чтобы добавить адрес, выполните:
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
ожидайте только одну строку кода оболочки, и это может повторяться для нескольких адресов. Недостатком является то, что имя и адрес интерфейса должны быть указаны дважды. Если используется много IP-адресов, файл конфигурации становится запутанным и подверженным ошибкам. Если данные изменены, все записи необходимо скорректировать.
Альтернативная настройка через скрипт адресов
ВНИМАНИЕ : Следующие инструкции предполагают установку программного обеспечения третьей стороной (www.wertarbyte.de). Это не поддерживается Hetzner. В случае ошибок или проблем обращайтесь к разработчику .
Скрипт находится в пакете ifupdown-scripts-wa
, который не является частью официального дистрибутива Debian. Если для конфигурации APT добавлена следующая строка, этой apt-get install ifupdown-scripts-wa
команды достаточно для правильной установки скрипта:
# /etc/apt/sources.list.d/wertarbyte.list
# Tartarus, ifupdown-scripts etc.
deb [http://wertarbyte.de/apt/](http://wertarbyte.de/apt/) ./
Полную процедуру установки можно сократить с помощью следующих команд:
wget -P/etc/apt/sources.list.d/ [http://wertarbyte.de/apt/wertarbyte-apt.list](http://wertarbyte.de/apt/wertarbyte-apt.list)
wget -O - [http://wertarbyte.de/apt/software-key.gpg](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](http://wertarbyte.de/debian/ifupdown/addresses) && \
chmod +x addresses && \
cd ../if-down.d/ && \
ln -s ../if-up.d/addresses .
Рекомендуется установка через пакетную систему, так как текущая версия скрипта всегда доступна.
Сценарий расширяет синтаксис файла конфигурации, добавляя новую команду address`. Это позволяет указать дополнительные IP-адреса привязки (с сетевой маской в / -notation):
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-адреса, которые были добавлены через ip addr
, не отображаются в выводе ifconfig
; команда ip addr show
требуется, чтобы показать их. Однако сценарий адресов также может настраивать псевдонимы устройств:
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 (Main IP)
netmask 255.255.255.255
pointopoint (Gateway IP)
gateway (Gateway IP)
#
iface eth0 inet6 static
address 2a01:4f8:XX:YY::2
netmask 128
gateway fe80::1
#
auto virbr1
iface virbr1 inet static
address (Main IP)
netmask 255.255.255.255
bridge_ports none
bridge_stp off
bridge_fd 0
pre-up brctl addbr virbr1
up ip route add (Additional IP)/32 dev virbr1
down ip route del (Additional 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 (Additional IP)
netmask 255.255.255.255
pointopoint (Main IP)
gateway (Main IP)
#
iface eth0 inet6 static
address 2a01:4f8:XX:YY::4
netmask 64
gateway 2a01:4f8:XX:YY::2
Мостовой
В мостовой конфигурации пакеты отправляются напрямую. Гостевая система ведет себя как независимая. Так как это делает MAC-адреса гостевой системы видимыми извне, виртуальный MAC-адрес должен быть запрошен для каждого IP-адреса через робота Hetzner и назначен гостевой сетевой карте. Мост получает ту же конфигурацию сети, что и eth0.
# remove or disable configuration for eth0
#auto eth0
#iface eth0 inet static
#
auto br0
iface br0 inet static
address (Main IP)
netmask (like eth0, e.g: 255.255.255.254)
gateway (same as that for the main IP)
bridge_ports eth0
bridge_stp off
bridge_fd 1
bridge_hello 2
bridge_maxage 12
Конфигурация eth0
опускается без замены.