Вопрос или проблема
У меня 2 виртуальные машины. Одна настроена как сервер PXE (dhcpd с конкретной подсетью и tftp сервером). Вторая виртуальная машина подключена к ‘vboxnet2’ к первой ВМ и получает DHCP IP, как указано в DHCPD первой ВМ, но не может загрузить указанный файл, указанный в ‘filename’ dhcpd.conf.
Ничто из этого: https://docs.oracle.com/cd/E19045-01/b200x.blade/817-5625-10/Linux_Troubleshooting.html не помогло.
Итак:
Я пытался выполнить загрузку tftp с VM1 и, похоже, она загружает точный файл (путь и прослушивание tftp выглядит нормально).
Я пробовал tcpdump, и VM1, похоже, получает пакеты, но нет отладочного лога в syslog (что я обычно вижу).
Я добавил запись iptables, чтобы принимать все от IP VM2.
Что еще я могу сделать, чтобы мой tftpd получил запрос?
Сбор трафика wireshark с вашего сервера VM определенно поможет.
Вы говорите, что DHCP выдает IP и информацию PXE, верно?
Вы уверены, что у вас только один DHCP сервер в вашей настройке?
Вы уверены, что IP, который выдает DHCP сервер, принадлежит соответствующей подсети?
Если вы проверите эти моменты, вы, вероятно, обнаружите, что клиент получает IP от вторичного DHCP сервера без информации PXE, или DHCP предоставляет неправильный IP подсети и т.д., типичные проблемы PXE….
ИЗМЕНЕНИЕ:
Пожалуйста, убедитесь, что в вашем сценарии нет другого DHCP, клиент может, например, принимать неправильное предложение… Сначала вам следует исключить вариант с несколькими DHCP. Затем проанализируйте предложение DHCP и проверьте поле “next server” (или опцию 66), которое должно содержать IP-адрес TFTP, затем проверьте, действительно ли TFTP сервер получает правильно сформированный запрос, затем попробуйте выяснить, нет ли проблем с фаерволом TFTP, учитывая, что TFTP – это протокол, который получает начальный запрос на 69 порту, но потом использует случайно выбранный порт для передачи данных.
Ответ или решение
Чтобы диагностировать и устранить проблему с таймаутом TFTP (Trivial File Transfer Protocol) в вашем сценарии с PXE (Preboot Execution Environment), важно тщательно провести диагностику на каждом этапе процесса. Давайте рассмотрим шаги, которые нужно предпринять для выявления причин проблемы.
Шаг 1: Проверка DHCP-сервера
-
Проверка единственного DHCP-сервера: Убедитесь, что у вас работает только один DHCP-сервер в вашей сети. Наличие нескольких серверов может привести к конфликтам и выдаче неверных параметров клиентам. Пользуйтесь командой
tcpdump
для отслеживания DHCP-ответов и убедитесь, что ваш сервер действительно отправляет DHCP-ответы. -
Анализ DHCP-ответа: Обратите внимание на поля, содержащие информацию о TFTP:
- Next Server (поле 66): Убедитесь, что IP-адрес вашего TFTP-сервера указан корректно.
- Filename (поле 67): Убедитесь, что имя файла указано верно и файл доступен на TFTP-сервере.
Шаг 2: Проверка TFTP-сервера
-
Тестирование подключения: Вы уже проверили возможность скачивания файла с TFTP-сервера внутри виртуальной машины (VM1). Это хороший знак, но обратите внимание на то, что клиент (VM2) использует другой интерфейс.
-
Мониторинг трафика: Используйте
tcpdump
илиWireshark
для мониторинга на VM1. Просмотрите как приходит запрос TFTP на порт 69. Убедитесь, что ваш сервер получает правильный запрос. -
Логи TFTP-сервера: Если у вас нет записей о получении запросов в системных логах (
syslog
), возможно, проблема в конфигурации самого TFTP-сервера. Убедитесь, что служба работает и что её конфигурация корректна (путь к файлам, права доступа, разрешения и т.д.).
Шаг 3: Настройка сетевой инфраструктуры
-
Проверка iptables: Убедитесь, что пока что вы не используете более строгие правила файрволла. Как вы уже добавили правило для разрешения трафика от IP VM2, также стоит проверить, какие остальные правила у вас настроены. Попробуйте временно отключить iptables, чтобы исключить влияние правила на соединение.
-
Режимы TFTP: TFTP традиционно использует UDP, а для передачи данных может использовать случайные порты. Убедитесь, что конфигурация не блокирует динамические порты.
Шаг 4: Дополнительные проверки
-
Файловая система: Убедитесь, что у вас есть нужные права на доступ к файлам на TFTP-сервере. Файлы должны быть доступны для чтения.
-
Тестирование с другим клиентом: Попробуйте выполнить загрузку файла с другого клиента (например, с другого VM или физической машины), чтобы выяснить, сохраняется ли проблема.
Заключение
Диагностика таймаута TFTP требует взаимодействия между разными компонентами сети. Следуйте описанным шагам, чтобы изолировать и обнаружить проблему. Если вас продолжают беспокоить вопросы с конфигурацией, постарайтесь обратиться к документации TFTP, чтобы разъяснить возможные нюансы.
Не забывайте, что систематический подход к каждому этапу гарантирует нахождение решения в кратчайшие сроки. Удачи!