Если клиент не прослушивает 68-й порт, когда DHCP-сервер получает запрос, он может отправить его на адрес, откуда он получил запрос (с эфемерным портом, выбранным клиентом во время отправки), то почему протокол указывает клиент прослушивать порт 68?Почему клиент DHCP прослушивает порт 68?
ответ
Основная причина заключается в том, что DHCP-сервер может транслировать «предложение DHCP» на уровне Mac, вместо того, чтобы отправлять его одноадресной рассылке на адрес mac, на который он получил запрос. Если порт не был постоянным, некоторые хосты, которые случайно слушают этот же случайный порт, будут принимать пакет на уровень 5 - прикладной уровень. Другими словами, приложение получит сообщение от совершенно другого приложения, а не из-за здоровой ситуации.
Этот ответ не кажется отличным от 3 лет назад. Если вы хотите что-то добавить, подумайте о том, чтобы предложить отредактировать существующий, принятый ответ :) –
Спасибо, это на самом деле правильный ответ. – Parzifal
Релевантный вопрос: могу ли я безопасно отключить брандмауэр от этого порта в обычной настройке, когда клиент DHCP используется для получения IP-адресов? То есть является * может * актуальным в реальном мире? – Zero3
Я просто пришлось столкнуться с такой же вопрос сам, и после некоторых исследований я обнаружил следующее на RFC 2131, который описывает протокол DHCP, в соответствии с разделом 1.6 Цели разработки:
- DHCP должен предоставлять услуги существующие клиенты BOOTP
Также на RFC 951, которые описывают протокол BOOTP, можно найти следующее:
UDP-заголовок содержит номера портов источника и назначения. Протокол BOOTP использует два зарезервированных номера порта: «BOOTP client» (68) и «BOOTP server» (67). Клиент отправляет запросы с использованием «BOOTP server» в качестве порта назначения; это обычно широковещательная передача. Сервер отправляет ответы с использованием «BOOTP client» в качестве порта назначения; в зависимости от оборудования ядра или драйвера на сервере, это может быть или не может быть широковещательным (это объясняется далее в разделе под заголовком «Проблемы курицы/яйца» ниже). Причина, по которой используются два зарезервированных порта , заключается в том, чтобы избежать «пробуждения» и планирования сервера BOOTP , когда загрузочный запрос должен быть передан клиенту. Поскольку сервер и другие хосты не будут прослушивать порт «BOOTP client», , любые такие входящие широковещательные передачи будут отфильтрованы на уровне ядра . Мы не могли просто позволить клиенту выбрать «случайный» порт для поля порта источника UDP; так как ответ сервера может быть , случайный номер порта может путать другие хосты , которые прослушивали этот порт.
Так что ответ на вопрос исходит из вышесказанного. Клиенты DHCP должны использовать UDP-порт 68, чтобы DHCP мог быть совместим с протоколом BOOTP, а для протокола BOOTP требуется конкретный порт для клиента, поскольку BOOTPREPLIES можно транслировать, и если для клиента был выбран случайный порт , это может привести к путанице других хостов, прослушивающих один и тот же порт.
- 1. TCP-порт 67 и 68 для DHCP
- 2. dhcp клиент на linux, порт или использовать?
- 3. Ошибка связывания клиента DHCP на порте 68
- 4. какой порт клиент socketIO прослушивает по умолчанию?
- 5. Какой порт ProxyServlet.Transparent прослушивает?
- 6. Java прослушивает порт
- 7. Почему прослушивает порт с Netcat не работает
- 8. Базовый клиент DHCP
- 9. Где датаграммы, если клиент не прослушивает порт UDP?
- 10. Influxdb не прослушивает порт udp
- 11. Nginx прослушивает НЕ порт 80
- 12. Почему клиент-зажигатель открывает порт?
- 13. nginx не прослушивает порт 80
- 14. WebDeploy не прослушивает порт 8172
- 15. hadoop datanode прослушивает случайный порт
- 16. Nginx не прослушивает указанный порт
- 17. IntelliJ - «SnapShooter прослушивает порт XXXXX»?
- 18. Клиент-серверная пара: эфемерный порт
- 19. Почему mariadb не прослушивает порт 3306 после обновления macports?
- 20. Почему этот код Python прослушивает только один порт?
- 21. Почему селектор NIO всегда прослушивает последний порт из списка портов?
- 22. Почему клиент зависает, когда указан локальный порт?
- 23. Реализация клиента DHCP
- 24. Net Module Nodester не прослушивает порт
- 25. Получает ли DHCP-клиент DHCP NAK, если какой-либо из параметров неверен в выпуске DHCP?
- 26. изменить ip и порт, где прослушивает modoboa
- 27. сделать wildfly прослушивает порт 443 не 8443
- 28. Какой PID прослушивает данный порт передачи
- 29. Определить, прослушивает ли сервер данный порт
- 30. Parse Server не прослушивает порт 1337
Вопрос гласит: «Почему протокол указывает, что клиент прослушивает порт 68?», Поэтому то, что они задают, кажется более «почему RFC говорит об этом?». –
DHCP основан на более раннем протоколе BOOTP, который использовал порты 67 (сервер) и 68 (клиент).Почему BOOTP использовал эти порты, вероятно, потому, что они не использовались ни одним из других протоколов в то время (SMTP использует 25, FTP использует 21 и т. Д.). Хотя хост обычно имеет один IP-адрес, он может иметь тысячи портов. Назначая определенные номера портов конкретным протоколам, несколько сторон могли разрабатывать стандартные службы и клиенты. Пока вы слушаете правильный порт, вы можете написать свой собственный DHCP-клиент или сервер. – TLiebe
Хорошо, нет технической причины? – avd