Конфигурация сети в ОС 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?
Просмотры: 989

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

Facebook Instagram linkedin

Beehosting.pro website uses cookies

We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners who may combine it with other information that you’ve provided to them or that they’ve collected from your use of their services.

Меню