vSwitch для Windows Server

Основная информация

Благодаря функции vSwitch компания Hetzner Online создала инструмент для ваших выделенных корневых серверов, который позволяет вам соединять ваши серверы в разных местах друг с другом с помощью виртуальных сетей уровня 2. В своей учетной записи в интерфейсе администрирования роботов вы можете создавать и настраивать vSwitches, используя кнопку «vSwitches» в обзоре сервера. Вы можете найти более подробную информацию в этой статье  Vswitch / en .

Конфигурация сервера (Windows)

В хост-системе

Для vSwitch вам необходимо настроить интерфейс с идентификатором VLAN, который вы ввели в Robot. Вы должны ограничить MTU интерфейса до 1400.

NIC teaming

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

В диспетчере серверов Windows перейдите в «Локальный сервер», а затем в «Объединение сетевых адаптеров».

Теперь вы увидите новое окно для объединения сетевых адаптеров . Создайте новую команду, перейдя в « Команды» , нажав « Задачи» , а затем — « Новая команда» .

Добавьте новый интерфейс в команду, перейдя в Адаптеры и интерфейсы . Затем нажмите Team Interfaces и выберите правильный адаптер. Затем перейдите в « Задачи» и нажмите « Добавить интерфейс» . Введите идентификатор VLAN, выбранный для вашего vSwitch в Robot.

Конфигурация интерфейса

Теперь вы можете управлять созданным интерфейсом VLAN с помощью объединения сетевых адаптеров. Перейдите в панель управления, а затем в Настройка адаптера .

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

Добавить IP

Вы можете настроить IP как обычно, перейдя в свойства интерфейса.

Более одного IP на интерфейсе

Вы можете добавить дополнительные IP — адреса, перейдя в диалоговое окно TCP / IP , а затем нажав на Advanced … кнопку.

MTU

Уменьшите MTU до 1400 для интерфейсов VLAN. Вы можете настроить это через командную строку.

Получите имена и идентификаторы интерфейсов:

\:> netsh interface ip show interface

Установите MTU для отдельных интерфейсов VLAN:

\:> netsh interface ipv4 set subinterface <id> mtu=1400 store=persistent

Сделайте то же самое для IPv6:

\:> netsh interface ipv6 set subinterface <id> mtu=1400 store=persistent

Hyper-V

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

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

Однако  MTU  все равно необходимо изменить для каждого виртуального сервера.

vSwitch

Вступление

Благодаря этой vSwitchфункции Hetzner Online создал инструмент для ваших выделенных корневых серверов, который позволяет вам соединять ваши серверы в нескольких местах друг с другом с помощью виртуальных сетей уровня 2. В своей учетной записи в интерфейсе администрирования роботов вы можете создавать и настраивать vSwitches, используя кнопку «vSwitches» в обзоре сервера.

Как мне настроить vSwitch?

Вы можете создать vSwitch на роботе, выбрав Main functions-> Server-> vSwitches. Затем назначьте вашему vSwitch имя и идентификатор VLAN. Идентификатор VLAN может находиться в диапазоне от 4000 до 4091.

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

Основной IP-адрес сервера и дополнительные IP-адреса + / или подсети все еще могут быть доступны без тегирования VLAN.

К серверу можно назначить до 5 виртуальных коммутаторов.

IP-адреса

Вы можете бесплатно использовать любые частные IP-адреса внутри VLAN. Кроме того, вы можете заказать дополнительные общедоступные подсети (IPv4 и IPv6), перейдя на IPsвкладку меню. Вы можете использовать эти подсети на всех серверах, которые вы назначаете своему vSwitch.

общедоступная подсеть VLANиспользуемые IP-адресаежемесячная оплата
Подсеть IPv4 / 29515,13 €
Подсеть IPv4 / 281321,85 €
Подсеть IPv4 / 2729€ 35,29
Подсеть IPv6 / 642 ^ 64€ 8,40

Движение

