Базовая конфигурация сети [205.1]

Рейтинг: 64.6% · 12 голосов
Курс LPIC-2 (201-450 и 202-450): емкостное планирование, ядро, хранилище и RAID/LVM, продвинутая сеть, DNS/BIND, Apache/Nginx, Samba/NFS, DHCP/LDAP, почта, безопасность и VPN.
Ответить
Аватара пользователя
Sergey_Sysadmin
Сообщения: 134
Зарегистрирован: 11 май 2026, 05:31

Базовая конфигурация сети [205.1]

Сообщение Sergey_Sysadmin »

Оглавление курса (41)
  1. Введение в LPIC-2 и уровень инженера
  2. Измерение и устранение проблем с ресурсами [200.1]
  3. Прогнозирование потребности в ресурсах
  4. Компоненты ядра Linux [201.1]
  5. Сборка ядра из исходников [201.2]
  6. Управление модулями ядра в рантайме [201.3]
  7. Кастомизация запуска системы [202.1]
  8. Восстановление системы [202.2]
  9. Альтернативные загрузчики [202.3]
  10. Работа с файловой системой Linux [203.1]
  11. Обслуживание файловых систем [203.2]
  12. Создание и настройка опций ФС [203.3]
  13. Программный RAID [204.1]
  14. Тюнинг доступа к устройствам хранения [204.2]
  15. Менеджер логических томов LVM [204.3]
  16. Базовая конфигурация сети [205.1] (вы здесь)
  17. Продвинутая конфигурация сети [205.2]
  18. Диагностика сетевых проблем [205.3]
  19. Сборка и установка программ из исходников [206.1]
  20. Резервное копирование [206.2]
  21. Оповещение пользователей о событиях
  22. DNS-сервер BIND: базовая настройка [207.1]
  23. Зоны DNS: создание и сопровождение [207.2]
  24. Безопасность DNS-сервера [207.3]
  25. Веб-сервер Apache: базовая настройка [208.1]
  26. Apache и HTTPS [208.2]
  27. Кэширующий прокси Squid [208.3]
  28. Веб-сервер и обратный прокси Nginx [208.4]
  29. Файловый сервер Samba [209.1]
  30. Файловый сервер NFS [209.2]
  31. DHCP-сервер [210.1]
  32. Аутентификация PAM и SSSD [210.2]
  33. Использование LDAP-клиента
  34. Сервер OpenLDAP [210.4]
  35. Почтовый сервер Postfix [211.1]
  36. Управление доставкой почты и Sieve [211.2]
  37. Доступ к почтовым ящикам: Dovecot [211.3]
  38. Linux как маршрутизатор и фильтр [212.1]
  39. FTP-серверы [212.2]
  40. SSH углублённо [212.3]
  41. Безопасность, IDS и VPN [212.4 + 212.5]
Урок 15. Базовая конфигурация сети [205.1]

Сеть - это то, что администратор настраивает на каждом сервере, и то, что ломается чаще всего. В этом уроке разбираем, как поднять интерфейс, повесить на него IPv4 и IPv6 адрес статикой или по DHCP, сделать настройки постоянными в разных дистрибутивах, а заодно собрать агрегацию каналов (bonding) и завести VLAN. Главный инструмент диагностики - утилита ip, а инструмент управления в современных системах - NetworkManager через nmcli. Понимание разницы между состоянием ядра здесь и сейчас и конфигурацией на диске - ключ ко всему уроку.

Изображение

Как это работает

Сетевая подсистема Linux живёт в ядре. У каждого интерфейса есть состояние канала (link): подключён ли кабель, договорилась ли карта о скорости. Поверх link навешиваются адреса L3 - IPv4 и IPv6, причём на одном интерфейсе их может быть несколько. Маршруты решают, куда отправлять пакеты для конкретной сети. Команда ip из пакета iproute2 показывает и меняет всё это прямо в ядре, но её изменения живут только до перезагрузки.

