Вступление
Все выделенные и виртуальные серверы имеют IPv4-адрес, а также подсеть IPv6 / 64.
Дополнительные адреса IPv4 можно заказать через робота . См. Также: IP-адреса
Примечание. Эта статья ограничена отображением соответствующих команд Linux для иллюстрации общих концепций. Для таких систем, как FreeBSD, необходима другая конфигурация .
Основной адрес
Основной 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 ) маршрутизация подсети / 64 IPv6 отсутствует. Это локальная сеть, в которой ::1
подсеть используется в качестве шлюза (см. Ниже).
Следующий <10.0.0.2>
используется как основной IPv4-адрес. Это не настоящий 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-адреса из подсети в качестве вторичных 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 шлюз — это первый используемый адрес каждой подсети:
# Example: 10.0.0.2/26 => Network address is 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
# or
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
Если для IP-адреса через робота был установлен отдельный MAC-адрес, необходимо использовать соответствующий шлюз IP-адреса.
Подсети
Вновь назначенные подсети IPv4 статически маршрутизируются на основном IP-адресе сервера, поэтому шлюз не требуется.
IP-адреса могут быть назначены сетевым адаптерам в качестве вторичных адресов, как отдельные дополнительные IP-адреса:
ip address add 203.0.113.40/32 dev eth0
Их также можно пересылать по отдельности или целиком.
ip route add 203.0.113.40/29 dev tun0
# or
ip route add 203.0.113.40/32 dev tap0
В отличие от одиночных IP-адресов, IP-адреса подсети также могут быть назначены (виртуальным машинам) с помощью DHCP. Следовательно, адрес из подсети необходимо настроить в системе хоста.
ip address add 203.0.113.41/29 dev br0
Хосты br0
используют этот адрес в качестве шлюза. В отличие от одиночных IP-адресов, тогда применяются правила для подсетей, то есть сетевой и широковещательный IP-адреса не могут использоваться.
Для IPv6 маршрутизация подсети по локальному адресу канала дает множество возможностей для дальнейшего разделения подсети на различные размеры (от / 64 до / 128 включительно). Например:
2a01:04f8:0061:20e1:0000:0000:0000:0000
│ │ │ │
│ │ │ └── /112 Subnet
│ │ │
│ │ └── /96 Subnet
│ │
│ └── /80 Subnet
│
└── /64 Subnet
Перед пересылкой убедитесь, что он активен:
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)
Кроме того, SLAAC ( Stateless Address Autoconfiguration
) можно использовать на подключенных хостах ( br0
), установив radvd
на хосте. Конфигурация в /etc/radvd.conf
требует, чтобы хост обладал адресом <2001:db8:61:20e1::>
на мосту или устройстве Tap:
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-адрес подсети и локальный адрес ссылки RFC 4291. )
Использование с виртуализацией для каждого метода маршрутизации
См. Также: Виртуализация
В этом 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: с помощью программ VMware создайте интерфейс только для хоста (например, vmnet1) и добавьте к нему адресную область. Назначьте виртуальные машины этому созданному интерфейсу только для хоста.
- Контейнеры Linux (LXC, systemd-nspawn, OpenVZ): для каждого контейнера интерфейс ve-… отображается в родительском элементе . Им можно назначить адреса соответственно. В качестве альтернативы интерфейсы VE можно комбинировать с интерфейсом моста.
- QEMU: использует TAP, аналогично VirtualBox.
Использование с виртуализацией для каждого метода моста
Мостовой метод описывает конфигурацию, которая позволяет подключать виртуальную машину напрямую к подключающейся сети, как к физической машине. Это возможно только для одиночных IP-адресов. Подсети всегда маршрутизируются.
Преимущество мостового решения заключается в том, что конфигурацию сети обычно легко реализовать, поскольку не требуется правил маршрутизации или конфигурации точка-точка. Недостатком является то, что MAC-адрес гостевой системы становится «видимым» извне. Поэтому каждому отдельному IP-адресу должен быть присвоен виртуальный MAC-адрес, что возможно через робота . Затем подсеть IPv6 должна быть маршрутизирована через этот новый MAC (значок рядом с подсетью в Robot позволяет это).
- VMware ESX: ESX устанавливает мост к физическому адаптеру, на котором висит ядро виртуальной машины и к которому могут быть привязаны другие виртуальные машины. Например, виртуальная машина маршрутизатора, на которой работает фактическая операционная система. В ESX могут быть определены дополнительные виртуальные коммутаторы, которые затем становятся доступными для виртуальной машины маршрутизатора через другие сетевые адаптеры.
- Другие решения виртуализации предлагают мостовой режим, но для простоты мы ограничимся более простым методом маршрутизации, поскольку он также проще для устранения неисправностей (например, mtr / traceroute). Только ESX срочно требует мостового режима.
- Для использования мостового режима в настоящее время требуется функция sysctl
net.ipv4.conf.default.proxy_arp=1
(например, с Xen).
Настройка под разные дистрибутивы
Руководства по установке для различных дистрибутивов можно найти здесь: