Linux Labs

Сеть / Ступень 14 из 15

Что видно в пакетах

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 4 из 7 · на машине · 7 мин

Отказ на проводе

drop молчит, и клиент ждёт. Посмотри, что меняет reject. «Начать» вернёт правило drop на место.

Упражнение · посмотреть

Отказ вместо тишины

Замени в /opt/packets-lab/rules.nft действие drop на reject и загрузи файл на lab-node2. Посмотри шесть пакетов обмена с 192.0.2.11, потом запроси сайт с lab-node1.

Сначала предположи

Что lab-node2 отправит в ответ на SYN к порту 8080 после замены на reject?

Теперь начни упражнение, выполни команду и сверь прогноз с выводом.

Войти и начать Машина доступна после входа

Отказ приходит сразу, но бывает двух видов.

Правило reject по умолчанию отвечает сообщением ICMP «порт недоступен»: ICMP 192.0.2.12 tcp port 8080 unreachable. Порт 8081 закрывает ядро: там никто не слушает, и ядро отвечает пакетом RST — Flags [R.]. Правило reject with tcp reset шлёт такой же RST, и по пакетам его не отличить от пустого порта: на сервере это покажут ss -ltn и nft list ruleset.

Клиенту разница не видна: curl в обоих случаях печатает Couldn't connect to server, nc — Connection refused.

На сервере В tcpdump У клиента
drop [S] и его повторы, ответа нет тайм-аут
reject [S], затем ICMP … unreachable отказ сразу
пустой порт, reject with tcp reset [S], затем [R.] отказ сразу
порт открыт [S], [S.], [.] подключение
Заметка

Фильтр tcp port 8080 прячет ответ ICMP: это не TCP-пакет. С таким фильтром отказ reject выглядит как SYN без ответа, только без повторов. Отказы смотри фильтром по адресу — host 192.0.2.11.

Проверь себя 1 вопрос

Клиент сразу получает Couldn't connect to server, а tcpdump на сервере показывает за SYN строку ICMP … tcp port 8080 unreachable. Кто отказал?

  • SYN клиента дошёл до сервера — он есть в выводе, и ответ пришёл от 192.0.2.12.

  • drop не отвечает ничем: клиент повторяет SYN и ждёт до тайм-аута.

  • Пустой порт ядро закрывает пакетом [R.] от 192.0.2.12.8080. Сообщение ICMP отправило правило reject.

Сообщение ICMP «порт недоступен» в ответ на SYN отправляет правило reject. Пустой порт и reject with tcp reset отвечают [R.], а drop — тишиной.

Ubuntu 24.04
Загрузка…