PXEクライアントは、どのネットワーク上にあるかをどのようにして知るのですか?


9

PXEブートでは、最初のステップの1つはDHCP経由でIPアドレスを取得することです。

DHCPを使用するには、ネットワークのブロードキャストアドレスを知っている必要があります。

このネットワークはどのようにしてPXEクライアント用に最初に構成されますか?


ローカルネットワークでPXEクライアントの固定IPを割り当てます。
DavidPostill

5
@DavidPostill:これは、Daniel Bの回答と矛盾します。私の理解では、docsです。
Mathieu K.

1
DHCPクライアントは、DHCPブロードキャスト要求を開始するときに、「ソース」として0.0.0.0を使用して255.255.255.255に送信します。
ivanivan 2018

回答:


29

アドレスがない場合、IPレイヤーでどのように通信しますか?とにかく、そうではありません。代わりに、レイヤー2を使用して通信します。

イーサネットネットワークのブロードキャストアドレスはFF:FF:FF:FF:FF:FFです。IP層には、255.255.255.255があります。それがDHCPDISCOVERパケットに存在するものです。このようにして、生のイーサネットソケットの代わりに通常のUDPリスンソケットを使用できます。


6
" イーサネットネットワークのブロードキャストアドレスはFF:FF:FF:FF:FF:FFです。 "これは、Wi-Fi、トークンリング、FDDIなどの48ビットMACアドレスを使用するすべてのIEEE LANプロトコルに適用されます
ロンモーピン2018

it communicates using layer 2これは正しくありません。レイヤー2はサーバーIPスタックのネットワークレベルに到達しません。ブロードキャストレイヤー2は、イーサネットフレームを1つの特定のイーサネット衝突ドメイン上のすべてのリスナーにのみ送信します。IPブロードキャストアドレスは、サーバーIPスタックの扉を開くアドレスです。
Pat

もちろん。しかし、私が書いたように、それは「実際には」IP通信ではありません。それはできません。代わりに、明確に定義された動作になる送信元アドレスと宛先アドレスを挿入することにより、IPパケット処理を利用します。実際のアドレス指定は純粋にレイヤー2で行われます
ダニエルB

あなたは間違っている。ブロードキャストIPアドレスは、間違いなくIP通信です。そのブロードキャストアドレスが存在しない場合、サーバーのIPレイヤーはパケットを認識しません。ブロードキャストIPアドレスの唯一の特徴は、ルーティングできないことです。
Pat

1
私はパットが少し正しいと少し間違っていると思います...実際にはIPでのブロードキャストはレイヤ3で動作します...しかしDHCPはL2 / ARP / MACの最初のすべてのステップを処理します...そして最後のステップ(DHCPサーブされたIPはL3 /ユニキャストで受け入れられます)...初めはIP / L3スタックがないため、この方法である必要があります... DHCP以外のIPブロードキャストを行う他のサービスには、この問題はありません(すでにL3 / L4-> ...経由で通信できるようにIPアドレスを持っている)
ZEE

30

DHCPを使用するには、ネットワークのブロードキャストアドレスを知っている必要があります。

いいえ。ローカルブロードキャストアドレス255.255.255.255(IPv4の場合)またはマルチキャストグループff02 :: 1:2(IPv6の場合)のみが必要です。DHCPの全体のポイントは、それが必要としないことである任意のクライアント上で事前設定を。


これは正しくありません。ARPはブロードキャストIPアドレスに対して機能しないため、MACブロードキャストアドレス(レイヤー2)も必要です。
Pat

IPからMACブロードキャストアドレスへのマッピングは、プロトコルによって定義されているため、常に既知であると想定されているため、手動で構成する必要はありません。
user1686

あなたは間違っている。起動中のDHCPクライアントでは、DHCPDISCOVERYパケットはレベル2とレベル3の両方のブロードキャストアドレスを定義する必要があります。レベル3のブロードキャストを定義するだけでなく、他のプロトコルがブロードキャストIP宛先アドレスのみを持つターゲットMACアドレスを検出すると考える
Pat

3
  1. 起動ファームウェアはインストールされたNICを検出します
  2. 起動ファームウェアは、PXE UNDIドライバー(HWTypeおよびHwAddrLenを返すUNDI GET INFORMATION)に要求する各NICブロードキャストMACアドレスを検出します。つまり、HwType = ETHER_TYPE HwAddrLen = 6 =>ブロードキャストMACアドレス= FF:FF:FF:FF:FF:FF。
  3. ブートファームウェアは、DHCP DORAシーケンス(DHCPDISCOVERY)を開始し、以下を使用して、BIOS / UEFI対応NICでPXEクライアント(DHCPオプション60)として自身を通知します。
    1. OSIレベル2(データリンク層)で対応する以前に検出されたMACブロードキャストアドレス
    2. OSIレベル3(ネットワーク層)のBIOS / UEFI対応IPv4 / IPv6ブロードキャストアドレス(255.255.255.255/ff02::1:2)
  4. 完全なDHCP-PXEオファーが受信された場合、ブートファームウェアはDHCP DORAシーケンスを終了します。

    1. クライアントIP /マスクアドレス
    2. TFTPサーバーのIPアドレス
    3. NBP(ネットワークブートプログラム)

    注:複数の完全なオファーを受け取った場合、現在の標準では、クライアントがそれを選択する方法を明確に定義していません。

  5. 起動ファームウェアは、NIC IP、TFTP転送を設定し、メモリにロードして、NBPを実行します。

レイヤー2 MACブロードキャストアドレスにより、クライアントのNICイーサネット衝突ドメイン内のすべてのリスナーにDHCPイーサネットフレームを配信できます。レイヤ3 IPブロードキャストアドレスは、DHCPサーバーIPスタックの扉を開くアドレスです。L2 / L3の両方のブロードキャストアドレスが必要です

PXEクライアントとDHCPサーバーが異なるサブネットワークに配置されている場合、ブロードキャストDHCPトラフィックはルーターで停止され、DHCPリレーエージェント(Cisco WorldのIPヘルパー)がブロードキャストDHCPDISCOVERYパケットを取得できるようにし、ユニキャストに変換する必要があります。 DHCPDISCOVERYを作成し、定義されたターゲットDHCPサーバーのIPアドレスにルーティングします。


正解です。
Tim_Stewart
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.