
私は、リモート スイッチ管理を行うアプリケーションを Ubuntu12.04 で実行しています。管理対象スイッチのネットワークに接続されている NIC は 1 つだけで、eth0 は IPv4 10.0.0.1/24 に設定されています。この IPv4 アドレスは、Ubuntu マシンに割り当てられている唯一の「グローバル」ルーティング可能なアドレスであるため、この Ubuntu マシンが使用できる唯一のアドレスです (技術的な問題ではなく、ネットワーク管理上の問題によるものです...)
NetConf フレームを送信するときに、スイッチ管理トラフィック (SSH 経由の NetConf、UDP ポート 830 を使用) に VLAN ID 444 の 802.1q VLAN タグを含める必要があり、応答もこのタグ付きで受信されます。その他のすべてのトラフィック (http、ftp、dhcp、snmp など) は、VLAN タグなしで eth0 を使用します。
eth0 で VLAN インターフェイス eth0.444 を使用しようとしましたが、送信されたトラフィックに VLAN タグが含まれていないようです。
ebtables/iptables を使用して、特定の UDP ポート トラフィックに特定の VLAN タグを追加できますか (また、その方法は)? ebtables/iptables ソリューションは受信パスでも機能しますか?
ありがとう!
デビッド
答え1
iptables
パケットに VLAN タグを設定することはできませんebtables
。そのために VLAN サブインターフェースが存在します。
そこにはVLAN について説明している Ubunut wiki の記事おそらく確認する必要があるでしょう。要約すると、次の点に注意する必要があります。
802.1q モジュールに がロードされていることを確認します
modprobe 8021q
。でVLANサブインターフェースを作成します
vconfig add eth0 444
。VLAN 444で使用されているサブネットのIPアドレスとサブネットマスクを
eth0.444
サブインターフェースに追加します。ip addr add x.x.x.x/z dev eth0.444
また、サーバーが接続されているスイッチ ポートを、VLAN 444 のタグ付きフレームを受け入れるように構成する必要があります。スイッチのブランドについては言及されていないため、詳細なガイダンスを提供することはできませんが、おそらく、VLAN 444 のタグ付きメンバーとして構成された「トランク」ポートまたは「一般」ポートと、インターフェイスに割り当てられたサブネットによって使用される VLAN のタグなしメンバーのいずれかを探していると思われますeth0
。
注意してtcpdump
くださいVLANタグの表示に問題があるtcpdump
したがって、フレームがタグ付けされていることを確認するためにホスト自体でのみ使用している場合は、必ずしもフレームがタグ付けされていないと想定しないでください。
編集:
通常、VLAN と IP サブネットの間には 1 対 1 の関係があります。スイッチに、現在のeth0
ポートが配置されている VLAN と同じ IP サブネットである VLAN 444 の管理インターフェイスがある場合、それは非常に異例です。
答え2
802.1Q タグは MAC ヘッダーに挿入され、インターフェースに VLAN タグが付いていないとカーネルはそれをデコードしません。そのため、送信パケットを改変できたとしても、VLAN タグ付きの受信トラフィックは無視されたままになります。
必要なのは、先ほどと同じように VLAN タグ付きインターフェイスを作成し、アクセスしようとしているスイッチ IP と同じ範囲内で IP を追加することです。