私が働くスタートアップでは、画像キャプチャと分析のためのデバイスを設定しています。設定のためにデバイスにモニターを接続したくない場合は、Ubuntu Linuxにカメラを内蔵したボックスです。
一部の人々はこのソリューションを提案しました。ネットワークケーブルを介してデバイスをラップトップに直接接続するときは、ルーターやモデムと同様に、よく知られているIPにアクセスして設定Webページを取得します。
これは解決策のように聞こえますが、実際にはデバイスがルーターではなく、私が見ると、これはまったく異なるコンテキストです。デバイスはアドレスをラップトップに委任しません(ルーターネットワークの一部にし、ルーターではないため、よく知られているアドレスを持つことができます)。
だから私は今同様の解決策を探していますルーター構成の経験ただし、これはルータではなく、よく知られているアドレスからアクセスできる必要があるデバイス用です。この目的のためにZeroconf / APIPAについて調査しましたが、Zeroconf RFC 3927では、IPアドレスを「疑似乱数ジェネレータを使用して169.254.1.0から169.254.254.255の範囲に均等に分散」して生成する必要があります。 。
デバイスにどのIPがあるかを知る方法がある場合は、よく知られているアドレスでなくても、ランダムIPソリューションがまだ機能できると思います。
さらに、デバイスはNetworkManagerを使用して確立された多くのインターフェイスを介して接続を処理する必要があります。
したがって、問題の状況を要約すると、次のようになります。
- デバイスはローカルネットワークを介して設定する必要があります。
- デバイスの電源が入っており、ネットワーク管理者を使用して複数のインターフェイスを介した接続を処理します。あるインターフェイスの接続が切断されると、別のインターフェイスが選択されます。
- 私たちは、eth0エイリアスを使用し、eth0をネットワーク管理者(他のインターフェイスのコンテキストで)によって処理され、管理されていない(ネットワークマネージャによって)エイリアスを介して固定IPアクセスを持つことを検討しています。これが可能かどうかはわかりません。
- これはデバイス検索に関するすべてです。デバイスにアクセスするにはnmapを使用することもお勧めしますが、2つの欠点があります。大規模なネットワークでは、スキャンが遅く、単純なWebアクセスではなくnmapを使用するクライアントを構築して使用する必要があります。発見する。
- よく知られているIPで簡単に接続できない場合は、ネットワーク上のプリンタや同様のデバイスのようにデバイスを検索できるため、任意のIPを使用することも解決策です。
- ソリューションは、ネットワークケーブルを介してノートブックに直接接続されたデバイスを構成し、デバイスの構成Webページからそのデバイスにアクセスするソリューションであり、デバイスが接続されているローカルネットワークにノートブックを接続するソリューションである可能性があるという仮説を立てることができます。場所。また、接続してネットワーク上でそれらを発見するデバイスにアクセスしたり、代替、エキゾチック、固定アドレスを介してアクセスすることもできます。ローカルネットワークルーターにアクセスするか、nmap / arpを使用して検索することはオプションではありません。
この問題を解決するためにどの質問を研究する必要がありますか?人々はこれに共通のアプローチを持っていますか?
私の経験によれば、デバイスを構成した記憶がありますが、そのどれも問題を解決できませんでした。
- ルーター:よく知られているアドレスから簡単にアクセスできる設定Webページを提供しますが、ルーター、ゲートウェイ、および自分のアドレスに委任します。
- Cubox-i:私はこれらのデバイスの1つを持っており、ネットワーク上でnmapを使ってそれを検索してSSHにアクセスする必要があります。
- プリンター:私はプリンターを所有していないため、プリンターのデバイス検索/構成がどのように機能するかわかりませんが、以前はネットワークで使用したことがないため、通常はWindowsコンピューターのデバイス設定に記載されています。まだ触れていない分野の「Avahi」、「UPnP」、「Zeroconf」などの名前を見てください。おそらくこれがこの状況の正しい例です。
私はArch Linuxで実行し、他のデバイス(例えば、私のAndroidやWindowsノートブック)からそのIPを検索するための簡単なツールがあるかどうかを知りたいです。放送も考慮しましたが、放送がブロックされたり信頼できないため、すべてのLANでこれが大丈夫かどうかはわかりません(不明)。
答え1
最善の方法はavahi
マルチキャストDNSを実装することです(AppleではこれをBonjourと呼びます)。
Network Managerを無効にします/etc/network/interfaces
。このinterfaces
ファイルは、ipv4ll
avahi-autoipdを使用してIPv4リンク層アドレス(169.254.0.0/16シリーズ)でインターフェイスを設定する方法をサポートします。
次に、avahiでサービスを設定して、ホストがBonjourを通じて自分自身を知らせ、mDNS名解決を/etc/nsswitch.conf
。
システムの残りの部分がmDNS名を解決するように設定されている場合は、魔法のように動作します。
答え2
ネットワーク上のデバイスのIPを見つける方法
Archlinuxで実行していて、他のデバイス(AndroidやWindowsノートブックなど)がそのIPを検索できる簡単なツールがある場合は知りたいです。
残念ながら、まだこれを行うための良い方法はありません。
デバイスにavahi-daemonをインストールし、WindowsにBonjourをインストールできます。通常、この独自のサードパーティ製ネットワーキングソフトウェアの以前のバージョンをインストールすることをお勧めします。 Appleのアップデートが含まれていますか? Apple Updateはインストールが簡単ですが、以前のバージョン2.02のセキュリティ修正を提供しますか?ここでは何も起こらないと確信しています。
(また、説明的なホスト名を設定してください。MDNSを使用すると、ホスト名が一意であることを保証する必要はありません。実際、MDNS仕様では、MACなどのランダムな数字や大きなIDを追加してこれを「すべきではない」と言います。ただし、これはユーザーのアクセスが理由なく遅延していると見なされますが、プロトコルはMDNSホスト名にシーケンス番号(ダッシュを含む)を追加して自動的に競合を解決します。
デバイスに Samba をインストールし、TCP 経由の NetBIOS 経由でレガシー IPv4 検索を使用できます。一部の企業のDHCPサーバーでは、NetBIOSがデフォルトで無効になることがあります。 http://searchenterprisedesktop.techtarget.com/blog/Windows-Enterprise-Desktop/NetBIOS-Tweak-May-Be-Needed-for-Win10-NAS-Access
(NMBは名前の競合を解決する傾向がありません。ホスト名を自動的に生成する人は、この問題を回避するためにMACアドレスの最後の数文字を追加する傾向があります。)
あなたが理想的に望むのはLLMNRです、これはWindowsで使用される最新のプロトコルです。
systemd-resolved
これはサポートされていますが、広く使用されていません。私はこれが独立したオープンソースの実装を見つけるのを助けるために非常にシンプルで文書化された標準であると信じています。広く使用されていないようですが、商業的に使用している人がいる場合は、使用してバグを報告してみてはいかがでしょうか:).
WindowsだけでなくLinuxクライアントもサポートしたい場合は、MDNSとLLMNRの両方をサポートできます。
ネットワークケーブルを介してノートブックに直接接続するデバイスの構成
ソリューションは、ネットワークケーブルを介してノートブックに直接接続されたデバイスを構成し、デバイスの構成Webページからそのデバイスにアクセスするソリューションであり、デバイスが接続されているローカルネットワークにノートブックを接続するソリューションである可能性があるという仮説を立てることができます。場所。また、接続してネットワーク上でそれらを発見するデバイスにアクセスしたり、代替、エキゾチック、固定アドレスを介してアクセスすることもできます。
この問題を解決するためにどの質問を研究する必要がありますか?人々はこれに共通のアプローチを持っていますか?
この問題に対する2番目に一般的な解決策は、上記のように、トリックが欠けているだけです。
たとえば、この技術は、デバイスが固定アドレス(現在は不明)で構成されている場合に便利です。
解決策は「復元」ボタンを提供することです(おそらくつまみがあるので、押すにはペーパークリップを展開する必要があります)。特別な静的IPアドレスを使用して回復モードでデバイスを起動できます。その後、既知のアドレスに接続し(直接ケーブルを使用し、ノートブックのアドレスが同じサブネットになるように手動で設定)、デバイスを再設定できます。