送信されたトラフィックを拒否するネットワークインターフェイスがあります(ターゲット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を使用)