次のトポロジがあります。
DeviceX ------
|
DeviceX bridge with two Ethernet cards
(created with bridge-utils) ---------------- router
| |
| |
DeviceY ------ |
|
other devices on the same network
(switches, PCs, WiFi devices)
bridge-utils
私はDeviceXの完全な制御を持っています。これは、DeviceXとDeviceYへのLANアクセスを提供するためにLinuxにブリッジされる2つのイーサネットアダプタを備えたLinux PCです。
DeviceYもLinux PCですが、私は制御できません。私が知っているのは、DeviceXのブリッジを介してルーターから受信するDHCP IPアドレスを使用することだけです。 DeviceYはいつでも他の物理デバイスと交換できるため、MACアドレスを一度だけ表示して維持することはできません。 DeviceXが起動するか、2つのイーサネットのいずれかを検出するたびに、MACアドレスがリセットされていることを確認する必要があります。接続(ケーブルが壊れて再接続するなど)。
常にこれら2つのデバイスのみがDeviceXのブリッジに接続され、他のデバイスは接続されないようにしてください。
ルーターに他の多くのデバイスが接続されている可能性がありますが、常に2つのイーサネットポートの1つに直接接続されているDeviceYのアドレスのみが必要です。
ルータ自体のアドレスも知っていれば、取引の中断ではないでしょう。ルータと両方のデバイスのアドレスのみを持っている限り、事前に既知でフィルタリングできます。 DeviceY.
今質問は次のとおりです。 DeviceXでDeviceYのMACまたはIPアドレスを確実に見つける方法は?
追加情報:DeviceYはLAN内の他のすべてのデバイスと同じLAN上にある必要があるため、DeviceXでbridge-utilsを使用しています。 DeviceXからDeviceYへのカスタムパスは、新しいサブネットを作成し、NATを必要とし、DeviceYが期待どおりに機能しないようにするオプションではありません。 Bridge-utilsは最も簡単なソリューションです。
答え1
ブリッジまたはスイッチは、ブロードキャストドメインの2つのネットワークセグメントを接続し、ユニキャストトラフィックを分離するデバイスです。
この目的のために、ブリッジは、どのポートが特定のMacアドレスに到達するかを記録する転送テーブルを維持します。新しいイーサネット送信元アドレスで新しいパケットが受信されると、テーブルがいっぱいになり、しばらく表示されていないMACアドレスが削除されます。
ブリッジ/スイッチが特定のMACアドレスのフレームを受信すると、そのMACアドレスが転送テーブルにある場合にのみそのポートにフレームを送信し、そうでない場合はすべてのポートにフレームを送信します。
Linuxの実装も例外ではありません。
次のコマンドを使用して転送テーブルを照会できます。
brctl showmacs <bridge-name>
そして/sys/class/net/<bridge-name>/brforward
(バイナリ)形式で提供することもできます。
次のコマンドを使用して、ポート番号とインターフェイス名間のマッピングを取得できます。
grep . /sys/class/net/vmbr0/brif/*/port_no
iproute2
または、新しいバージョンの新しいLinuxネットワークユーティリティスイートがインストールされているシステムを使用している場合は、次のコマンドを使用してインターフェイス名を含む転送テーブルをインポートできます。
bridge fdb show br <bridge-name>
または、特定のインターフェイスまたはブリッジを介して接続できるすべてのMACアドレスを確認してください。例eth0
:
bridge fdb show br <bridge-name> brport <interface-name>
答え2
このコマンドはarp
すべてのIPとそのMACを表示し、ネットワークには2台のコンピュータとルータしかないため、あなたまたはルータのIPではなくIPを持ち、ネットワークのIPを持つコンピュータを簡単に識別できます。