Hetzner - DokuWiki

Zusaetzliche IP-Adressen/ru

Все выделенные и виртуальные серверы поставляются с одним IPv4 адресом и одной IPv6 подсетью /64.

Дополнительные IPv4 адреса можно заказать через Robot. Смотрите также статью IP Adresses.

Обратите внимание: в этой статье описываемые базовые процедуры сопровождаются соответствующими командами linux.

Для таких систем как FreeBSD требуется специальная настройка.

Inhaltsverzeichnis

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

Основной IPv4 адрес сервера это IP-адрес изначально выделенный для сервера и настроенный в процессе автоматической установки.

Для IPv6 подсетей нет такого понятия как основной IP-адрес. При автоматической установке настраивается адрес ::2 из выделенной подсети.

Для выделенных и виртуальных серверов (начиная с виртуальных серверов модели CX) IPv6 подсеть маршрутизируется через link-local адрес сетевого адаптера. Если дополнительный одиночный IPv4 адрес имеет свой собственный MAC адрес, то IPv6 подсеть может быть маршрутизирована через его link-local адрес. Эта возможность доступна в панели Robot.

Конкретный link-local адрес вычисляется на основании MAC адрес согласно RFC 4291 и автоматически назначается на сетевой интерфейс:

# ip address
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 54:04:a6:f1:7b:28 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::5604:a6ff:fef1:7b28/64 scope link
       valid_lft forever preferred_lft forever

На старых виртуальных серверах (модели VQ/VX) IPv6 подсеть не маршрутизируется на сервер, а является локальной сетью. В этом случае, обычно, адрес ::1 из подсети используется как шлюз.

Далее по тексту в качестве основного IPv4 адреса используется 192.0.2.84.

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

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

  • 2001:db8:61:20e1::/64 (IPv6 подсеть)
  • 192.0.2.92 (одиночный IPv4 адрес)
  • 203.0.113.40/29 (IPv4 подсеть)

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

Обычно в IPv4 подсети адрес сети и широковещательный адрес зарезервированы. Для приведённой выше подсети это, соответственно, адреса 203.0.113.40 и 203.0.113.47. Эти адреса могут быть задействованы при использовании IP-адресов из подсети в качестве дополнительных IP или как части соединения точка-точка. В результате для /29 подсети все 8 IP-адресов будут использоваться, а не только 6.

Для IPv6 подсетей первый адрес (::0) зарезервирован как «Subnet-Router anycast». IPv6 не использует широковещание и, в отличие от IPv4, последний адрес доступен всегда.

Шлюз

Для IPv6 подсетей на выделенных серверах и на виртуальных серверах линейки CX в качестве шлюза используется fe80::1. Так как это link-local адрес, требуется явно указать имя сетевого адаптера (обычно это eth0):

# ip route add default via fe80::1 dev eth0

Для виртуальных серверов старых моделей (VQ/VX) шлюз располагается в выделенной подсети:

# ip address add 2001:db8:61:20e1::2/64 dev eth0
# ip route add default via 2001:db8:61:20e1::1

Для IPv4 шлюз это первый IP-адрес из подсети:

# Пример: подсеть 192.0.2.84/26 имеет адрес сети 192.0.2.64/26
#
# ip address add 192.0.2.84/32 dev eth0
# ip route add 192.0.2.65 dev eth0
# ip route add default via 192.0.2.65

Одиночные адреса

Выделенный одиночный дополнительный адрес может быть настроен как дополнительный адрес на сетевом интерфейсе. Для того чтобы настройки IP-адресов сохранились после перезагрузки сервера, нужно отредактировать конфигурационные файлы (в различных дистрибутивах конфигурационные файлы разные). Детальное описание доступно для Debian/Ubuntu и CentOS.

Добавление дополнительного IP-адреса:

ip address add 192.0.2.92/32 dev eth0

Альтернативно, адрес можно перенаправить (смаршрутизировать) внутри сервера, например, на виртуальную машину.

ip route add 192.0.2.92/32 dev tap0
# или
ip route add 192.0.2.92/32 dev br0

Соответствующие виртуальные машины должны использовать основной IP-адрес сервера в качестве шлюза по умолчанию.

ip route add 192.0.2.84 dev eth0
ip route add default via 192.0.2.84

При перенаправлении IP-адреса убедитесь, что включена пересылка пакетов между интерфейсами:

sysctl -w net.ipv4.ip_forward=1

Если в панели Robot для дополнительного IP-адреса назначен отдельный MAC-адрес, то следует использовать соответствующий шлюз.

Подсети

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

Отдельные IP-адреса из подсети могут быть назначены как дополнительные на сетевой адаптер, точно также как одиночные дополнительные IP-адреса:

 ip address add 203.0.113.40/32 dev eth0

Также они могут быть перенаправлены (как по одному, так и целой подсетью) .

ip route add 203.0.113.40/29 dev tun0
# или
ip route add 203.0.113.40/32 dev tap0

Для того чтобы адреса из подсети выдавались виртуальным машинам по DHCP на хост-системе следует настроить один из адресов из подсети.

ip address add 203.0.113.41/29 dev br0

Он назначается на br0 на хост-системе и используется в качестве шлюза для виртуальных машин. При этом применяются стандартные правила для подсетей — адрес сети и широковещательный адрес нельзя использовать.

Тот факт, что IPv6 подсеть маршрутизируется через link-local адрес, даёт широкие возможности для будущего разделения подсети на более мелкие подсети (вплоть до /128). Например:

2a01:04f8:0061:20e1:0000:0000:0000:0000
                   │    │    │    │
                   │    │    │    └── /112 подсеть
                   │    │    │
                   │    │    └── /96 подсеть
                   │    │
                   │    └── /80 подсеть
                   │
                   └── /64 подсеть

Перед использованием перенаправления убедитесь, что оно разрешено:

sysctl -w net.ipv6.conf.all.forwarding=1 net.ipv4.ip_forward=1
Перенаправлена может быть вся подсеть (например, в VPN):
ip route add 2001:db8:61:20e1::/64 dev tun0

или только её часть:

ip route add 2001:db8:61:20e1::/80 dev br0

Из подсети можно «выделить» конкретный адрес, в то время как все остальные адреса будут перенаправляться. Обратите внимание на префикс:

ip address add 2001:db8:61:20e1::2/128 dev eth0
ip address add 2001:db8:61:20e1::2/64 dev br0

Виртуальные машины на br0 будут видеть 2001:db8:61:20e1::2 как шлюз.

SLAAC (IPv6)

Для назначения IPv6 адресов на виртуальные машины можно использовать SLAAC (Stateless Address Autoconfiguration). Для этого потребуется установить «radvd» на хост-системе. В приведённом ниже примере конфигурации /etc/radvd.conf предполагается, что на хост-системе (на мостовом или на tap интерфейсе) назначен адрес из 2001:db8:61:20e1::.

interface tap0
{
        AdvSendAdvert on;
        AdvManagedFlag off;
        AdvOtherConfigFlag off;
        prefix 2001:db8:61:20e1::/64
        {
                AdvOnLink on;
                AdvAutonomous on;
                AdvRouterAddr on;
        };
        RDNSS 2001:db8:0:a0a1::add:1010
              2001:db8:0:a102::add:9999
              2001:db8:0:a111::add:9898
        {
        };
};

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

$ ip address
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:0a:c5:b2 brd ff:ff:ff:ff:ff:ff
    inet6 2001:db8:61:20e1:38ad:1001:7bff:a126/64 scope global temporary dynamic
       valid_lft 86272sec preferred_lft 14272sec
    inet6 2001:db8:61:20e1:a00:27ff:fe0a:c5b2/64 scope global dynamic
       valid_lft 86272sec preferred_lft 14272sec
    inet6 fe80::a00:27ff:fe0a:c5b2/64 scope link
       valid_lft forever preferred_lft forever

(Тут показаны: частный адрес, SLAAC-адреса сети и link-local (RFC 4291) адрес линка).

Использование с виртуализацией (при помощи маршрутизации)

Смотри также обзор статей в категории: Виртуализация

X-route.png

Для использования маршрутизации на хост-системе создаётся новый сетевой интерфейс, к которому будут подключаться виртуальные машины. Сам сервер будет выполнять роль маршрутизатора.

Преимуществом маршрутизации является то, что трафик проходит через хост-систему. Это удобно при диагностике такими инструментами как tcpdump и traceroute, и просто необходимо для фильтрации трафика виртуальных машин на межсетевом экране хост-системы.

Некоторые системы виртуализации (например, Xen и LXC) создают отдельный сетевой интерфейс для каждой виртуальной машины, и может потребоваться связаться его с виртуальным коммутатором (например, через мост или TAP-интерфейс).

  • Xen: для каждого domU в dom0 создаётся интерфейс вида vifM.N (M и N числа, к сожалению, динамические). На эти интерфейсы можно маршрутизировать IP-адреса. Альтернативно VIF-интерфейсы могут быть объединены в bridge-интерфейс посредством директив vif=['mac=00:16:3e:08:15:07,bridge=br0',] в /etc/xen/vm/meingast.cfg.
  • VirtualBox: виртуальные машины привязываются к TAP-интерфейсу (обычно называется vboxnet0). Выберите тип подключения «Виртуальный адаптер хоста».
  • VMware Server/Workstation: используя программу VMware создайте host-only интерфейс (например, vmnet1) и добавьте в него адресное пространство. Привяжите виртуальные машины к этому интерфейсу.
  • Linux Containers (LXC, systemd-nspawn, OpenVZ): для каждой виртуальной машины в хост-системе создаётся интерфейс ve-…. На эти интерфейсы можно маршрутизировать IP-адреса. Альтернативно VE-интерфейсы могут быть объединены в bridge-интерфейс.
  • QEMU: использует TAP, так же как VirtualBox.

Использование с виртуализацией (при помощи моста)

X-bridge.png

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

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

  • VMware ESX: ESX создаёт виртуальный коммутатор подключая его в мост с физическим сетевым адаптером сервера. К этому мосту можно подключать виртуальные машины, например router VM. Можно создавать дополнительный виртуальный коммутатор и подключить к нему вторую сетевую карту router VM.
  • другие системы виртуализации также предоставляют возможность использования моста, мы ограничимся описанием более простого и удобного в диагностике (например, при помощи mtr или traceroute) подключения при помощи маршрутизации. Мост необходим только для ESX.
  • для использования моста следует включить proxy ARP в ядре "net.ipv4.conf.default.proxy_arp=1" (например, для Xen).

Настройка в различных дистрибутивах

Xen
SUSE
Debian
Gentoo
CentOS
Proxmox
VMware ESXi



© 2017. Hetzner Online GmbH. Alle Rechte vorbehalten.