無差別モードでない限り、ネットワークインタフェースはフレームを受信しません。

無差別モードでない限り、ネットワークインタフェースはフレームを受信しません。

送信されたトラフィックを拒否するネットワークインターフェイスがあります(ターゲットMACはインターフェイスに設定されているハードウェアアドレスと同じです)。

ドライバー情報です。

# ethtool -i eth0
driver: ixgbe
version: 4.0.1-k
firmware-version: 0x80000534
expansion-rom-version:
bus-info: 0000:04:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

ifconfig eth0 promiscインターフェイスに入るとすぐにフレームの受信が開始されます。 tcpdump は、ターゲット MAC が実際にインターフェイスの設定された MAC アドレスと一致することを示します。

# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:01:02:03:04:05
          UP BROADCAST RUNNING PROMISC SLAVE MULTICAST  MTU:1508  Metric:1
          RX packets:600363 errors:0 dropped:0 overruns:0 frame:0
          TX packets:230866 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:904700278 (862.7 MiB)  TX bytes:16161664 (15.4 MiB)

インターフェイスが乱雑でなければならないのはなぜですか?

答え1

答えを見つけるためにixgbeドライバのソースコードを読みました。

私が知る限り、このドライバはハードウェアVLAnフィルタリングを利用します(一部のサポートチケットで提案されている理由にはセキュリティとパフォーマンスが含まれます)。

この動作は IXGBE_VLNCTRL_VFE VLAN 制御フラグによって制御されます。

これらのフィルタをカーネルに正常に渡すための2つのオプションは次のとおりです。

  • インターフェイスで無差別モードを有効にする
  • インターフェイスにVLANを追加する(例:vconfigを使用)

関連情報