Практическая работа по теме: "Сетевая подсистема Linux"
Цель работы: Освоить базовые навыки работы с сетевой подсистемой Linux, закрепить знания о логической организации передачи данных, адресации, маршрутизации и взаимодействии удаленных процессов через практические примеры.
Блок теории
Перед выполнением работы кратко вспомним ключевые концепции, изученные на теоретическом занятии:
Многоуровневая модель OSI/TCP-IP
— Сетевая подсистема Linux реализует уровни модели TCP/IP (физический, канальный, сетевой, транспортный, прикладной).
— Пример: командаping
работает на сетевом уровне (ICMP), аnetcat
— на транспортном (TCP/UDP).Адресация и маршрутизация
— IP-адреса идентифицируют узлы в сети, MAC-адреса — устройства на канальном уровне.
— Таблица маршрутизации определяет путь пакетов к целевому узлу (командаip route
).Логические соединения и передача данных
— TCP обеспечивает надежную передачу с установлением соединения («рукопожатие»).
— UDP передает данные без подтверждения (сообщения).
— Пример: веб-сервер использует TCP, а VoIP-приложения — UDP.Синхронизация процессов
— Удаленные процессы синхронизируются через механизмы вроде сокетов, сигналов или временных меток.Протоколы
— Набор правил для передачи данных (HTTP, DNS, SSH). В Linux протоколы реализованы через сокеты и демоны (например,sshd
для SSH).
Практическая часть
Преподаватель демонстрирует команды, студенты повторяют их в терминале Linux (рекомендуется использовать Ubuntu/Debian в виртуальной машине или WSL).
Задание 1. Проверка сетевых интерфейсов и настройка IP-адреса
Цель: Изучить структуру сетевых интерфейсов и работу с IP-адресацией.
Просмотр активных интерфейсов:
baship link show
— Обратите внимание на интерфейсы
lo
(loopback),eth0
/ens33
(физический интерфейс).
— Связь с теорией: Интерфейсы соответствуют канальному уровню модели OSI.Просмотр IP-адресов:
baship addr show
— Найдите IPv4-адрес (например,
192.168.1.10/24
).
— Связь с теорией: IP-адрес относится к сетевому уровню.Временная настройка IP-адреса (на интерфейсе
eth0
):bashsudo ip addr add 10.0.0.10/24 dev eth0
— Проверьте изменения:
ip addr show eth0
.
— Важно: Адрес сбросится после перезагрузки (для постоянной настройки используется файл/etc/network/interfaces
).
Задание 2. Анализ таблицы маршрутизации
Цель: Понять, как система определяет путь для отправки пакетов.
Просмотр таблицы маршрутизации:
baship route show
Пример вывода:
default via 192.168.1.1 dev eth0 192.168.1.0/24 dev eth0 proto kernel scope link
—
default
— маршрут по умолчанию (шлюз).
— Связь с теорией: Маршрутизация решает задачу доставки пакетов между сетями.Добавление статического маршрута (к сетке
10.0.1.0/24
через шлюз192.168.1.1
):bashsudo ip route add 10.0.1.0/24 via 192.168.1.1 dev eth0
— Убедитесь, что маршрут добавлен:
ip route show
.
Задание 3. Проверка активных соединений
Цель: Исследовать установленные логические соединения.
Просмотр TCP/UDP-соединений:
bashss -tuln
— Флаги:
-t
(TCP),-u
(UDP),-l
(прослушивание),-n
(отображать номера портов).
— Пример вывода:LISTEN 0 50 *:22 *:* # SSH-сервер слушает порт 22
— Связь с теорией: Порты (например, 22 для SSH) относятся к транспортному уровню.
Анализ соединения с удаленным сервером:
bashping google.com
— Нажмите
Ctrl+C
, чтобы остановить.
— Связь с теорией:ping
использует ICMP (сетевой уровень) для проверки доступности узла.
Задание 4. Установка соединения между процессами (TCP/UDP)
Цель: Продемонстрировать передачу данных между удаленными процессами.
Сценарий для двух терминалов (или двух машин в локальной сети)
На машине-сервере (слушает порт 5000):
bashnc -l -p 5000
—
-l
— режим прослушивания,-p
— указание порта.На машине-клиенте (подключается к серверу):
bashnc <IP_сервера> 5000
— Введите текст в одном терминале — он появится в другом.
— Связь с теорией: Это пример передачи данных через TCP-соединение (транспортный уровень). Для UDP добавьте флаг-u
.Завершение работы: Нажмите
Ctrl+C
в обоих терминалах.
Задание 5. Анализ сетевого трафика с помощью tcpdump
Цель: Увидеть, как данные передаются на уровне пакетов.
Запуск сниффера на интерфейсе
eth0
:bashsudo tcpdump -i eth0 -n port 5000
—
-n
— не разрешать имена хостов,port 5000
— фильтр по порту.Повторите Задание 4 (соединение через
nc
на порту 5000).
— В терминале сtcpdump
вы увидите «сырые» пакеты TCP (SYN, ACK, данные).
— Связь с теорией: Демонстрация работы протокола TCP (трехэтапное «рукопожатие»).
Вопросы для самопроверки
- Какая команда показывает таблицу маршрутизации в современных дистрибутивах Linux?
- Почему при использовании
nc
для передачи данных важно указывать протокол (TCP/UDP)? - Какой уровень модели OSI отвечает за адресацию через IP-адреса?
- Что означает запись
192.168.1.0/24
в таблице маршрутизации? - Как проверить, какие процессы используют сетевые порты?
Отчет по работе
Студенты должны:
- Приложить скриншоты выполнения ключевых команд (например, вывод
ip addr
,ss -tuln
,tcpdump
). - Ответить на вопросы для самопроверки.
- Написать вывод: как теоретические концепции (маршрутизация, протоколы) проявляются в практических примерах.
Примечание для преподавателя:
- Перед работой убедитесь, что у студентов есть доступ к Linux (виртуальная машина, WSL, или лабораторный стенд).
- Для безопасности рекомендуется использовать локальную сеть или
localhost
в заданиях 4–5. - Акцентируйте внимание на связи каждой команды с теорией (например: «Команда
ip route
решает проблему маршрутизации, о которой мы говорили на лекции»).