Внутренний трафик (по локациям) бесплатный. Для общедоступных подсетей vSwitches имеют лимит трафика 1 ТБ в месяц. Каждая дополнительная ТБ стоит 1,00 евро в месяц (без НДС). Базой для расчета является только исходящий трафик.

Межсетевой экран

Брандмауэр серверов также применяется к пакетам vSwitches. Обратите внимание, что если вы активировали брандмауэр, вы также должны включить внутренние IP-адреса в брандмауэре.

Конфигурация сервера (Linux)

Для vSwitch вам необходимо настроить интерфейс с идентификатором VLAN, который вы ввели в Robot. Вы должны ограничить MTU интерфейса до 1400.

Пример конфигурации сетевой карты enp0s31f6с VLAN ID 4000

Создать устройство VLAN

ip link add link enp0s31f6 name enp0s31f6.4000 type vlan id 4000
ip link set enp0s31f6.4000 mtu 1400
ip link set dev enp0s31f6.4000 up

Настроить IP-адрес <192.168.100.1>из частной подсети<192.168.100.0/24>

ip addr add 192.168.100.1/24 brd 192.168.100.255 dev enp0s31f6.4000

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

Пример конфигурации для IP <213.239.252.50>из публичной подсети <213.239.252.48/29>,Interface enp0s31f6.4000

echo "1 vswitch" >> /etc/iproute2/rt_tables
ip addr add 213.239.252.50/29 dev enp0s31f6.4000
ip rule add from 213.239.252.50 lookup vswitch
ip rule add to 213.239.252.50 lookup vswitch
ip route add default via 213.239.252.49 dev enp0s31f6.4000 table vswitch

Пример конфигурации Debian

Интерфейс enp0s31f6, VLAN 4000, частная сеть

# /etc/network/interfaces
auto enp0s31f6.4000
iface enp0s31f6.4000 inet static
  address 192.168.100.1
  netmask 255.255.255.0
  vlan-raw-device enp0s31f6
  mtu 1400

Добавьте IP-адрес <213.239.252.50>из общедоступной подсети <213.239.252.48/29>и IPv6 <2001:db8:61:20e1::2>из общедоступной подсети <2001:db8:61:20e1::/64>в хост-системе .

Создайте дополнительную таблицу маршрутизации.

echo "1 vswitch" >> /etc/iproute2/rt_tables
# /etc/network/interfaces
auto enp0s31f6.4000
iface enp0s31f6.4000 inet static
  address 192.168.100.1
  netmask 255.255.255.0
  vlan-raw-device enp0s31f6
  mtu 1400
  # ipv4 subnet
  up ip addr add 213.239.252.50/29 dev enp0s31f6.4000
  up ip rule add from 213.239.252.50 lookup vswitch
  up ip rule add to 213.239.252.50 lookup vswitch
  up ip route add default via 213.239.252.49 dev enp0s31f6.4000 table vswitch
  down ip addr del 213.239.252.50/29 dev enp0s31f6.4000
  down ip route del default via 213.239.252.49 dev enp0s31f6.4000 table vswitch
  down ip rule del to 213.239.252.50 lookup vswitch
  down ip rule del from 213.239.252.50 lookup vswitch
  # ipv6 subnet
  up ip -6 addr add 2001:db8:61:20e1::2/64 dev enp0s31f6.4000
  up ip -6 rule add from 2001:db8:61:20e1::2 lookup vswitch
  up ip -6 rule add to 2001:db8:61:20e1::2 lookup vswitch
  up ip -6 route add default via 2001:db8:61:20e1::1 dev enp0s31f6.4000 table vswitch
  down ip -6 addr del 2001:db8:61:20e1::2/125 dev enp0s31f6.4000
  down ip -6 route del default via 2001:db8:61:20e1::1 dev enp0s31f6.4000 table vswitch
  down ip -6 rule del to 2001:db8:61:20e1::2 lookup vswitch
  down ip -6 rule del from 2001:db8:61:20e1::2 lookup vswitch

Пример конфигурации для systemd

Интерфейс enp0s31f6(обычно называемый eth0, enp6s0 или enp0s31f6), VLAN 4000, частная сеть

Создайте два новых файла для systemd-networkd:

#/etc/systemd/network/10-enp0s31f6.4000.netdev
[NetDev]
Name=enp0s31f6.4000
Kind=vlan
MTUBytes=1400
[VLAN]
Id=4000
#/etc/systemd/network/10-enp0s31f6.4000.network
[Match]
Name=enp0s31f6.4000
[Network]
Description="VLAN 4000"
Address=192.168.100.2/24

Добавьте в файл следующую строку:

#/etc/systemd/network/10-enp0s31f6.network
....
[Network]
...
VLAN=enp0s31f6.4000

Перезапустить службу:

sudo systemctl restart systemd-networkd

Пример конфигурации systemd и netplan (например, Ubuntu 18.04)

Новые экземпляры installimage создают сетевые конфигурации на основе netplan в Ubuntu 18.04. /etc/systemd/network/Каталог будет пустым. Чтобы настроить VLAN, вам нужно изменить файл netplan:

#/etc/netplan/01-netcfg.yaml
### Hetzner Online GmbH installimage
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s31f6:
      addresses:
...
  vlans:
    enp0s31f6.4000:
      id: 4000
      link: enp0s31f6
      mtu: 1400
      addresses:
        - 192.168.100.2/24

После этого вам необходимо выполнить следующие команды, и сеть должна быть доступна:

sudo /lib/netplan/generate
sudo systemctl restart systemd-networkd

Конфигурация сервера (Windows)

см. VSwitch для Windows Server

API

Вы также можете настроить vSwitches через API .

Пингплоттер

Вступление

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

Скачать

Бесплатную версию можно скачать с официального сайта .

Диагностика сети с помощью пингплоттера

На этом рисунке показан почти идеальный путь от клиента к серверу. Во втором столбце перечислены потери пакетов, то есть тестовые пакеты, которые были потеряны. Поскольку в этом примере не было потери пакетов, этот столбец пуст.

В столбцах IP и DNSName можно проследить путь, по которому проходят тестовые пакеты. Путь начинается с мюнхенского провайдера M-Net, на шагах 6 и 7 (на пиринговом узле INXS), переданных Noris, а затем, наконец, на шаге 9 (на пиринговом узле NIX), переданном сети Hetzner.

Столбцы Avg и Cur показывают время, необходимое пакету (в мс), чтобы добраться до перехода: Avg — среднее время, Cur — значение последнего тестового пакета.

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

mtr

Если у вас нет Pingplotter, вы можете получить те же базовые функции с программой mtrWinMTRдля Windows). Здесь описано, как работает mtr .

Типичные ошибки

Это «отстает»!

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

Pingplotter предлагает гораздо лучшую информацию:

Сразу видно, что ошибка (в данной симуляции) находится в сети M-Netz. Начиная с шага 4, наблюдаются значительные задержки, пакеты с шага 5 частично отбрасываются (что, в свою очередь, может быть причиной ошибки на шаге 4), а шаг 6 вызывает чрезмерные задержки. Подобные шаблоны отказов могут быть вызваны серьезной нехваткой, например, вызванной DDoS-атаками.

Потеря пакетов

В этом примере дело обстоит иначе: несмотря на то, что имеется много отброшенных пакетов, начинающихся с 10-го скачка, время проверки связи 37 мс находится в нормальном диапазоне. Это могло быть вызвано неисправным маршрутизатором или неисправным кабелем.

Все идет медленно

При подключении по DSL часто появляется следующий экран с ошибкой:

Эта трассировка на самом деле не показывает проблему. Пингплоттер снова более полезен:

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

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

Потери пакетов, которые нереальны

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

Асимметричная маршрутизация

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

Следующая анимация (требуется плагин Flash) иллюстрирует проблему:

Пример ошибки

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