Чтобы настройки пережили ребут, нужен слой постоянной конфигурации. Тут дистрибутивы расходятся. В RHEL 10 и Fedora всем заведует NetworkManager, профили лежат в /etc/NetworkManager/system-connections/ в виде keyfile (раньше были ifcfg-файлы, теперь это легаси). В Ubuntu 24.04 на сервере правит netplan: вы пишете YAML в /etc/netplan/, а он генерирует конфиг для бэкенда - systemd-networkd или NetworkManager. В Debian 13 базовый способ - /etc/network/interfaces с ifupdown, но в десктопных установках тоже стоит NetworkManager.

Разница IPv4 и IPv6 важна. IPv6 умеет автоконфигурацию: роутер шлёт RA (Router Advertisement), и хост сам строит адрес из префикса плюс свой идентификатор (SLAAC). Поэтому глобальный IPv6 может появиться без всякого DHCP. Link-local адрес fe80::/10 ядро вешает на каждый интерфейс автоматически.

Bonding (агрегация) объединяет несколько физических карт в один логический интерфейс bond0 ради отказоустойчивости или суммарной полосы. Режим задаёт логику: active-backup держит одну карту активной, остальные в резерве; 802.3ad (LACP) распределяет трафик и требует поддержки на коммутаторе. VLAN же позволяет на одном физическом порту разделить трафик по тегам 802.1Q - получаются интерфейсы вида eth0.100, каждый в своей подсети.

Команды и примеры

Смотрим состояние. Утилита ip - универсальна для всех дистрибутивов:

Код: Выделить всё

ip link show          # интерфейсы и состояние link (UP/DOWN, LOWER_UP = есть линк)
ip -br address        # краткая сводка адресов
ip -6 addr show       # только IPv6
ip route show         # таблица маршрутов IPv4
ip -6 route           # маршруты IPv6
ip neigh              # ARP/NDP соседи
Состояние именно физического канала смотрят через ethtool:

Код: Выделить всё

ethtool eth0          # Link detected: yes/no, Speed, Duplex
Временно (до ребута) поднять интерфейс и дать адрес:

Код: Выделить всё

ip link set eth0 up
ip address add 192.0.2.10/24 dev eth0
ip address add 2001:db8::10/64 dev eth0
ip route add default via 192.0.2.1
Постоянная настройка через NetworkManager (RHEL 10, Fedora, десктопный Debian). Статический адрес:

Код: Выделить всё

nmcli con add type ethernet con-name lan ifname eth0 \
  ipv4.method manual ipv4.addresses 192.0.2.10/24 ipv4.gateway 192.0.2.1 \
  ipv4.dns 1.1.1.1 ipv6.method auto
nmcli con up lan
nmcli -f GENERAL,IP4,IP6 device show eth0
Переключить тот же профиль на DHCP:

Код: Выделить всё

nmcli con mod lan ipv4.method auto
nmcli con up lan
Постоянная настройка в Ubuntu 24.04 через netplan - правим YAML и применяем:

Код: Выделить всё

# /etc/netplan/01-lan.yaml  (отступы - пробелы, не табы!)
network:
  version: 2
  ethernets:
    eth0:
      addresses: [192.0.2.10/24, "2001:db8::10/64"]
      routes:
        - to: default
          via: 192.0.2.1
      nameservers:
        addresses: [1.1.1.1]

Код: Выделить всё

netplan try      # применит с откатом через 120 с, если связь не подтвердить
netplan apply
Классический Debian-способ /etc/network/interfaces (для понимания и legacy-стендов):

Код: Выделить всё

auto eth0
iface eth0 inet static
    address 192.0.2.10/24
    gateway 192.0.2.1
iface eth0 inet6 auto
Bonding в режиме active-backup через nmcli:

Код: Выделить всё

nmcli con add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=100"
nmcli con add type ethernet ifname eth0 master bond0
nmcli con add type ethernet ifname eth1 master bond0
nmcli con mod bond0 ipv4.method manual ipv4.addresses 192.0.2.10/24 ipv4.gateway 192.0.2.1
nmcli con up bond0
cat /proc/net/bonding/bond0   # активная карта, статус slave-ов
VLAN с тегом 100 поверх eth0:

