Подключи и играй для сетей с и без DHCP-сервера

358
Kenji

У меня есть устройство, которое можно использовать в двух разных сценариях.

  1. Одним из них является то, что он подключен к обычной сети Ethernet локальной сети компании. В этой сети есть сервер DHCP, и ожидается, что устройство будет клиентом DHCP и автоматически получит IP-адрес.

  2. Второй сценарий заключается в том, что устройство подключается непосредственно к ПК / ноутбуку с помощью кабеля локальной сети Ethernet. В этом случае ожидается, что устройство выбирает собственный IP-адрес, а также назначает IP-адрес ПК / ноутбуку. В этом случае устройство должно взять на себя роль DHCP-сервера.

Вы, наверное, уже видите, куда это идет. Я не хочу, чтобы пользователь устройства что-либо настраивал. Они должны иметь возможность просто подключить его, и это работает для них. Теперь проблема в том, что надежно определить, есть ли еще один DHCP-сервер в вашей сети, сложно . Да, я могу делать запросы DHCP и так далее. Я найду сервер 99% времени. Но в этот раз, когда я его не нахожу (например, из-за потери пакетов или длительного времени прохождения пакетов), если мое устройство затем становится сервером DHCP, оно отравляет всю сеть компании, выдавая IP-адреса в неправильном диапазоне. Как я могу решить эту проблему? Существуют ли какие-либо протоколы или меры безопасности, которые я могу предпринять, чтобы гарантировать, что они не будут мешать сети компании?

Мое устройство - это клиентское устройство, предлагающее услугу, вроде принтера. Это работает OpenWRT. Я сам его компилирую и управляю всеми файлами конфигурации. Обычно пользователи используют Windows 7,8 или 10. Как я могу включить APIPA в OpenWRT? Или я могу включить AVAHI и совместимо ли это с Windows APIPA?

0
Прежде всего, добро пожаловать в Super User! Мы всегда ценим вклад наших членов сообщества, но, пожалуйста, не отправляйте предлагаемое изменение в качестве ответа. Если он действительно отвечает на вопрос, отправьте ответ соответствующим образом. Пожалуйста, ознакомьтесь со следующим руководством по обмену стеками в отношении этого сценария: [Зачем мне нужно 50 репутации, чтобы комментировать? Что я могу сделать вместо этого?] (Https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can-i-do-instead) Спасибо за твоя помощь! Run5k 6 лет назад 1
Проблема не в установлении соединений, где нет DHCP-сервера, а в том, что он знает об услугах, предлагаемых по сети в таких случаях. Серверы DHCP и DNS в сетях также рекламируют доступные сервисы. Таким образом, зная, ЧТО вы надеетесь общаться через такие сети, будет полезно найти ваше решение. music2myear 6 лет назад 0
Возможно, вы могли бы изменить внутренний dhcp-сервер на устройстве, чтобы он отвечал только на запросы с _ ** first ** _ mac-адреса, который он слышит (и только в том случае, если он не обнаруживает другой dhcp-сервер, уже активный). Joel Coehoorn 6 лет назад 0
для № 2. Является ли компьютер / ноутбук определенным устройством или находится в каком-либо месте? cybernard 6 лет назад 0
@cybernard Это любое место. Представьте, что это что-то вроде принтера. Подключите его к корпоративной сети, подключите к ПК, где угодно и когда угодно. Это должно быть подключи и играй. Kenji 6 лет назад 0

2 ответа на вопрос

0
music2myear

Это уже встроено в большинство IP-клиентов и называется APIPA: автоматическая частная IP-адресация.

Когда устройства подключаются к локальной сети, где нет DHCP-сервера, они общаются между собой и выбирают адреса APIPA. Обычно их легко идентифицировать, потому что они начинаются с 169.254 ... и часто указывают на отсутствие управления локальной сетью или доступа в Интернет.

Они также означают, что когда вы знаете, что подключены к какой-либо сети, вы можете найти адреса APIPA других устройств в сети и обмениваться данными с ними по их адресам.

Спасибо, этот ответ мне очень помог! Есть ли способ использовать APIPA на устройстве под управлением OpenWRT? В то время как мои машины с Windows переходят на 169.254.xx, на моем устройстве работает OpenWRT, который просто остается на 0.0.0.0, когда DHCP-клиент не может получить адрес, и я не могу активировать APIPA ни через uci, ни из командной строки. Kenji 6 лет назад 0
APIPA имеет больше смысла на клиентских устройствах, чем на маршрутизаторах и модемах, поэтому я предполагаю, что ваше устройство OpenWRT не выполняет APIPA по умолчанию или вообще. Лучшее для вашего сетевого устройства - настроить его на статический IP-адрес. music2myear 6 лет назад 0
Ну, я согласен с вами, но дело в том, что мое устройство * является * клиентским устройством. Он имеет небольшую плату OpenWRT внутри, которая немного переключается и содержит точку доступа WLAN, но это не маршрутизатор или модем. Вы можете думать о нем как о принтере, он по сути предлагает услугу, и пользователь может либо подключить его непосредственно к своему ПК / ноутбуку, либо подключить к своей домашней / корпоративной сети. Kenji 6 лет назад 0
Таким образом, вы можете использовать устройство в качестве «клиентского» устройства, но использование контроллера / программного обеспечения OpenWRT означает, что состояние сети устройства по умолчанию вряд ли будет содержать нужную вам функцию. Я предполагаю, что возможно настроить или изменить OpenWRT для обработки APIPA, когда DHCP не работает или отсутствует. Я бы начал с изучения OpenWRT и APIPA и изменения вашего вопроса, чтобы сфокусировать его на том, что вы узнали здесь. music2myear 6 лет назад 0
Да, я знаю, что это не функция по умолчанию. Я сам компилирую OpenWRT и контролирую все файлы конфигурации, чтобы выбрать любую конфигурацию, какую захочу. Я изменю свой вопрос, чтобы учесть эти детали. Kenji 6 лет назад 0
Я отмечу это как решение, спасибо. Я не совсем понял, как это сделать, но диапазон частных адресов - это путь вперед. Kenji 6 лет назад 0
0
cybernard

На роутере

iptables -I INPUT 1 -i eth0 -p udp -m mac ! --mac-source XX:XX:XX:XX:XX:XX -j DROP 

Измените eth0 на свой NIC.

Измените MAC-адрес.

! значит нет. Это создает белый список того, с кем будет разговаривать ваш DHCP-сервер. Вы можете добавить спорт и / или dport опции, если это необходимо.

Включите ваш DHCP-сервер.

И откуда мне знать, что занести в белый список? Мое устройство может быть подключено к * любой * сети компании, как принтер (это не маршрутизатор или модем). Я * должен * убедиться, что не запускаю DHCP-сервер, если он уже есть в сети, даже если это медленный или иногда недоступный DHCP-сервер. Kenji 6 лет назад 0

Похожие вопросы