Client ---> Server
1 	67 ms 	65 ms 	66 ms 	62.26.xx.xx
2 	63 ms 	63 ms 	65 ms 	62.26.251.97
3 	80 ms 	74 ms 	76 ms 	so-6-0-0.core3.f.tiscali.de (62.27.95.2)
4 	74 ms 	75 ms 	73 ms 	so-3-0-0.fra30.ip.tiscali.net (213.200.64.25)
5 	73 ms 	74 ms 	75 ms 	ffm-s2-rou-1071.DE.eurorings.net (80.81.192.22)
6 	75 ms 	74 ms 	75 ms 	ffm-s1-rou-1001.DE.eurorings.net (134.222.227.65)
7 	78 ms 	79 ms 	78 ms 	nbg-s1-rou-1071.DE.eurorings.net (134.222.227.30)
8 	84 ms 	78 ms 	79 ms 	gi-0-1-286-nbg5.noris.net (134.222.107.26)
9 	392 ms 	393 ms 	* 	ne.gi-2-1.RS8000.RZ2.hetzner.de (213.133.96.65)
10 	393 ms 	* 	392 ms 	et-2-16.RS3000.RZ2.hetzner.de (213.133.96.38)
11 	393 ms 	392 ms 	* 	(...)

Erst bei Traceroute в umgekehrter Richtung erkannte man die eigentliche Fehlerquelle:

Server ---> Client
1 	213.133.xx.xx (213.133.xx.xx) 	0.233 ms 	0.205 ms 	0.281 ms
2 	et-1-11.RS8000.RZ2.hetzner.de (213.133.96.37) 	0.653 ms 	0.660 ms 	0.650 ms
3 	nefkom-gw.hetzner.de (213.133.96.66) 	1.119 ms 	0.423 ms 	0.415 ms
4 	GW-SF-BBR-06-S2-3.nefkom.de (212.114.147.23) 	0.635 ms 	0.807 ms 	0.457 ms
5 	hsa2.mun1.pos6-0.eu.level3.net (212.162.44.25) 	6.811 ms 	6.347 ms 	6.143 ms
6 	ae0-19.mp1.Munich1.Level3.net (195.122.176.193) 	315.587 ms 	314.949 ms 	315.164 ms
7 	so-0-0-0.mp1.Frankfurt1.Level3.net (212.187.128.90) 	301.324 ms 	300.789 ms 	300.742 ms
8 	gige1-2.core1.Frankfurt1.Level3.net (195.122.136.101) 	301.673 ms 	300.853 ms 	301.087 ms
9 	de-cix.fra30.ip.tiscali.net (80.81.192.30) 	- 	317.844 ms 	317.634 ms
10 	so-4-0-0.core3f.tiscali.de (213.200.64.26) 	318.453 ms 	- 	318.021 ms
11 	so-1-0-0.core1.hh.tiscali.de (62.27.95.38) 	307.780 ms 	307.230 ms 	307.252 ms
12 	ge-2-0-0.7.core0.hh.tiscali.de (62.27.93.83) 	307.431 ms 	307.298 ms 	307.084 ms
13 	62.26.251.101 (62.26.251.101) 	- 	307.753 ms 	308.933 ms
14 	(...) 	390.856 ms 	399.355 ms 	-

В этом случае произошла ошибка между двумя маршрутизаторами Level3 в Мюнхене. Проблема, похоже, заключалась в Hetzner, поскольку пакеты до Надежды 8 (Noris) были успешно возвращены. Однако тестовые пакеты в сеть Hetzner и обратно пошли другим маршрутом, что привело к задержке в Мюнхене.

Конфигурация сети с помощью systemd-networkd

пожалуйста, обратите внимание

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

К счастью, с помощью systemd-networkd можно использовать MAC-адреса для идентификации сетевых карт вместо того, чтобы полагаться на имена сетевых интерфейсов.

С нашим  Installimage  и нашими автоматическими установками мы обычно стараемся придерживаться метода настройки сети по умолчанию, используемого в дистрибутивах, но поскольку реализации, такие как  ifupdown  или  сетевые скрипты  , требуют указания имен интерфейсов, в настоящее время мы также используем systemd-networkd для установки систем CentOS и Debian. использование предсказуемых имен сетевых интерфейсов.

Синтаксис файла конфигурации .network

