私の会社はイーサネットデバイスを製造しています。これらのデバイスのI/Oはほとんどありません。キーボードなし、ビデオ出力なし。顧客がデバイスを入手したら、ネットワークに合わせて構成する必要があります。彼のネットワーク上の既存のデバイスと競合しないIPアドレスを選択したいのですが、彼のネットワークは何でもかまいません。
一部の顧客は192.168.x.xネットワークを持っています。その他には10.x.x.xネットワークがあります。
ほとんどのネットワーク機器(特にルーター)には192.168.x.1が付属しています。ただし、これはルーターではないため、競合する可能性が高くなるため、デフォルトでは低いIPアドレスに設定しません。
製品に同梱するのに適したIPアドレスは何ですか?セミプライベート/未使用のクラスCネットワークはありますか?
DHCPサーバーによって割り当てられますか?そうでない場合は、192.168.0.250を使用することをお勧めします。しかし、DHCPは間違いなく好ましい
固定アドレスは避けてください。他の種類のデバイス(ルーターなど)で一般的に見られるアドレスを回避しようとしても、自分自身に問いかける必要があります。ユーザーがこのデバイスを2つ以上持っている場合はどうなるでしょうか。
多くの人が述べたように、DHCPを使用してデバイスを自動的に構成しようとする必要があります。このようにして、ネットワーク管理者はDHCPサーバーから中央の方法でデバイスのアドレスを簡単に制御できます。
DHCPからの構成に失敗した場合、デバイスはリンクローカルアドレスを169.254/16の範囲で構成する必要があります。準拠スタックと同じリンクで接続されたホストで、切断されていない構成は、デフォルトのリンクローカルアドレスを使用してデバイスに接続し、目的のアドレスに構成できます。
RFC 3927は、デバイスがリンクローカルアドレスを構成する方法を詳細に説明しています。このRFCの要約は次のとおりです。
広域IPネットワーキングに参加するには、ユーザーが手動で、または動的ホスト構成プロトコル(DHCP)サーバーなどのネットワーク上のソースから自動的に、ホストのインターフェイスにIPアドレスを構成する必要があります。残念ながら、そのようなアドレス構成情報は常に利用できるとは限りません。したがって、アドレス構成が利用できない場合でも、ホストがIPネットワーキング機能の有用なサブセットに依存できることが有益です。このドキュメントでは、ホストが、同じ物理(または論理)リンクに接続された他のデバイスとの通信に有効な169.254/16プレフィックス内のIPv4アドレスでインターフェイスを自動的に構成する方法について説明します。
解決策はあなたの問題にぴったりです。
つまり、RFCで説明されている実際の実装では、デバイスのMACアドレスをシードとして使用してPRNを選択します。実際に、私が見た多くのデバイスは、MACアドレスの最後の2オクテットを使用しています。 169.254.xyの最後の2つのオクテットとして、および衝突の場合は、PRNGから次の番号を取得します。
PS:10時間で、以前の8つの回答で、リンクローカルアドレスについて誰も言及しなかったことに、私は実際に驚いています。残念ながら、この質問は古く、受け入れられた回答があるので、この回答はほとんどの人が見逃す可能性があります。
実際には、発見の目的のために特別に設計されたプロトコルがあります。 1つの例は Link Layer Discovery Protocol(LLDP) です。信頼できるソリューションが本当に必要な場合は、おそらくこのようなものを検討する必要があります。
静的IPを選択するだけでの1つの問題は、選択したIPがどれであっても、それに接続しようとするコンピューターのルーティング構成がすべてのコンピューターで正しくセットアップされる可能性が低いことです。
多くのネットワークにサーバーがなく、固定IPアドレスを使用しているという事実がなければ、DHCPとDNSが良い解決策になるかもしれません。これらの人々がデバイスを使用できないようにロックしたくない場合は、少なくとも他のシステムにフォールバックする必要があります。
ZeroConfは、このような状況に対処するために開発されました。DHCPサーバーもDNSサーバーもありません。実際、それはこの問題を非常にうまく解決します。デバイスはそれ自体にAutoIPアドレスを割り当て、そのサービスをアドバタイズするため、IPアドレスに関係なくそれを見つけることができます。 ZeroConfの問題は、ユーザーがソフトウェアをサポートするために一部のオペレーティングシステム(Windowsなど)にソフトウェアをインストールする必要があり、一部のクライアントオペレーティングシステムではZeroConfライブラリがまったく使用できない場合があることです。独自のソフトウェアを使用してデバイスのIPアドレスを構成する他の独自の検出メカニズムについても同様です。
私の好みは、既知のDNS名を持つDHCPをデフォルトにすることです(同じネットワーク上で同時に1つのデバイスのみが起動する限り)が、サーバーが利用できない場合は、次のいずれかにフォールバックします。
おそらく比較的使用されていない適切なIPアドレスを探しているだけだと思いますが、これらを実装するための工数を節約できるかどうか検討する価値のある代替手段です。
パネルまたはシリアルポートを介して接続する前に、デバイスに直接IP構成を設定することを常に好みました。しかし、最近の傾向はネットワークポートのみであるように思われるため、DHCPをデフォルトに設定してから、169.254.xxリンクローカルアドレッシングにフォールバックし、おそらくマルチキャストサービスディスカバリ(ZeroConf/Bonjour)を使用するのが最善の方法です。あなたはそれに新しいものを与えるために新しいウィジェットの現在のアドレスを見つけることができます。また、MACアドレスがデバイスの外側の読み取り可能なラベルに記載されていることを確認してください。
数年前、デフォルトのIPアドレスまたはdhcpクライアントがないデバイスを見つけました。代わりに、arpとpingを使用してIPアドレスを設定します。同様のオプションを備えたEpsonプリンター用の オンラインドキュメント があります。この特定のデバイスには、arpコマンドとpingコマンドを送信するWindowsソフトウェアも付属しています。
1つ目は、192.168.x.x/24のバリエーションを取得するように設定することです。 192.168.1.100と言います。
次に、ユーザーが次のことができるように、非常に明確で詳細なドキュメントを提供します。
その人が別のネットワークアドレスを持っている場合、一時的にPCのIPをそのネットワーク上のアドレス(192.168.100.101など)に変更できます。
その後、手動でアドレスを設定するかDHCPを使用するように求めるWebインターフェイスに入ることができるはずです。必要に応じて、ユーザーはネットワークケーブルをPCからデバイスに直接接続できます。
これは、それを行うための1つの安価な方法です。ほとんどのルーターはこのようにしていますが、192.168.0.1または1.1を使用しています。より高価な方法は、最初にDHCPを使用して、ディスカバリユーティリティを作成または購入することです。
別のプライベート範囲は172.16.0.0マスク255.240.0.0です
この範囲は、172.16.x.xから172.31.x.xまでのすべてのIPで構成され、基本的に16のクラスBサブネットになります。
私は使うだろう 192.168.x.y
ここで、x
とy
は、yの0、255、1を除いた乱数です。競合を避けたいので、他の人が同じアドレスを選択するため、「適切な」デフォルトアドレスを選択しても意味がありません。
彼らはこの質問からそれを得るかもしれません。