swbridge
タグ付きフレームを.sendingするブリッジインタフェース()がありますvlan_protocol=802.1q
。 WiresharkはARP要求(他のデバイスからのping要求)を正常に表示できますが、にvlan_protocol
変更すると802.1ad
Wiresharkでパケットを表示できなくなります。
次のコマンドを使用してブリッジ VLAN プロトコルを変更しました。
sudo bash -c 'echo "0x88a8" > /sys/class/net/swbridge/bridge/vlan_protocol'
# ip -d -j -p link show swbridge
...
"vlan_filtering": 1,
"vlan_protocol": "802.1ad",
...
# uname -a
Linux 5.15.71 ...
# bridge vlan
port vlan-id
port2 10
swbridge 10
私がしたいのは、受信パケットにデュアルVLANタグを追加することですが、この段階で停止しました。
編集する
この設定は実用的ではないかもしれませんが、これが私が望むものです。クライアントのポート2でQinQパケット(802.1AD)を見たいです。
この設定はGNS3で正常にテストされました。
Cisco デバイス設定:
interface GigabitEthernet1/0/25
switchport access vlan 10
switchport mode access
!
interface GigabitEthernet1/0/26
switchport trunk allowed vlan 10
switchport mode trunk
!
MySwitch VLAN設定(パケットが受信されない理由を説明する前に):
# bridge vlan
port1 11 PVID Egress Untagged
port2 1 PVID Egress Untagged
11
swbridge 1
11
ご覧のとおり、すべてのポートがスレーブであるブリッジがあります。
私はVLAN int(次のコードを使用して)を作成しましたが、最終的にswbridgeがまったく機能しないことを知るまでは機能しませんでしたvlan_protocol
802.1ad
(パケットが通過しませんでした)。
ip link add link port1 name port1.11 type vlan proto 802.1ad id 11
また、必要なモジュールが存在すると思います。
# lsmod
Module Size Used by
8021q 28672 0
...
答え1
Linux ブリッジは、vlan_filtering=1
単一レイヤー VLAN のタグ付け/タグ解除をサポートします。これは、802.1AD(QinQとも呼ばれ、内部に別のスタック802.1Q VLAN層があることを意味します)VLAN対応ブリッジは、そのポートで802.1Qフレーム(アクセスポート)または802.1ADフレーム(トランク)を確認する必要があることを意味します。 QinQのように適切に処理する必要があります。
必要に応じて、追加のスタック(VLAN対応)ブリッジまたはVLANインターフェイスを使用して、この単一ブリッジでカバーされていないすべてのタスクを実行できます。ただし、Ciscoスイッチはすでにレイヤ1 VLANタグ付け(802.1Q VID 10)を追加しているため、この設定にはVLANインターフェイスは必要ありません。
コメントによると、実験は次のとおりです。
client - port1 (IP/ARP) -->
--> access-port - cisco (internal tagging) - trunk-port (802.1q vid 10) -->
--> port1 (access) - swbridge (internal tagging) - port2 (trunk, 802.1ad vid 11 before 802.1q vid 10) -->
--> port2 - client
OPの設定がどこで機能しないのかわかりませんが、次のように設定します。私のスイッチ最初から始めましょう(名前が2つのファイルであるとします)。ポート1そしてポート2OP説明マッチング)は設定を再現するときに機能します。
ブリッジ自体のインターフェイスでは何もできず、そのポートのみを実行できます。キャプチャ完了私のスイッチで行わなければならないポート1またはポート2、開いていない交換橋(無差別モードでキャプチャが機能していても)。
# start over
ip link del dev swbridge
ip addr flush dev port1
ip addr flush dev port2
# all at once: VLAN filtering, 802.1AD and
# no VLAN enabled by default (not even VLAN 1), so no VLAN to delete later
ip link add name swbridge type bridge vlan_filtering 1 vlan_protocol 802.1ad vlan_default_pvid 0
ip link set dev port1 master swbridge up
ip link set dev port2 master swbridge up
bridge vlan add vid 11 dev port1 pvid untagged
bridge vlan add vid 11 dev port2
ip link set dev swbridge up
クライアントから送信されたARPまたはIPパケットポート1Cisco の 802.1Q タグを受信し、その上に 802.1AD タグを受信します。私のスイッチしたがって、クライアントのポート2でQinQとしてリッスンされます。
ここに関連する VLAN インターフェイスがなく、VLAN インターフェイスは作成されませんでした。 VLAN インターフェイスが存在する場合私のスイッチ削除する必要があります。
注:必要に応じてブリッジ値をvlan_protocol
変更できます(/sys/class/net/swbridge/bridge/vlan_protocol
または使用ip link set dev swbridge type bridge vlan_protocol ...
)。ただし、VLANインターフェイス()が設定に使用されている場合、ip link add link ... name ... type vlan id ... protocol ...
そのVLANプロトコルは後で変更できません。 VLANプロトコルを変更するには、インターフェイスを削除して再作成する必要があります。一度作成された契約は変更できません。変更しようとしました(使用はip link set ... type vlan protocol ...
自動的に許可されましたが効果がありませんでした)。