У меня есть локальный веб-сервер (nginx на Raspberry Pi) со статическим IP (10.120.11.31). Подключив его к маршрутизатору, я могу получить к нему доступ через свой ноутбук с динамическим ip (ipconfig показывает его как 10.120.11.186 с маской 255.255.255.0 и 10.120.11.1, что все выглядит хорошо).

Затем я отключаю обе машины от сети и подключаю стандартный Ethernet-кабель CAT-5 между разъемами Ethernet двух машин, но больше не могу получить доступ к веб-серверу, поместив IP-адрес веб-сервера в браузер ноутбука.

Нужен ли просто перекрестный кабель или есть еще?

Спасибо

1 ответ1

2

То, что вы ищете, - это то, что IETF (тело стандартов IP) называет "сетью с нулевой конфигурацией" или "ZeroConf".

Он был разработан специально для того случая, о котором вы говорите. Если я соединю две или более машины вместе через Ethernet, они смогут получать адреса, общаться друг с другом и обнаруживать сервисы друг друга, даже если какой-то системный администратор не настроит маршрутизатор или сервер DHCP, не настроит IP-адреса вручную или еще много чего.

Вот Raspberry Pi ZeroConf HOWTO от Adafruit. Это может быть все, что вам нужно. Читайте ниже для деталей фона.

ZeroConf, как технология, состоит из трех частей:

  1. Самостоятельно назначаемая локальная IP-адресация, чтобы машины могли получать IP-адреса без DHCP-сервера и без ручной настройки. Это 169.254.0.0/16 IPv4-адреса, которые все видели, а также адреса fe80:: IPv6.

  2. Разрешение имен многоадресного DNS (mDNS). Это позволяет системам объявлять свои имена, такие как «Raspberry-Pi.local» или «Spiffs-Mac.local», через многоадресные рассылки в локальной сети без необходимости одноадресного DNS-сервера. Таким образом, вы можете напечатать что-то вроде « http://rpi.local/ », чтобы попасть на веб-сервер на вашем RPi.

  3. [m] Обнаружение службы DNS (DNS-SD). Это позволяет устройствам объявлять, какие сервисы они предоставляют (и названия этих сервисов), а не только их имя хоста. Таким образом, они могли бы объявить, что они - принтер, или веб-сервер, или у них есть слушатель sshd, или все вышеперечисленное и т.д.

Реализация Apple ZeroConf известна как "Bonjour" (предоставляется демоном "mDNSResponder" с открытым исходным кодом). Помимо mDNSResponder, который распространен в продуктах Apple, устройствах Android и многих встроенных устройствах, есть также пакет с открытым исходным кодом "Avahi", который входит в состав многих настольных компьютеров / ноутбуков, маршрутизаторов и других встроенных дистрибутивов Linux. Я полагаю, что OpenWrt даже создал свою собственную реализацию, называемую просто "mDNS", так что это третья реализация с открытым исходным кодом.

К сожалению, Microsoft никогда изначально не поддерживала истинный IETF ZeroConf и вместо этого загрязнила пространство подделкой, которую они называют LLMNR, которая также использует пространство имен «.local», вызывая конфликты. НО, Apple предоставляет реализацию ZeroConf на основе mDNSResponder для Windows в форме Bonjour Print Services для Windows. (Не позволяйте имени обмануть вас, это полная реализация ZeroConf, не ограниченная печатью.)

Кстати, вам не нужен перекрестный кабель, потому что Ethernet-порт Raspberry Pi содержит PHY с автоматическим кроссовером (auto MDI-X).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .