PiのIPアドレスが常に同じなのはなぜですか?


22

私のルーターはDHCPを使用しており、ラズベリーpiを再フォーマットするたびに、別のmicroSDカードを使用する場合でも、常に同じLAN IPを使用します。IPがどのように割り当てられるのかはよくわかりませんが、デバイスには、ルーターが認識するネットワーク上の一意のIDがあると思いますか?


どうしてそうなった?SEについて質問すると、投票数がプラスになります。そして、それは多くの賛成票です。

回答:


36

Raspberry Piには、MACアドレスと呼ばれる一意のIDがありますが、正確には2つです。各ネットワークアダプターには、それらの1つがあります。したがって、Wi-Fiアダプターには一意のIDが1つあり、イーサネットアダプターにはあります。

これが、Raspberry Piが同じIPを取得する理由です。ルーターにとって、デバイスで何をしているのかは重要ではありません。MACを認識するだけで、以前と同じIPを提供します。

編集:Beegeが指摘したように、DHCPの「D」は動的を表しているため、IPは変更される可能性があります。ただし、デバイスがDHCP経由で以前と同じIPを取得した場合、認識されているMACが原因です。


9
良い説明。同じMACアドレスが常にDHCPサーバーから同じIPを取得するとは限らないことを言及する価値があると思います-それはまだ「動的な」サービスであるため、IPが別のデバイスに取得され、Piが異なる結果になる可能性がありますIP割り当て。
Beege

3
@Beegeああそう、絶対に、ありがとう!恒久的なIPが必要な場合、たとえばサーバーを実行している場合、Piに特定のIPを予約することができます。ただし、これはルーター(またはネットワークでDHCPサービスを提供する他のデバイス)で特に有効にする必要があります
ItsKiddow

2
actually two to be precise-pi3bまたは3b +を想定
Jaromanda X

7
IPが同じであるという事実は、MACのためではありません。MACは、ルーターがアクセスできる識別子です。ルーターは、リースの更新時に同じIPを提供するように構成することも、ランダムに別のIPを割り当てることもできます。ルーターは、前者を行うように(製造元によって)構成されています。これにより、動的IP関連の問題に起因する多くのネットワーク問題が実際に防止されます(IP印刷ポートが思い浮かびます)。同じIPを取得できるのはMACによるものですが、ルーターにDHCPを簡単にセットアップして、さまざまなデバイスの山に同じIPを与えることができます。
ネルソン

1
高品質のDHCP実装は、以前のMACアドレスとIP割り当てをキャッシュします。キャッシュされたMACアドレスを見つけると、同じIP(利用可能な場合)を再度提供する傾向があります。また、空きアドレスが残っていない場合を除き、別のMACアドレスにIPを提供することはできません。これは特定の実装に依存するため...そしてホームルーターの品質はいたるところにあります...動作はルーターモデルによっては必ずしも一貫しているとは限りません。
ティムキャンベル

16

すでに与えられた答えに加えて、追加の背景情報を提供します。

一般に、DHCPプロトコルは、動的な変更を可能な限り減らすために作成されます。それは安定性の側面です。小規模なホームネットワークではそれほど重要ではありませんが、スイッチとルーターを備えた大規模ネットワークでは、最適化された状態になるまでに時間がかかります。スイッチはネイバーを学習する必要があり、ルーターはルートを学習する必要があります。IPアドレスの大幅な変更は、この状態には適していません。

ほとんどの人は、DHCPサーバーがクライアントにIPアドレスを与えるだけだと思う​​かもしれません。しかし、それは真実の半分にすぎません。一般的なDHCPハンドシェイクを次に示します。

(client) DHCPREQUEST for 192.168.10.75 from b8:27:eb:0e:3c:6f (raspi3) via wlan0
(server) DHCPACK on 192.168.10.75 to b8:27:eb:0e:3c:6f (raspi3) via wlan0

ご覧のとおり、クライアントはMACアドレスb8:27:eb:0e:3c:6fで識別され、特定のIPアドレスを要求しています。新しいスタートアップ後も、以前のIPアドレスを知っています。DHCPサーバーはそれを確認するだけです。それがクライアントに与えるものはリースと呼ばれます。クライアントが再度要求することなくIPアドレスを使用できる期間(他の多くの重要なオプションとともに)タイムアウトが含まれています。タイムアウトはセットアップに依存し、主に数時間に設定されます。DHCPサーバーはリースをキャッシュに保存し、同じクライアントがシャットダウンされている場合でも、可能な限りそれを予約します。そのため、再度ブートアップするときに、クライアントがリースを確認するだけです。サーバーにクライアントに提供する他の未使用リースがない場合にのみ、使用済みリースを取得します。ハンドシェイクは次のようになります。

(client) DHCPREQUEST for 192.168.10.75 from b8:27:eb:0e:3c:6f (raspi3) via wlan0
(server) DHCPNAK on 192.168.10.75 to b8:27:eb:0e:3c:6f via wlan0
(client) DHCPDISCOVER from b8:27:eb:0e:3c:6f via wlan0
(server) DHCPOFFER on 192.168.10.99 to b8:27:eb:0e:3c:6f via wlan0
(client) DHCPREQUEST for 192.168.10.99 from b8:27:eb:0e:3c:6f (raspi3) via wlan0
(server) DHCPACK on 192.168.10.99 to b8:27:eb:0e:3c:6f (raspi3) via wlan0

DHCPサーバーが要求を拒否(DHCPNAK)し、新しいIPアドレスを提供することがわかるように、次のステップでクライアントが要求します。この追加のステップは、提供されたIPアドレスを受け入れない可能性をクライアントに与えるために行われます...


4
+1 IMHOこれは正解です。これは、単にDHCPプロトコルが機能する方法です。
ジョス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.