Вы можете найти информацию о файлах .network, используемых systemd-networkd здесь:  https://www.freedesktop.org/software/systemd/man/systemd.network.html .

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

Специальные серверы

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

Это означает, что при настройке фактической маски подсети IPv4, например / 27, другие системы в той же подсети будут недоступны.

Чтобы иметь доступ к системам в вашей подсети, вам необходимо настроить свой основной IPv4-адрес как адрес / 32. Поскольку в этом случае шлюз будет находиться за пределами сети IP-адресов, вам необходимо сообщить системе, как достичь шлюза.

IPv4

В следующем примере конфигурации настраиваются основной IP-адрес 1.2.3.4и шлюз 4.3.2.1для сетевого интерфейса с MAC-адресом 12:34:56:78:9a:bc.

Основной IP-адрес настраивается как адрес / 32 с использованием отдельного раздела [Address], где  Peer=<Gateway> сообщает системе, что она может достичь шлюза через интерфейс, для которого настроен адрес. См. Раздел  Выделенные серверы  для получения информации о том, почему вам следует использовать эту настройку для выделенных серверов.

# Config file /etc/systemd/network/10-mainif.network
[Match]
MACAddress=12:34:56:78:9a:bc # Main network interface MAC

[Network]
Gateway=4.3.2.1

[Address]
Address=1.2.3.4 # Main IP, /32 suffix is optional
Peer=4.3.2.1/32 # Gateway

IPv6

IPv6 можно настроить, указав IP-адрес  и  шлюз .

# Config file /etc/systemd/network/10-mainif.network
[Match]
MACAddress=12:34:56:78:9a:bc # Main network interface MAC

[Network]
Address=1:2:3:4::5/64
Gateway=fe80::1

IPv4 и IPv6

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

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

# Config file /etc/systemd/network/10-mainif.network
[Match]
MACAddress=12:34:56:78:9a:bc # Main network interface MAC

[Network]
Address=1:2:3:4::5/64
Gateway=4.3.2.1
Gateway=fe80::1

[Address]
Address=1.2.3.4 # Main IP, /32 suffix is optional
Peer=4.3.2.1/32 # Gateway

CX серверы

IPv4

Чтобы иметь возможность использовать будущие функции без изменения конфигурации, вам следует использовать  DHCP  для IPv4.

# Config file /etc/systemd/network/10-mainif.network
[Match]
MACAddress=12:34:56:78:9a:bc # Main network interface MAC

[Network]
DHCP=ipv4

IPv6

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

# Config file /etc/systemd/network/10-mainif.network
[Match]
MACAddress=12:34:56:78:9a:bc # Main network interface MAC

[Network]
Address=1:2:3:4::5/64
Gateway=fe80::1

IPv4 и IPv6

IPv4 и IPv6 можно настроить, объединив DHCP для IPv4 и статическую конфигурацию IPv6.

# Config file /etc/systemd/network/10-mainif.network
[Match]
MACAddress=12:34:56:78:9a:bc # Main network interface MAC

[Network]
DHCP=ipv4
Address=1:2:3:4::5/64
Gateway=fe80::1

Серверы CX, использующие сеть NAT

При использовании DHCP-серверов CX с использованием сети NAT не требуется специальной настройки.

Дополнительные IP / подсети

Дополнительные IP-адреса / подсети могут быть настроены путем добавления  ключевых слов Address = в раздел .network files [Network].

# Config file /etc/systemd/network/10-mainif.network
[Match]
MACAddress=12:34:56:78:9a:bc # Main network interface MAC

[Network]
Address=1:2:3:4::5/64
Gateway=4.3.2.1
Gateway=fe80::1
Address=5.6.7.8 # Additional single IP
Address=9.10.11.12/29 # Additional /29 subnet IP
Address=6:7:8:9::10/64 # Additional IPv6
[Address]
Address=1.2.3.4 # Main IP, /32 suffix is optional
Peer=4.3.2.1/32 # Gateway

Конфигурация сети Debian

Основной 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:1eth0: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опускается без замены.

Конфигурация сети CentOS

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

IPv4

Специальные серверы

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

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

При настройке через DHCP эта конкретная конфигурация не может быть передана, то есть применяется обычная конфигурация (без подсети / 32). Это не проблема, если IP-адреса не должны быть получены из одной подсети. Чтобы подключиться к любому серверу в той же подсети, вам необходимо использовать подсеть / 32 в конфигурации сети:

# /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=<MAC Address>
ONBOOT=yes
BOOTPROTO=static
IPADDR=<IP Address>
NETMASK=255.255.255.255
SCOPE="peer <Gateway IP>"
# potential additional IPv6 entries

Маршрут по умолчанию создается отдельно:

##/ etc/sysconfig/network-scripts/route-eth0
ADDRESS0=0.0.0.0
NETMASK0=0.0.0.0
GATEWAY0=<Gateway IP>

Возможные источники ошибки

Если после настройки вышеупомянутых сетевых параметров невозможно связаться с сервером, необходимо проверить, установлена ​​ли в файле переменная «GATEWAYDEV»  /etc/sysconfig/network. Это может быть одной из причин недоступности, о чем свидетельствует сообщение об ошибке, RTNETLINK answers: file existsкоторое появляется после перезагрузки сетевых настроек.

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

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

IPv6

Специальные серверы

Каждый сервер получает подсеть IPv6 / 64. В отличие от конфигурации IPv4, настройка точка-точка не требуется.

Пример:

  • Адресный блок: 2a01:4f8:61:20e1::1до2a01:4f8:61:20e1:ffff:ffff:ffff:ffff
  • Из которых мы используем первый IP: 2a01:4f8:61:20e1::2
  • Шлюз: fe80::1

Чтобы включить IPv6 на вашем сервере, добавьте в файл следующие строки  /etc/sysconfig/network-scripts/ifcfg-eth0:

IPV6INIT=yes
IPV6ADDR=<IPv6 Address>/<Prefix>
IPV6_DEFAULTGW=fe80::1
IPV6_DEFAULTDEV=eth0

Необязательно:  чтобы добавить дополнительные адреса IPv6 к интерфейсу в файле,  /etc/sysconfig/network-scripts/ifcfg-eth0 добавьте следующую строку:

IPV6ADDR_SECONDARIES=<IPv6 Address>/<Prefix>

Обратите внимание, что вы можете добавить столько адресов IPv6, сколько хотите, через пробел.

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

Настройка дополнительных одиночных IPv4-адресов

IP-адреса можно временно сделать доступными двумя способами:

  1. ifconfig eth0:1 192.0.2.10 netmask 255.255.255.255
  2. или
  3. ip addr add 192.0.2.10/32 dev eth0

CentOS

Постоянная конфигурация возможна по умолчанию только через псевдонимы интерфейсов ( eth0:1и eth0:2т. Д.). Для каждого IP-адреса необходимо создать файл:

/etc/sysconfig/network-scripts/ifcfg-eth0:1
/etc/sysconfig/network-scripts/ifcfg-eth0:2

Эти файлы должны содержать следующую информацию:

DEVICE=eth0:1
BOOTPROTO=none
ONBOOT=yes
IPADDR=<IP Address>
NETMASK=255.255.255.255

Наконец, service network restartнеобходимо запустить a или перезапустить сервер ( reboot).

Обратите внимание:  для использования IP-адресов в виртуальных машинах требуется другая конфигурация!

Fedora

Для постоянной конфигурации IP-адреса можно добавить в соответствующий файл конфигурации:

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
...
IPADDR=192.0.2.1
NETMASK=255.255.255.240
IPADDR0=192.0.2.10 # Additional IP
PREFIX0=28
IPADDR1=192.0.2.11
PREFIX1=28
IPADDR2=...

Настройка дополнительных подсетей IPv4

Подсети маршрутизируются на основном IP-адресе сервера. Как правило, нельзя использовать первый (сетевой IP) и последний (широковещательный IP). Это оставляет шесть пригодных адресов для подсети / 29.

Подсеть A / 29, состоящая из 8 IP-адресов, будет выглядеть так:

