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

Последнее изменение: Thursday November 23rd, 2023

Из этой статьи вы узнаете о основных и дополнительных IP-адресах.

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

IPv4

Основной IP выделенного корневого сервера обычно находится в подсети /26 или /27. Чтобы избежать случайного использования внешнего IP-адреса, наша инфраструктура отклоняет любые Ethernet-пакеты, не адресованные адресу шлюза. Для доступа к серверу в той же подсети сетевая конфигурация должна быть настроена как конфигурация “точка-точка”. Наши стандартные образы уже содержат эту конфигурацию, чтобы весь трафик маршрутизировался через шлюз.

Это делается с помощью конфигурации “точка-точка” между основным IP и шлюзом. Основной IP настраивается с маской подсети 255.255.255.255 (/32). Таким образом, сервер считает себя одиноким и не будет отправлять никаких пакетов напрямую. Для доступа к другим серверам, а также к Интернету, требуется явный хост-маршрут для шлюза, дополнительно к маршруту по умолчанию.

etc/network/interfaces (ENI)

Когда настройка сети выполняется через /etc/network/interfaces, это легко делается путем добавления опции pointopoint <IP шлюза> в конфигурацию.

## Пример /etc/network/interfaces для корневого сервера
# Петлевой адаптер
auto lo
iface lo inet loopback
#
# LAN интерфейс
auto eth0
iface eth0 inet static
  # Основной IP-адрес сервера
  address 192.168.0.250
  # Маска подсети 255.255.255.255 (/32) независимо от
  # реального размера подсети (например, /27)
  netmask 255.255.255.255
  # явный хост-маршрут к шлюзу
  gateway 192.168.0.1
  pointopoint 192.168.0.1

netplan

При использовании netplan это делается с использованием ключевого слова on-link в конфигурации:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses:
      - 192.168.0.250/32
      routes:
      - to: 0.0.0.0/0
        via: 192.168.0.1
        on-link: true

IPv6

В дополнение к основному IPv4-адресу каждому серверу присваивается подсеть IPv6 /64. Эта подсеть маршрутизируется на link-local IPv6-адрес, который генерируется из MAC-адреса сервера. В отличие от конфигурации IPv4, для IPv6 не требуется конфигурации “точка-точка”.

Шлюз всегда fe80::1

## Пример /etc/network/interfaces для корневого сервера
# Петлевой адаптер
auto lo
iface lo inet loopback
#
# IPv6 LAN
auto eth0
iface eth0 inet6 static
  # Один IPv6-адрес из подсети /64
  address 2001:db8:1234::1
  netmask 64
  gateway fe80::1

IPv4 + IPv6

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

etc/network/interfaces (ENI)

## Пример /etc/network/interfaces для корневого сервера
# Петлевой адаптер
auto lo
iface lo inet loopback
#
# LAN интерфейс
auto eth0
iface eth0 inet static
  # Основной IP-адрес сервера
  address 192.168.0.250
  # Маска подсети 255.255.255.255 (/32) независимо от
  # реального размера подсети (например, /27)
  netmask 255.255.255.255
  # явный хост-маршрут к шлюзу
  gateway 192.168.0.1
  pointopoint 192.168.0.1
#
iface eth0 inet6 static
  # один IPv6-адрес из назначенной подсети
  address 2001:db8:1234::1
  netmask 64
  gateway fe80::1

netplan

Конфигурация через netplan для Ubuntu 22.04 и позднее или с использованием netplan 1.03 и позднее

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses:
      - 192.168.0.250/32
      - 2001:db8:1234::1/64
      routes:
      - to: default
        via: 192.168.0.1
        on-link: true
      - to: default
        via: fe80::1

Конфигурация для Ubuntu 21.04 и более ранних версий

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses:
      - 192.168.0.250/32
      - 2001:db8:1234::1/64
      routes:
      - to: 0.0.0.0/0
        via: 192.168.0.1
        on-link: true
      gateway6: fe80::1

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

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

Чтобы использовать дополнительные адреса на сервере (без виртуализации), вам понадобится пакет iproute2 и сервисная программа 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 (ENI)

В /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-адресов, файл конфигурации становится запутанным и подверженным ошибкам. И если вы измените данные, вам нужно будет настроить все записи.

netplan

При использовании netplan просто добавьте дополнительные IP-адреса как /32 в раздел addresses

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

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

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

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

Guest:

Host:

auto eth0
iface eth0 inet static
   address (Основной IP)
   netmask 255.255.255.255
   pointopoint (IP Шлюза)
   gateway (IP Шлюза)
#
iface eth0 inet6 static
  address 2001:db8:1234::1
  netmask 128
  gateway fe80::1
#
auto virbr1
iface virbr1 inet static
   address (Основной IP)
   netmask 255.255.255.255
   bridge_ports none
   bridge_stp off
   bridge_fd 0
   pre-up brctl addbr virbr1
   up ip route add (Дополнительный IP)/32 dev virbr1
   down ip route del (Дополнительный IP)/32 dev virbr1
 #
 iface virbr1 inet6 static
   address 2a01:4f8:XX:YY::1
   netmask 64

Guest:

auto eth0
iface eth0 inet static
   address (Дополнительный IP)
   netmask 255.255.255.255
   pointopoint (Основной IP)
   gateway (Основной IP)
#
iface eth0 inet6 static
  address 2a01:4f8:XX:YY::4
  netmask 64
  gateway 2a01:4f8:XX:YY::1

Мост

При настройке в режиме “моста” пакеты передаются напрямую. Гостевая система ведет себя так, как если бы она была независимой. Это делает MAC-адреса гостевой системы видимыми снаружи, поэтому вам нужно запросить виртуальный MAC-адрес для каждого отдельного IP-адреса. (Подайте запрос в службу поддержки на Robot). Затем назначьте виртуальный MAC-адрес сетевой карте гостя. Мост получает ту же конфигурацию сети, что и eth0.

# удалите или отключите конфигурацию для eth0
#auto eth0
#iface eth0 inet static
#
auto  br0
iface br0 inet static
 address (Основной IP)
 netmask (как и у eth0, например: 255.255.255.254)
 gateway (тот же, что и для основного IP)
 bridge_hw eth0 (требуется с Debian 11 'bulleye')
 bridge_ports eth0
 bridge_stp off
 bridge_fd 1
 bridge_hello 2
 bridge_maxage 12

Конфигурация eth0 опущена без замены.

Конфигурация eth0 опущена без замены.
Was this article helpful?
Просмотры: 381

10 лет с BeeHosting!
Отмечаем скидками до 70% на все услуги
+ бесплатная миграция сайта.

Beehosting.pro сайт использует файлы «куки»

Мы используем файлы cookie, чтобы анализировать трафик, подбирать для вас подходящий контент и рекламу, а также дать вам возможность делиться информацией в социальных сетях. Мы передаем информацию о ваших действиях на сайте партнерам Google: социальным сетям и компаниям, занимающимся рекламой и веб-аналитикой. Наши партнеры могут комбинировать эти сведения с предоставленной вами информацией, а также данными, которые они получили при использовании вами их сервисов.

Меню