パケットは、tc/netfilter 物理、VLAN、およびブリッジインターフェイスをどのように通過しますか?

パケットは、tc/netfilter 物理、VLAN、およびブリッジインターフェイスをどのように通過しますか?

2 つのネットワーク A と B の間で NAT を実行するルータに次の設定があるとします。

  • eth0 - 物理インターフェイス -いいえIPアドレス
    • eth0.1 - ネットワークAのVLANインターフェイス -いいえIPアドレス
    • eth0.2 - ネットワークBのVLANインターフェイス - ネットワークBのIPアドレス
  • br0 - ブリッジ - ネットワークAのIPアドレス
    • eth0.1を他の(関連していない)インタフェースと組み合わせる

質問

パケットはネットワーク A から到着するため、VLAN ID 1 でタグ付けされます。物理的にeth0によって受信されます。論理的にはeth0.1ですが、br0にすることもできます。

宛先IPがネットワークBにある場合、論理的にはeth0.2にさらに転送されますが、物理的にはeth0を通過する必要があります。

任意の順序でこれらのパケットは、受信/送信qdiscおよびPRE/POSTROUTING iptablesによって処理されますか?

異なる方向(同じインターフェイスを介してネットワークBからAへ)はどうですか?

ネットファイラーパケットフローチャートを参照してください。 Netfiler パケットフロー図

ベストアンサー1

tcpdumpとiptablesでいくつかの実験を行った後、以下を観察しました。

パケットがネットワーク A からネットワーク B に送信されると、tcpdump は以下を表示します。

  1. eth0:VLAN ID 1タグ付きフレーム(4バイト以上)。
  2. eth0.1:タグ付けされていないフレーム
  3. br0: 同じフレーム
  4. eth0.2:NATフレーム

IPテーブル:

  1. br0 in
  2. ネットワークアドレス変換
  3. eth0.2 出力

考えるqdisc は次の順序で処理されます。

  1. eth0エントランス
  2. eth0.1エントランス
  3. br0 入り口
  4. br0 エクスポート
  5. eth0.1 エクスポート
  6. eth0 終了

おすすめ記事