05. Основы сетей для Ubuntu Server: подробное руководство

Сети — фундаментальный аспект администрирования серверов, особенно при работе с Ubuntu Server. Независимо от того, настраиваете ли вы сервер в облачной среде или управляете локальной инфраструктурой, крайне важно понимать, как настраивать сетевые интерфейсы, назначать статические IP-адреса, управлять сетевыми службами и устранять проблемы с подключением. В этом руководстве мы рассмотрим основы сетей в Ubuntu Server, включая использование Netplan (инструмента настройки сети по умолчанию в Ubuntu 22.04), обработку конфигураций, созданных cloud-init, управление сетевыми службами и устранение распространённых проблем.


Предыдущая статья:

01. Введение в Ubuntu Server – SysOSX: AI & Cloud

02. Как настроить первый сервер Ubuntu: руководство для начинающих – SysOSX: AI & Cloud

03. Освоение командной строки Linux для Ubuntu Server – SysOSX: AI & Cloud

04. Управление пользователями и правами в Ubuntu Server: подробное руководство – SysOSX: AI & Cloud



1. Введение в сети в Ubuntu Server

Ubuntu Server использует Netplan в качестве инструмента настройки сети по умолчанию начиная с Ubuntu 17.10. Netplan упрощает процесс определения сетевых конфигураций с помощью YAML-файлов. В Ubuntu Server 22.04 systemd-networkd — это служба серверной части по умолчанию для управления сетью, в то время как NetworkManager обычно используется в настольных средах или определённых серверных конфигурациях, требующих расширенного управления сетью.

Сетевые серверные части по умолчанию

  • Ubuntu Server 22.04: использует systemd-networkd в качестве сетевой службы по умолчанию.
  • Ubuntu Desktop 22.04: использует NetworkManager в качестве сетевой службы по умолчанию.

Если вы используете Ubuntu Desktop или установили NetworkManager вручную в Ubuntu Server, вы можете управлять сетевыми интерфейсами с его помощью. Однако NetworkManager по умолчанию не установлен в редакциях Ubuntu Server.


2. Настройка сетевых интерфейсов с помощью Netplan (обновления Cloud-Init)

В облачных средах файл конфигурации Netplan часто называется /etc/netplan/50-cloud-init.yaml. Этот файл создаётся cloud-init, и изменения в нём не сохранятся после перезагрузок экземпляра, если не отключить возможности сетевой конфигурации cloud-init.

Отключение сетевой конфигурации Cloud-Init

Чтобы отключить возможности сетевой конфигурации cloud-init, создайте файл по адресу /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg:

sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

Добавьте следующее содержимое:

network: {config: disabled}

После отключения сетевой конфигурации cloud-init можно вручную создавать постоянные файлы конфигурации Netplan и управлять ими.


Пример: настройка статического IP-адреса с помощью Netplan

Если ваш файл конфигурации Netplan — это /etc/netplan/50-cloud-init.yaml, вы можете изменить его напрямую или создать новый файл конфигурации (например, /etc/netplan/01-netcfg.yaml) для постоянных настроек.

  • Откройте файл конфигурации Netplan:
sudo nano /etc/netplan/50-cloud-init.yaml
  • Измените содержимое, чтобы задать статический IP-адрес:
network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      addresses:
        - 192.168.1.100/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
  • eth0: замените это именем вашего сетевого интерфейса (используйте ip a для вывода списка интерфейсов).
  • addresses: назначает статический IP-адрес.
  • routes:
    • to: default: задаёт маршрут по умолчанию.
    • via: 192.168.1.1: определяет адрес шлюза.
  • nameservers: задаёт DNS-серверы.
  • Примените конфигурацию:
sudo netplan apply
  • Проверьте конфигурацию:
ip a

3. Настройка статического IP-адреса

Хотя Netplan является рекомендуемым инструментом, статический IP-адрес можно также настроить вручную в /etc/network/interfaces (используемом в старых версиях Ubuntu) или с помощью инструментов командной строки.

Команда ip

Команда ip — универсальный инструмент для управления сетевыми интерфейсами. Ниже приведён пример временного назначения статического IP-адреса:

sudo ip addr add 192.168.1.100/24 dev eth0
sudo ip route add default via 192.168.1.1
  • ip addr add: Назначает IP-адрес сетевому интерфейсу.
  • ip route add: задаёт шлюз по умолчанию.

Примечание: эти изменения временны и будут потеряны после перезагрузки. Для постоянных конфигураций используйте Netplan.


4. Управление сетевыми службами

Ubuntu использует systemd-networkd в качестве сетевой службы по умолчанию для серверных сред. Эффективное управление этой службой критически важно для обеспечения стабильного сетевого подключения.

Проверка состояния сетевых служб

Чтобы проверить состояние сетевой службы, выполните следующую команду:

sudo systemctl status systemd-networkd

Будет отображено текущее состояние и любые ошибки, связанные со службой systemd-networkd.

Перезапуск сетевой службы

Если после изменения конфигурации требуется перезапустить сетевую службу:

sudo systemctl restart systemd-networkd

Включение или отключение сетевой службы

Чтобы включить автоматический запуск сетевой службы при загрузке:

sudo systemctl enable systemd-networkd

Чтобы отключить сетевую службу:

sudo systemctl disable systemd-networkd

Использование NetworkManager (необязательно)

Если вы используете NetworkManager вместо systemd-networkd, вы можете управлять службой следующим образом:

  • Проверка состояния:
sudo systemctl status NetworkManager
  • Перезапуск службы:
sudo systemctl restart NetworkManager
  • Включение или отключение NetworkManager:
sudo systemctl enable NetworkManager 
sudo systemctl disable NetworkManager

5. Известные проблемы и предупреждения в Netplan

При настройке статического IP-адреса на сервере Ubuntu 22.04 с помощью Netplan могут появиться следующие предупреждения:

Предупреждение: Cannot call Open vSwitch: ovsdb-server.service is not running

Это предупреждение возникает, поскольку Netplan пытается обнаружить Open vSwitch — виртуальный сетевой коммутатор, часто используемый в облачных и виртуализированных средах. Если Open vSwitch не установлен, Netplan выдаёт предупреждение.

Устранение предупреждения

Если вы не используете Open vSwitch, это предупреждение можно безопасно игнорировать. Однако, чтобы устранить его, можно установить пакет openvswitch-switch-dpdk, который предоставляет необходимые компоненты для Open vSwitch.

Выполните следующую команду:

sudo apt install openvswitch-switch-dpdk

После установки Netplan обнаружит наличие Open vSwitch и перестанет выдавать предупреждение.

Ссылка на известную ошибку

Эта проблема была официально сообщена как ошибка в Netplan.
https://bugs.launchpad.net/ubuntu/+source/netplan.io/+bug/2041727


6. Инструменты командной строки для управления сетью

Ubuntu предоставляет множество инструментов для управления сетевыми конфигурациями и устранения неполадок. Вот некоторые из наиболее часто используемых:

6.1 Команда ip

Команда ip заменяет старый инструмент ifconfig и является более мощным и гибким.

  • Просмотр сетевых интерфейсов: ip a
  • Проверка маршрутов: ip route
  • Включение/отключение интерфейса:
sudo ip link set eth0 up 
sudo ip link set eth0 down

6.2 Команда ping

Команда ping используется для проверки подключения к другому узлу.

ping google.com

6.3 Команда traceroute

Команда traceroute определяет сетевой путь к месту назначения.

sudo apt install traceroute
traceroute google.com

6.4 Команда Curl

Команда curl проверяет HTTP-подключение.

curl http://example.com


7. Устранение распространённых сетевых проблем

Сетевые проблемы часто встречаются в серверных средах. Вот некоторые сценарии и шаги по устранению неполадок:

Сценарий 1: сетевой интерфейс не работает

  • Проверьте состояние интерфейса:
ip a
  • Включите интерфейс:
sudo ip link set eth0 up

    Сценарий 2: не удаётся пропинговать внешние узлы

    1. Проверьте шлюз по умолчанию: ip route
    2. Проверьте разрешение DNS: nslookup google.com Если DNS не разрешается, обновите серверы имён в конфигурации Netplan.

    Сценарий 3: проблемы с конфигурацией Netplan

    1. Проверьте YAML-файл Netplan:sudo netplan try Это проверяет конфигурацию без её постоянного применения.
    2. Повторно примените конфигурацию:sudo netplan apply

    Сценарий 4: проверка сетевой службы

    Если проблемы с сетевым подключением сохраняются, проверьте состояние сетевой службы:

    sudo systemctl status systemd-networkd
    
    

    Если сообщаются ошибки, перезапустите службу:

    sudo systemctl restart systemd-networkd
    
    

    Сценарий 5: брандмауэр блокирует трафик

    • Проверьте правила брандмауэра:
    sudo ufw status
    
    • Разрешите необходимый трафик:
    sudo ufw allow 22/tcp sudo ufw allow 80/tcp
    

      Сценарий 6: потери пакетов или проблемы с задержкой

      • Используйте ping для проверки потери пакетов:
      ping -c 10 google.com
      
      • Используйте traceroute для выявления узких мест в сети:
      traceroute google.com
      

        8. Заключение

        Сети — важнейший навык для администраторов Ubuntu Server. В этом руководстве рассмотрены основы настройки сетевых интерфейсов, управления сетевыми службами, обработки предупреждений Netplan, настройки статических IP-адресов, использования инструментов командной строки и устранения распространённых проблем. Овладев такими инструментами, как Netplan, ip и ping вы сможете эффективно управлять сетевыми задачами на своём сервере и решать их.

        Для дальнейшего чтения обратитесь к официальной документации Ubuntu по Netplan и Основы сетей.

        Следующие шаги: исправления, управление пакетами и безопасность

        В следующем разделе этой серии мы подробнее рассмотрим критически важные аспекты администрирования Ubuntu Server, уделяя особое внимание исправления, управление пакетами и безопасность. Эти темы важны для поддержания безопасной, стабильной и эффективной серверной среды.

        1. Установка программного обеспечения и управление им

        Освойте основы установки, обновления и управления программным обеспечением в Ubuntu Server с помощью apt и других инструментов управления пакетами. Научитесь эффективно управлять зависимостями и репозиториями, чтобы сервер был оснащён необходимым программным обеспечением.

        2. Исправление и обновление Ubuntu Server

        • Почему исправления критически важны для безопасности и стабильности.
        • Использование apt для обновления сервера.
        • Понимание различий между apt update, apt upgrade и apt full-upgrade.
        • Автоматизация обновлений с помощью unattended-upgrades.
        • Обработка обновлений ядра и корректная перезагрузка с помощью reboot-required.

        3. Защита вашего Ubuntu Server

        • Практические шаги по защите сервера, включая настройку брандмауэров (ufw), безопасную настройку SSH и использование таких инструментов, как fail2ban для защиты от атак.
        • Научитесь защищать сервер от уязвимостей и несанкционированного доступа.

        4. Аудит и ведение журналов в Ubuntu Server

        • Введение в системный аудит и важность журналов.
        • Использование auditd для отслеживания и записи системных событий.
        • Настройка ротации журналов с помощью logrotate.
        • Отслеживание каталога /var/log на предмет критических событий для обеспечения проактивного управления сервером.

        4 thoughts on “05. Networking Basics for Ubuntu Server: A Comprehensive Guide”

        Оставить комментарий