Введение
Все выделенные и виртуальные серверы поставляются с IPv4-адресом, а также с подсетью IPv6 /64.
Дополнительные IPv4-адреса можно заказать через личный кабинет клиента.
Основной адрес
Основной IPv4-адрес сервера – это IP, который изначально назначается серверу и настраивается при автоматической установке.
Что касается IPv6, там нет четко определенного основного адреса. При автоматической установке настраивается ::2
из назначенной подсети.
У выделенных корневых серверов и виртуальных серверов линейки CX подсеть IPv6 маршрутизируется на локальный адрес сетевого адаптера. Если вы заказали дополнительные отдельные IPv4-адреса с собственными MAC-адресами, то вы можете маршрутизировать подсеть IPv6 на их локальный адрес с использованием личного кабинета клиента.
Конкретный локальный адрес вычисляется из 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 /64. Это локальная сеть, где ::1
подсети используется в качестве шлюза. (Смотрите ниже).
Ниже приведен пример основного IPv4-адреса <10.0.0.2>
. Это не является реальным IP-адресом.
Дополнительные адреса
Как индивидуальные адреса, так и адреса из подсетей обычно маршрутизируются через основной IP-адрес. Для остальной части этого руководства допустим, что у вас есть следующие дополнительные адреса/сети:
<2001:db8:61:20e1::/64>
(подсеть IPv6)<10.0.0.8>
(одиночный адрес)<203.0.113.40/29>
(подсеть IPv4)
Вы можете дополнительно разделять, пересылать или назначать подсети в зависимости от ваших предпочтений.
В случае IPv4 сетевой и широковещательной адреса обычно зарезервированы. На основе приведенного выше примера, это будут IP-адреса <203.0.113.40>
и <203.0.113.47>
. Вы можете использовать эти адреса в качестве вторичного IP или в составе настроенной точки-точки. Таким образом, в подсети /29 можно использовать все 8 IP, а не только 6.
В случае IPv6 первый адрес (::0
) подсети резервируется как адрес Subnet-Router anycast
. IPv6 не использует широковещательный адрес, поэтому последний адрес также можно использовать (в отличие от IPv4).
Шлюз
Для IPv6 на выделенных корневых серверах и виртуальных серверах линейки CX шлюз – fe80::1
. Поскольку это локальный адрес, необходимо явное указание сетевого адаптера (обычно 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 шлюз – это первый используемый адрес каждой подсети:
# Пример: 10.0.0.2/26 => Сетевой адрес 192.0.2.64/26
#
# ip address add 10.0.0.2/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 10.0.0.8/32 dev eth0
В противном случае его можно перенаправить внутри сервера (например, для виртуальных машин):
ip route add 10.0.0.8/32 dev tap0
# или
ip route add 10.0.0.8/32 dev br0
Соответствующие виртуальные машины должны использовать основной IP-адрес сервера в качестве шлюза по умолчанию:
ip route add 10.0.0.2 dev eth0
ip route add default via 10.0.0.2
При перенаправлении IP убедитесь, что включено перенаправление IP:
sysctl -w net.ipv4.ip_forward=1
Если вы установили отдельный MAC-адрес для IP-адреса через Robot, то вам нужно использовать соответствующий шлюз IP-адреса.
Подсети
Новые назначенные подсети IPv4 статически маршрутизируются на основной IP-адрес сервера, поэтому шлюз
<!-- Add an (additional) IP address: -->
ip address add 10.0.0.8/32 dev eth0
<!-- Alternatively, it can be forwarded within the server (e.g. for virtual machines): -->
ip route add 10.0.0.8/32 dev tap0
# or
ip route add 10.0.0.8/32 dev br0
<!-- The corresponding virtual machines have to use the main IP address of the server as the default gateway. -->
ip route add 10.0.0.2 dev eth0
ip route add default via 10.0.0.2
<!-- When forwarding the IP, make sure you have enabled IP forwarding: -->
sysctl -w net.ipv4.ip_forward=1
<!-- If you have set up a separate MAC address for the IP address via Robot, then you need to use the corresponding gateway of the IP address. -->
Subnets
<!-- Newly assigned IPv4 subnets are statically routed on the main IP address of the server, so no gateway is required. -->
<!-- You can assign the IPs as secondary addresses to the network adapters, just like single additional IPs: -->
ip address add 203.0.113.40/32 dev eth0
<!-- You can forward them individually or as a whole. -->
ip route add 203.0.113.40/29 dev tun0
# or
ip route add 203.0.113.40/32 dev tap0
<!-- Unlike with single IPs, you can also assign subnet IPs (to virtual machines) using DHCP. -->
<!-- Therefore, you need to configure an address from the subnet on the host system. -->
ip address add 203.0.113.41/29 dev br0
<!– The hosts on br0 use this address as the gateway. Unlike single IPs, the rules for subnets then apply; for example, you cannot use the network and broadcast IP. –>
IPv6 Subnet Routing
For IPv6, the routing of the subnet on the link-local address leads to many possible options for further division of the subnet into various sizes (/64 up to and including /128). For example:
2a01:04f8:0061:20e1:0000:0000:0000:0000
│ │ │ │
│ │ │ └── /112 Subnet
│ │ │
│ │ └── /96 Subnet
│ │
│ └── /80 Subnet
│
└── /64 Subnet
Before forwarding the subnets, make sure that forwarding is active:
sysctl -w net.ipv6.conf.all.forwarding=1 net.ipv4.ip_forward=1
You can forward the entire subnet (such as VPN):
ip route add 2001:db8:61:20e1::/64 dev tun0
Or just a part:
ip route add 2001:db8:61:20e1::/80 dev br0
From a single subnet, you can extract individual addresses, and you can forward the remainder. Note the prefix lengths:
ip address add 2001:db8:61:20e1::2/128 dev eth0
ip address add 2001:db8:61:20e1::2/64 dev br0
The hosts on br0
will show <2001:db8:61:20e1::2>
as the gateway.
SLAAC (IPv6)
Furthermore, you can use SLAAC (Stateless Address Autoconfiguration
) in the connected hosts (br0
) by installing radvd
on the host. The configuration in /etc/radvd.conf
requires that the host possesses an address from <2001:db8:61:20e1::>
on the bridge or TAP device:
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
{
};
};
Использование виртуализации с методом маршрутизации
В методе routed
вы настраиваете новый сетевой интерфейс на сервере, к которому подключены одна или несколько виртуальных машин. Сервер сам выступает в роли маршрутизатора, отсюда и название.
Преимущество метода маршрутизации заключается в том, что трафик должен проходить через хост. Это полезно для средств диагностики (tcpdump
, traceroute
). Это также необходимо для работы брандмауэра хоста, который выполняет фильтрацию для виртуальных машин.
Некоторые решения виртуализации создают сетевой интерфейс для каждой единицы (например, Xen и LXC), вам может потребоваться связать их с виртуальным коммутатором (например, через мостовой или TAP-интерфейс).
- Xen: Для каждого domU появляется интерфейс vifM.N (к сожалению, с динамическими номерами) в dom0. Им можно назначить адреса соответственно. Кроме того, вы можете объединить VIF в сегмент с использованием интерфейса моста; вы можете сделать это с помощью директив
vif=['mac=00:16:3e:08:15:07,bridge=br0',]
, в /etc/xen/vm/meingast.cfg
.
- VirtualBox: Гости привязаны к существующему TAP-интерфейсу и таким образом формируют сегмент для каждого устройства TAP. Создайте интерфейсы TAP в соответствии с вашим дистрибутивом. В диалоговом окне настроек отдельной машины выберите для присвоения:
Network
> Attached to: Bridged Adapter
. Имя: tap0
.
- VMware Server/Workstation: С использованием ваших программ VMware создайте интерфейс только для хоста (например, vmnet1) и добавьте в него область адресов. Назначьте виртуальные машины этому созданному интерфейсу только для хоста.
- Linux Containers (LXC, systemd-nspawn, OpenVZ): Для каждого контейнера в родительском интерфейсе появляется интерфейс ve-… . Им можно назначить адреса соответственно. Кроме того, вы можете объединить VE-интерфейсы с интерфейсом моста.
- QEMU: Использует TAP, аналогично VirtualBox.
Использование виртуализации с методом с мостовой
Метод с мостовой описывает конфигурацию, позволяющую виртуальной машине быть подключенной напрямую к подключающейся сети, как физическому компьютеру. Это возможно только для одиночных IP-адресов. Подсети всегда маршрутизируются.
Преимущество решения с использованием моста заключается в том, что конфигурация сети обычно проста в реализации, потому что не требуется настройка правил маршрутизации или конфигурации точка-точка. Недостатком является то, что MAC-адрес гостевой системы становится "видимым" снаружи. Поэтому вы должны присвоить каждому индивидуальному IP-адресу виртуальный MAC-адрес, что вы можете сделать в клиентской области. Затем вам нужно маршрутизировать подсеть IPv6 через этот новый MAC. (Значок рядом с подсетью в Robot позволяет вам это сделать).
- VMware ESX: ESX устанавливает мост на физический адаптер, на котором висит ядро VM, и к которому вы можете привязать дополнительные VM (например, VM-маршрутизатор, выполняющий фактическую операционную систему). В ESX вы можете определить дополнительные виртуальные коммутаторы, которые затем становятся доступными для VM-маршрутизатора через другие сетевые интерфейсы.
- Другие средства виртуализации позволяют использовать режим с мостовой, но для упрощения мы будем использовать только более простой метод с маршрутизацией, так как он также удобен для устранения неполадок (например, mtr/traceroute). Только ESX действительно требует режима с мостовой.
- Для использования режима с мостовой в настоящее время требуется функция sysctl
net.ipv4.conf.default.proxy_arp=1
(например, с Xen).