2017-11-30 45 views
0

私は、ネイティブVLANを介して発信パケットの一部のクライアントMACにinsert vlanタグを使用しています。私はnh_hooks IN、OUT、Forwardを試しましたが、成功しませんでした。送信パケットにVLANタグを挿入する方法

私が望むのは、クライアントからネイティブVLANへのパケットにタグを追加して、同じVLAN経由で送信することですか、タグ付きVLANインターフェイスにMACベースのネイティブVLANパケットを転送できますか?

netlinkコードまたはカーネルレベルのコードではどのような提案がありますか?それとも、MACに基づくebtable経由で行うことが可能ですか?

+0

スタックオーバーフローは、プログラミングおよび開発の質問のサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[Super User](http://superuser.com/)や[Unix&Linux Stack Exchange](http://unix.stackexchange.com/)の方が良いかもしれません。 – jww

答えて

0

LinuxでのVLANタグ付けは、サブインターフェイスを使用して実行されます。 ip link add link eth0 name eth0.8 type vlan id 8はタグ付きVID 8をeth0に追加し、eth0.8サブインターフェイスを作成します。

ネイティブVLANはトランク/ポートでタグ付けされていないため、VLAN IDはトランクエンドポイント(スイッチ)が転送時にフレームにタグを付けるかどうか、およびその方法によって異なります。 VLANトランクの

、タグにおけるVIDはフレームで実行されている VLANである。

+0

実際に私がしたいことは、クライアントパケットの1つがeth0とのブリッジインターフェイスに来ているということです。私たちはそれをbr-wanと呼びます。ブリッジクライアントであるbr-wanからそのクライアントのパケットをbr-vlan_8に転送しますeth0.8。それは可能ですか?私はその特定のクライアントにタグを付けるが、そのパケットはeth0のブリッジインターフェイスに来るからだ。私のVLANインターフェイスはすでに作成されています。 – Raheel

+0

これは可能ですが、おそらくあなたは適切なサブインターフェイスを作成/使用する必要があります。正確に何が必要かに応じて、タギングに2つのスイッチポートを使用する方が簡単です(ポート1はVLAN 8のタグなし、ポート2はタグ付き)。 – Zac67

0

PC1 --- [SW1] ---- [SW2] ----- [SW3 ] ---- PC3

[sw2] ---> PC2。 [sw2もPC2に接続します。

SW2はVLANをサポートしない非IEEE 802.1qスイッチであると仮定します。 SW1、SW3はサポートします。すべてのPCはVLAN 10にあります。

トランクポート上のSW1/SW3がVLAN 10パケットをタグなしパケットとして送信し、PC2が認識できるようにします。 SW1/SW3がフレームを受信すると、そのVLANはVLAN 10に分類されます。 デフォルトネイティブVLANはVLAN 1です。

第1の間違い:ネイティブVLANフレーム/パケットはタグなしで送受信されます。 (4バイトのVLANヘッダーなし)。

タグVLANにタグなしのネイティブVLANを転送するには、SW1ネイティブVLANをVLAN 10に、SW3ネイティブVLANをVLAN 30に設定します.PC3はVLAN 30になります。 VLAN30に変換されます。

したがって、PC1のVLAN 10は、PC3のPC2およびVLAN 30のタグなしフレームと同じです。

関連する問題