正しくタグ付けされたVLANを持つマルチキャストトラフィックがタグ付きインターフェイスに到達しないのはなぜですか?

正しくタグ付けされたVLANを持つマルチキャストトラフィックがタグ付きインターフェイスに到達しないのはなぜですか?

私はクライアントとサーバー間でマルチキャストトラフィックを送信するアプリケーションを開発しています。このトラフィックはマルチキャストを介して送信されます。クライアントとサーバーの両方がVLANインターフェイスを使用し、互いに正しく通信するには、特定のVLANで通信する必要があります。クライアントとサーバーは同じサブネット上にあり(したがってネットワークホップはありません)、そのIPは同じサブネット上にあります(したがって進む唯一のルーティングは正しいVLANインターフェイスからのマルチキャストパスです)。

を使用すると、tcpdump両方のホストでタグ付けされていないインターフェイスからのトラフィックを表示できますが、タグ付けされたインターフェイスを見ると、ローカルコンピュータからのトラフィックのみを表示できます。タグ付けされていないインターフェイスに入ってくるトラフィックにも正しいVLANタグがあることを確認しました。

これを説明するために、次のようにしましょう。

VLAN: 10
Multicast: 239.1.1.1

私が見るものは:

[root@client]# tcpdump -ei ens192 host 239.1.1.1
.... vlan 10 ... client.[port] > 239.1.1.1.[port]
.... vlan 10 ... server.[port] > 239.1.1.1.[port]
.... vlan 10 ... client.[port] > 239.1.1.1.[port]
.... vlan 10 ... server.[port] > 239.1.1.1.[port]

相手も同じ考えだった。

[root@server]# tcpdump -ei ens192 host 239.1.1.1
.... vlan 10 ... server.[port] > 239.1.1.1.[port]
.... vlan 10 ... client.[port] > 239.1.1.1.[port]
.... vlan 10 ... server.[port] > 239.1.1.1.[port]
.... vlan 10 ... client.[port] > 239.1.1.1.[port]

tcpdumpただし、インターフェイスを表示すると次のようになります。

[root@client]# tcpdump -ei ens192.10 host 239.1.1.1
.... client.[port] > 239.1.1.1.[port]
.... client.[port] > 239.1.1.1.[port]

サーバーでも同じ考えです。

私はそれを試しましたが、sysctl net.ipv4.conf.all.rp_filter=0何も変わりませんでした。

私もstrace -fe trace=network -p [PID of software] 2>&1 | grep 239.1.1.1クライアントとサーバーで実行してsend_toいて、電話をかけただけでメッセージを受信できませんでした。

また、他のすべてのVLANインターフェイスも購読されているにもかかわらず購読されているというip maddr事実も確認しましたが、少し疑わしいです。トラフィックが別のVLANインターフェイスに移動しないことを確認しました。内部/ソースコードにアクセスできないため、このソフトウェアが購読をどのように実行するのかわからないことを認識してください。ens192.10239.1.1.1tcpdump

オペレーティングシステムはRHEL 7.5です。

正しくタグ付けされたVLANトラフィックがそのVLANインターフェイスに表示されない理由はありますか?

編集:また、このVLANインターフェイスで正常に動作する他のマルチキャストトラフィックがあり、問題はこのソフトウェアに限定されているようです。

ベストアンサー1

私の考えでは、Linuxではそのようなtcpdumpサブインターフェースを使用できないようです。ens192.10

特定(または全体)VLANトラフィックをダンプする一般的な方法は次のとおりです。

tcpdump -i ens192 -e vlan 10 and host 239.1.1.1 # just vlan tag 10
tcpdump -i ens192 -e vlan and host 239.1.1.1 # all tagged vlans

あるいは、tcpdumpバージョンがその構文をサポートしていない場合は、vlan Xrawヘッダーを次のように置き換えることもできます。

tcpdump -i ens192 -e 'ether[12:2] = 0x8100 and ether[15] = 10' and host 239.1.1.1

おすすめ記事