Практика 4. Сетевая диагностика и конфигурация
Цель работы
Освоить инструменты сетевой диагностики в Linux, научиться анализировать сетевую конфигурацию, рассчитывать подсети.
Часть 1. Сетевые интерфейсы
Задание 1.1. Просмотр интерфейсов
-
Выведите информацию о сетевых интерфейсах:
Окно терминала ip addr showip -4 addr show # Только IPv4ip -6 addr show # Только IPv6 -
Выведите информацию о состоянии интерфейсов:
Окно терминала ip link showНайдите интерфейс
lo(loopback) и основной интерфейс (eth0, ens33, enp0s3 и т.д.). Чем они отличаются? -
Сравните с устаревшей командой:
Окно терминала ifconfig # Может потребоваться: sudo apt install net-tools -
Для каждого интерфейса запишите:
- Имя интерфейса
- MAC-адрес
- IPv4-адрес и маску
- IPv6-адрес (если есть)
- Состояние (UP/DOWN)
Задание 1.2. Маршрутизация
-
Просмотрите таблицу маршрутов:
Окно терминала ip route show -
Определите шлюз по умолчанию:
Окно терминала ip route | grep default -
Определите, через какой интерфейс пойдёт пакет к определённому адресу:
Окно терминала ip route get 8.8.8.8ip route get 192.168.1.1
Часть 2. Диагностика сети
Задание 2.1. ping
-
Проверьте доступность локального хоста:
Окно терминала ping -c 4 127.0.0.1ping -c 4 localhost -
Проверьте доступность шлюза:
Окно терминала ping -c 4 $(ip route | grep default | awk '{print $3}') -
Проверьте доступность внешнего сервера:
Окно терминала ping -c 4 8.8.8.8ping -c 4 1.1.1.1 -
Проверьте доступность по доменному имени:
Окно терминала ping -c 4 google.comЕсли шаги 1–3 проходят, а 4 нет — в чём проблема?
-
Запустите ping с ограничением по времени и размером пакета:
Окно терминала ping -c 10 -i 0.5 -s 1000 8.8.8.8Что означают флаги
-iи-s?
Задание 2.2. traceroute
-
Отследите маршрут до внешнего сервера:
Окно терминала traceroute 8.8.8.8Или используйте
mtrдля интерактивного мониторинга:Окно терминала sudo apt install mtrmtr 8.8.8.8 -
Сравните маршруты до разных серверов:
Окно терминала traceroute 1.1.1.1traceroute ya.ruОтличаются ли маршруты? На каком хопе они расходятся?
-
Если какой-то хоп показывает
* * *, что это значит?
Задание 2.3. DNS-диагностика
-
Разрешите доменное имя с помощью
nslookup:Окно терминала nslookup google.comnslookup ya.ru -
Используйте
digдля детального запроса:Окно терминала dig google.com Adig google.com AAAAdig google.com MXdig google.com NSdig google.com TXTДля каждого типа записи объясните, что она означает.
-
Запросите конкретный DNS-сервер:
Окно терминала dig @8.8.8.8 google.com Adig @1.1.1.1 google.com A -
Просмотрите TTL записи:
Окно терминала dig +nocmd +noall +answer google.comВыполните команду несколько раз с интервалом — как меняется TTL?
-
Изучите файлы DNS-конфигурации:
Окно терминала cat /etc/resolv.confcat /etc/hostsЧто хранится в каждом файле?
Задание 2.4. ARP-таблица
-
Просмотрите ARP-таблицу:
Окно терминала ip neigh show# илиarp -a -
Выполните
pingна несколько адресов в локальной сети и снова проверьте ARP-таблицу. Что изменилось? -
Объясните: почему в ARP-таблице содержатся только адреса из локальной сети?
Часть 3. Расчёт подсетей
Задание 3.1. Базовые расчёты
Для каждого из приведённых IP-адресов и масок определите:
- Адрес сети
- Широковещательный адрес (broadcast)
- Диапазон допустимых адресов хостов
- Количество доступных адресов хостов
| № | IP-адрес | Маска | Адрес сети | Broadcast | Диапазон хостов | Кол-во хостов |
|---|---|---|---|---|---|---|
| 1 | 192.168.1.130 | /24 | ? | ? | ? | ? |
| 2 | 10.0.15.200 | /16 | ? | ? | ? | ? |
| 3 | 172.16.50.100 | /20 | ? | ? | ? | ? |
| 4 | 192.168.10.65 | /26 | ? | ? | ? | ? |
| 5 | 10.1.1.1 | /30 | ? | ? | ? | ? |
| 6 | 172.20.128.50 | /17 | ? | ? | ? | ? |
Задание 3.2. Обратные задачи
-
Вам нужно разделить сеть
192.168.1.0/24на 4 равные подсети. Определите:- Маску для каждой подсети
- Адреса сетей
- Диапазоны хостов
- Broadcast-адреса
-
В организации 100 хостов. Какую минимальную маску подсети нужно использовать? Какой блок адресов из
10.0.0.0/8подойдёт? -
Определите, находятся ли следующие пары адресов в одной подсети:
192.168.1.50/24и192.168.1.200/2410.0.1.100/16и10.0.2.100/16172.16.1.10/20и172.16.18.10/20
Задание 3.3. Проверка расчётов утилитой ipcalc
Установите ipcalc и проверьте свои расчёты:
sudo apt install ipcalcipcalc 192.168.10.65/26ipcalc 172.16.50.100/20Часть 4. Настройка сети
Задание 4.1. Изучение конфигурации
-
Определите, какой инструмент управляет сетью в вашей системе:
Окно терминала # Netplan (Ubuntu 18.04+)ls /etc/netplan/cat /etc/netplan/*.yaml# NetworkManagernmcli device statusnmcli connection show -
Запишите текущие сетевые параметры (IP, маска, шлюз, DNS).
Задание 4.2. Временное изменение IP (необязательно, только в виртуальной среде)
Внимание: выполняйте только на виртуальной машине, чтобы не потерять сетевое подключение!
# Добавить временный IP-адресsudo ip addr add 192.168.100.10/24 dev eth0
# Проверитьip addr show eth0
# Удалитьsudo ip addr del 192.168.100.10/24 dev eth0Мини-проект: диагностический скрипт
Напишите скрипт ~/project/src/main/netcheck.sh, который автоматически проверяет сетевое подключение и выводит отчёт.
Требования:
- Проверяет, что основной интерфейс в состоянии UP.
- Проверяет, что интерфейсу присвоен IP-адрес.
- Проверяет доступность шлюза по умолчанию (
ping). - Проверяет работу DNS (резолвинг
google.com). - Проверяет доступность интернета (
ping 8.8.8.8). - Выводит цветной отчёт с [OK] / [FAIL] для каждой проверки.
Шаблон:
#!/bin/bash
RED='\033[0;31m'GREEN='\033[0;32m'NC='\033[0m'
pass() { echo -e "${GREEN}[OK]${NC} $1"; }fail() { echo -e "${RED}[FAIL]${NC} $1"; }
echo "=== Диагностика сети ==="echo "Дата: $(date)"echo ""
# 1. Определить основной интерфейсIFACE=$(ip route | grep default | awk '{print $5}' | head -1)if [ -n "$IFACE" ]; then pass "Основной интерфейс: $IFACE"else fail "Не удалось определить сетевой интерфейс" exit 1fi
# 2. Проверить состояние интерфейсаSTATE=$(ip link show "$IFACE" | grep -o "state [A-Z]*" | awk '{print $2}')if [ "$STATE" = "UP" ]; then pass "Интерфейс $IFACE: $STATE"else fail "Интерфейс $IFACE: $STATE"fi
# 3. Проверить IP-адресIP=$(ip -4 addr show "$IFACE" | grep -oP 'inet \K[\d.]+')if [ -n "$IP" ]; then pass "IP-адрес: $IP"else fail "IP-адрес не присвоен"fi
# 4. Проверить шлюз# TODO: реализовать
# 5. Проверить DNS# TODO: реализовать
# 6. Проверить доступность интернета# TODO: реализовать
echo ""echo "=== Проверка завершена ==="Контрольные вопросы
- Перечислите 7 уровней модели OSI. На каком уровне работают IP, TCP, HTTP?
- Чем модель TCP/IP отличается от модели OSI?
- Что такое MAC-адрес? Чем он отличается от IP-адреса?
- Объясните, что такое маска подсети. Как по маске определить количество хостов в сети?
- Дано: IP =
172.16.50.200, маска =/20. Определите адрес сети и broadcast. - Что такое шлюз по умолчанию? Что произойдёт, если хост без шлюза попытается обратиться к адресу в другой подсети?
- Опишите процесс DHCP (4 этапа DORA). Почему Discover отправляется широковещательно?
- Как работает NAT (PAT)? Объясните на примере домашнего роутера.
- Как работает ARP? Почему ARP-запрос отправляется широковещательно, а ответ — одноадресно?
- Что показывает
traceroute? Какой механизм IP позволяет определять промежуточные маршрутизаторы?