aaa.aaa.aaa.aaa (Network IP)
bbb.bbb.bbb.bbb
ccc.ccc.ccc.ccc
ddd.ddd.ddd.ddd
eee.eee.eee.eee
fff.fff.fff.fff
ggg.ggg.ggg.ggg
hhh.hhh.hhh.hhh (Broadcast IP)

В IP — адрес , bчтобы gможно конфигурировать и использовать в качестве отдельных IP — адресов. В качестве альтернативы можно создать файл:

/etc/sysconfig/network-scripts/ifcfg-eth0-range0

IPADDR_START=<Your Network Address + 1>
IPADDR_END=<Your Network Address + 6>
BROADCAST=<Your Network Address + 7>
CLONENUM_START=0
NETMASK=255.255.255.248

Перезапустите сервисную сеть с помощью service network restart.

Настройка дополнительной подсети IPv4 для виртуализации

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

Обязательным условием является установка утилит bridge-utils:

yum install bridge-utils

/etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=none
IPADDR=bbb.bbb.bbb.bbb
NETMASK=255.255.255.248 # adjust this accordingly. This is for a /29 subnet
STP=off
DELAY=0

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

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

Маршрутизированный (маршрутизатор)

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

Хост:

# /etc/sysconfig/network-scripts/ifcfg-eth0 (Hetzner Standard Installation)
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
IPADDR=<Main IP>
IPV6INIT=yes
IPV6ADDR=2a01:4f8:XXX:YYYY::2/128
IPV6_DEFAULTGW=fe80::1
IPV6_DEFAULTDEV=eth0
NETMASK=255.255.255.255
SCOPE="peer <Default Gateway>"
# /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
ONBOOT=yes
TYPE="Bridge"
BOOTPROTO=static
IPADDR=<Main IP>
NETMASK=255.255.255.255
IPV6INIT=yes
IPV6ADDR=2a01:4f8:XXX:YYYY::2/64
STP=off
DELAY=0

Конфигурация eth0 для IPv4 остается неизменной, если это стандартная установка через installimage / Robot (шлюз по умолчанию вводится в файл «route-eth0». См.  Выделенные серверы ). Для IPv6 префикс уменьшен с / 64 до / 128. Настройка маршрутов хоста для дополнительных адресов IPv4 выполняется через дополнительный файл конфигурации:

# /etc/sysconfig/network-scripts/route-br0
ADDRESS0=<Additional IP>
NETMASK0=255.255.255.255

Дальнейшие маршруты могут быть добавлены таким же образом с помощью ADDRESS1NETMASK1ADDRESS2NETMASK2и т.д. Для IPv6 , никаких дополнительных настроек не требуется.

Гость:

# /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
IPADDR=<Addon IP>
NETMASK=255.255.255.255
SCOPE="peer <Main IP>"
IPV6INIT=yes
IPV6ADDR=2a01:4f8:XXX:YYYY::4/64
IPV6_DEFAULTGW=2a01:4f8:XXX:YYYY::2

Мостовой

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

# /etc/sysconfig/network-scripts/ifcfg-eth0
# device: eth0
DEVICE=eth0
BOOTPROTO=static
HWADDR=<MAC of the physical NIC>
ONBOOT=yes
BRIDGE=br0
# /etc/sysconfig/network-scripts/ifcfg-br0 (pointopoint, Hetzner Standard)
DEVICE=br0
TYPE="Bridge"
BOOTPROTO=static
IPADDR=<Main IP>
NETMASK=255.255.255.255
SCOPE="peer <Gateway of the main IP>"
ONBOOT=yes
DELAY=0

Маршрут по умолчанию настраивается через дополнительный  route-eth0 файл конфигурации. Просто переименуйте его  route-br0.

Обратите внимание : в этой конфигурации использование IPv6 ограничено. Подсеть IPv6 может быть направлена ​​через  робота  либо на основной IP-адрес, либо на ОДИН из дополнительных IP-адресов. (точнее: на локальный адрес ссылки IPv6, который генерируется из MAC-адреса)