Код: Выделить всё

nmcli con add type vlan con-name vlan100 ifname eth0.100 dev eth0 id 100 \
  ipv4.method manual ipv4.addresses 10.100.0.10/24
Частые грабли
  • Настроили адрес через ip, перезагрузились - всё пропало. ip меняет только ядро, постоянство - это NetworkManager/netplan/interfaces.
  • В netplan вставили табы вместо пробелов - YAML не парсится. Только пробелы.
  • netplan apply без netplan try на удалённом сервере: ошибка в gateway - и вы отрезали себе SSH. try даёт автооткат.
  • Команда ifconfig из net-tools во многих сборках уже не ставится по умолчанию и не видит часть адресов IPv6 - забудьте, используйте ip.
  • Bond поднялся, а трафик не идёт: на стороне коммутатора не настроен LACP для режима 802.3ad. active-backup коммутатор не требует.
  • VLAN не работает - порт коммутатора в режиме access вместо trunk, тегированный трафик отбрасывается.
  • Правят ifcfg-файлы руками при работающем NetworkManager - он их может перезаписать. В RHEL 10 источник истины это keyfile и nmcli.
  • Забыли, что link-local fe80:: есть всегда, и приняли его за рабочий глобальный IPv6.
Мини-лаба
  • Посмотрите ip -br link и ip -br addr, запишите текущее состояние интерфейса и его адреса.
  • Через ethtool проверьте, есть ли линк и какая скорость согласована.
  • Временно (через ip) добавьте на интерфейс тестовый адрес 198.51.100.5/24 и проверьте его через ip addr, затем удалите.
  • Создайте постоянный профиль со статическим IPv4 и автоконфигом IPv6: на RHEL/Fedora через nmcli, на Ubuntu через netplan try.
  • Переключите профиль на DHCP и обратно, проверяя, какой адрес выдан.
  • Соберите bond0 в режиме active-backup из двух интерфейсов и посмотрите /proc/net/bonding/bond0.
  • Поднимите VLAN с id 100 поверх основного интерфейса и убедитесь, что появился eth0.100.
Контрольные вопросы
  • Чем отличается изменение адреса командой ip от настройки через nmcli с точки зрения постоянства?
  • Где физически лежат профили соединений NetworkManager в современном RHEL и в каком они формате?
  • Какой механизм позволяет хосту получить глобальный IPv6 без DHCP и как называются сообщения роутера?
  • Чем режим bonding active-backup отличается от 802.3ad по требованиям к коммутатору?
  • Какой файл показывает текущий статус агрегированного интерфейса и активную карту?
  • Почему на удалённом сервере предпочтительнее netplan try, а не сразу netplan apply?
👍3 ❤️2 🔥 😄 🤔1
Аватара пользователя
vimaddict
Сообщения: 1
Зарегистрирован: 23 май 2026, 23:19

Re: Базовая конфигурация сети [205.1]

Сообщение vimaddict »

А если на сервере и NetworkManager, и netplan стоят - кто кого перебивает? У меня правки в netplan не применялись, пока не понял что бэкендом как раз NM выступает.
👍 ❤️1 🔥 😄 🤔
Аватара пользователя
vaultsre
Сообщения: 2
Зарегистрирован: 28 май 2026, 06:48

Re: Базовая конфигурация сети [205.1]

Сообщение vaultsre »

На RHEL 10 привычные ifcfg-eth0 уже не нашёл, только keyfile в system-connections. Сначала думал систему сломал, оказалось так и задумано.
👍 ❤️ 🔥 😄 🤔
Ответить
← Предыдущая глава
Менеджер логических томов LVM [204.3]
Следующая глава →
Продвинутая конфигурация сети [205.2]

Все главы курса «LPIC-2: инженер Linux (201 + 202)»

Поделиться темой: ✈ Telegram VK

Вернуться в «LPIC-2: инженер Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость