Статические IPs
Я хочу, чтобы мой малиновый Pi был назначен статическим IPs
С моей терминологией они не являются "статическими". Устройство выбирает свой собственный "статический IP" адрес.
но, исходя из вопроса, могу сказать, что вы ищете: динамический адрес, который сервер зарезервировал.
Если Raspberry Pi даже не удосужился спросить DHCP-сервер, то он статический (и DHCP-сервер все еще может быть резервирование адреса). Если адрес идет "от" DHCP-сервер, как вы указали, то пи малины не спросить у DHCP-сервера адрес, так это "динамичный" (в том смысле, что Raspberry Pi-это принимать все, что сервер указал, а так если DHCP-сервер не менять адрес, то малина Пи, вероятно, принять изменения. Таким образом, с точки зрения Raspberry Pi, он является динамическим, даже если DHCP-сервер ссылается на него как зарезервированный динамический адрес.
можно ли на Raspberry Pi (или любое другое устройство) запросить конкретный статический IP-адрес от DHCP-сервера?
нет, потому что если адрес запрашивается, то он не статичен. (Он может сделать запрос и получить зарезервированный адрес.)
модем имеет 192.168.0.1 веб-адрес, который позволит мне управлять назначением dhcp статических IP-адресов на основе mac адреса.
это зарезервированные адреса не статические.
извините, что так много раз повторяю этот момент, но вопрос использовал фразу "static" таким образом, с которой я не согласен, поэтому я надеюсь получить привычку, исправленную хорошо и рано. Сеть может быть очень запутанной, даже когда терминология используется правильными способами, поэтому я рекомендую вам использовать термин "статический IP", чтобы не ссылаться на адреса, полученные от автоматического протокола назначения адресов, такого как протокол DHCP. (Хотя DHCP является наиболее распространенным с IPv4, это не единственный возможный вариант. Например, есть "объявления маршрутизатора", которые, вероятно, более широко используются с IPv6, чем IPv4, только потому, что DHCP был так, так, так широко поддерживается в IPv4 и опыт показывает, что он работает нормально).
запрос IP
возможно ли, чтобы устройству был назначен определенный ip-адрес от DHCP-сервера (статический или dynamic)
да. Протокол DHCP позволяет это. Это будет не статично, а"зарезервировано".
Если вы посмотрите на связи DHCP, DHCP следует за Дора подход. Дора расшифровывается как DISCOVER, предложение, запрос, подтверждение.
в простой транзакции последовательность может быть такой же простой, как у Доры. (Это означает, что есть одно обнаружение, одно предложение, один запрос и одно подтверждение.) DHCP-клиент может запросить любой адрес. Этот часто это может быть сделано, если клиент покидает сеть, а затем возвращается и предпочитает адрес, который ранее использовался. Если DHCP-клиент запрашивает адрес, который не является приемлемым, это может привести к более длительной связи, как DORORA. Ниже приводится резюме таких сообщений.
сначала несколько заметок:
-
Полужирные буквы, описывающие один из шагов Дора представляют собой сообщение, которое на самом деле послал.
-
Жирные буквы также используются, чтобы помочь определить машины.
-
В следующих примерах подсеть 192.0.2 использовалась в соответствии с RFC 5737
-
следующие адреса были литеральными:
- 0.0.0.0
- 255.255.255.255
- ФФ-ФФ-ФФ-ФФ-ФФ-ФФ
-
Следующие были более образец адреса, и будет подгонять:
-
11-11-11-22-22-22
- и 33-33-33-44-44-44
а теперь обещанное резюме сообщений:
-
[Client]: "у меня нет IP-адрес. Я хочу, чтобы это изменилось."
-
[Client] использует IP-адрес 0.0.0.0, МАК 11-11-11-22-22-22, и отправляет на 255.255.255.255, ФФ-ФФ-ФФ-ФФ-ФФ-ФФ: и посылает DISCOVER сообщение. Эй! Есть там DHCP-сервера?)
-
Необязательный шаг:[ретранслятор DHCP Agent] передает [DHCP-сервер], который может находиться в другой подсети. Чтобы упростить, мы не будем вдаваться в детали коммуникаций между [агент ретрансляции DHCP] и [DHCP-сервер]. Обратите внимание, что [клиент DHCP] не нужно замечать никакой разницы между a [DHCP-сервер] или [агент ретрансляции DHCP]. (Навскидку, я не помню, возможно ли это даже для [DHCP Client] чтобы сделать такое различие.)
-
[DHCP-сервер или агент ретрансляции] в одной подсети, ответ от IP-адрес 192.0.2.1 МАК-48 адрес 33-33-33-44-44-44, чтобы 0.0.0.0 МАК-48 адрес 11-11-11-22-22-22: предложение 192.0.2.140. (Что означает это предложение, что [сервер или агент ретрансляции] может пусть клиент резерва 192.0.2.140 при желании.)
-
Если несколько [клиенты DHCP] общаться в то же время, это нормально, даже если они могут совместно использовать IP-адрес, как 0.0.0.0, потому что отдельные Mac-48 адреса могут быть использованы для отслеживания отдельных разговоров.
-
[клиент DHCP] игнорирует что предлагал 192.0.2.140 адрес, потому что [Client] предпочтет адрес 192.0.2.135, что клиент вчера. Таким образом, клиенту разрешено полностью игнорировать адрес, который было предоставлено предложение, и просто запрос, что он хочет. (Это будет продемонстрировано в следующем сообщении.)
-
Это представляет собой" кредитное плечо", которое имеет клиент. Это не абсолютная власть, но может быть влиятельным, если [DHCP-сервер] просто необходимо сотрудничать.
-
(В реальном мире это может быть несколько распространено для ноутбуков, которые выходят из спящего режима?)
-
[DCHP Client] до [DHCP-сервер или агент ретрансляции], в той же подсети, от 0.0.0.0 MAC-48 11-11-11-22-22-22, и отправляет на 192.0.2.1 адрес 33-33-33-44-44-44:запрос для желательно 192.0.2.135
-
В этот момент клиент отправил свой запрос и надеется получить подтверждение.
-
[DHCP-сервер] понимает, что 192.0.2.135 больше не доступен.
-
[DHCP Сервер или агент ретрансляции], от 192.0.2.1 адрес 33-33-33-44-44-44-44, до 0.0.0.0 MAC-48 11-11-11-22-22-22:предложение 192.0.2.140
-
[клиент DHCP] разочаровывается, что предложение не соответствует запросу. Клиент, разочарованный тем, что он не получил желаемого предложения, возвращается к тому, чтобы попробовать что-то, что, скорее всего, будет принято этим несколько несговорчивым сервером.
-
[клиент DHCP], от 0.0.0.0 MAC-48 11-11-11-22-22-22, до 192.0.2.1 адрес 33-33-44-44-44,запрос 192.0.2.140
-
[DHCP-сервер или агент ретрансляции] решает сотрудничать. Он делает две вещи:
-
[DHCP-сервер] принимает к сведению аренду, так что он не будет раздавать тот же адрес снова.
-
Адрес теперь официально недоступен для кого-либо еще. Предположительно клиент будет доволен этим адрес, потому что его просили. Клиенту не нужно уточнять дальнейшее соглашение
-
[DHCP-сервер или агент ретрансляции], с 192.0.2.1 MAC-48 33-33-33-44-44-44, до MAC-48 11-11-11-22-22, отмечает, что решил подтвердить (и, тем самым, утвердить)192.0.2.140 запрос.
DHCP-клиент может начать использовать предложенный адрес только после этого клиент получает подтвердить. (На самом деле, DHCP-серверу разрешено предлагать адрес нескольким компьютерам, и это не должно вызывать конфликтов, поскольку эти адреса должны оставаться неиспользуемыми до тех пор, пока не будет предоставлен фактический ACKNOWLDGE.) Таким образом, в этом смысле DHCP-клиент не получает абсолютного разрешения, пока не получит ответ подтверждения, но он все равно может иметь некоторую влиятельную силу, решая, что он хочет запросить.
если сервер не хочет сотрудничать с просьбой, все это не признаете. Это может быть вежливым выбором, чтобы предложить что-то еще, или может просто игнорировать неподходящий запрос, все без какого-либо риска авторизации использования нежелательного IP-адреса. Когда сервер DHCP получает запрос, сервер DHCP может решить посмотреть запрашивающий адрес MAC-48 и использовать ту информацию, решая, что это хочет предложить. Вот как сервер может эффективно ограничить предлагаемый адрес только использовать то, что показано в резервировании DHCP.
Итак, да, запрос может запросить любой конкретный IP-адрес. Если DHCP-клиент не знает, какой IP-адрес может быть безопасным для запроса, DHCP-клиент может просмотреть последнее предложение или отправить пакет обнаружения и искать новое предложение.
наконец,
Мне любопытно узнать, можно ли это автоматизировать с помощью запроса от самого raspberry pi.
если используется Unix, проверьте / etc / dhclient.файл conf. Я знаю, что такой файл можно использовать, чтобы указать, какие параметры DHCP используются. (Примеры наиболее часто встречающихся "параметры DHCP" являются подсети размер ("маска подсети"), роутера адреса ("шлюз по умолчанию"), а другая информация может также использоваться DHCP-сервер, и используется (или учитывается) клиента DHCP. Я подозреваю, что файл может быть там, где вы можете указать желаемый адрес. Похоже, нужная строка может быть:"send dhcp-requested-address 192.0.2.135;
" (см.: ISC dhclient.conf man страница и ISC man страница для dhcp-options и вопрос с ответом: как запросить определенный IP-адрес от DHCP-сервера?)