我正在读“人桥”,它是这样写的:
bridge vlan { add | del } dev DEV vid VID [ pvid ] [ untagged ] [ self ] [ master ]
Run Code Online (Sandbox Code Playgroud)
“自我”和“主”选项有什么用?
男人说:
self the vlan is configured on the specified physical device. Required if the device is the bridge device.
master the vlan is configured on the software bridge (default).
Run Code Online (Sandbox Code Playgroud)
谁能详细说明一下吗?
据我了解,“self”适用于“br0.10”等虚拟接口,让网桥(br0)知道接收到的帧可以用于它。正确的?
是的,自我是为了桥梁。VLAN 被分配给桥接接口。
master 用于从属于桥接口的接口。您无需声明关键字 master,因为它是默认值。
创建桥梁
/ # ip link add br0 type bridge vlan_filtering 1
/ # ip link set br0 up
/ # bridge vlan
port vlan ids
br0 1 PVID Egress Untagged
Run Code Online (Sandbox Code Playgroud)
添加 VLAN
/ # bridge vlan add dev br0 vid 10 self
/ # bridge vlan add dev br0 vid 20 self
/ # bridge vlan add dev br0 vid 30 self
/ #
/ # bridge vlan
port vlan ids
br0 1 PVID Egress Untagged
10
20
30
Run Code Online (Sandbox Code Playgroud)
将 eth 接口添加为桥接的从接口
/ # ip link set eth0 master br0
/ # ip link set eth1 master br0
/ # ip link set eth2 master br0
/ # bridge vlan
port vlan ids
eth0 1 PVID Egress Untagged
eth1 1 PVID Egress Untagged
eth2 1 PVID Egress Untagged
br0 1 PVID Egress Untagged
10
20
30
Run Code Online (Sandbox Code Playgroud)
从接口中清除默认 VLAN
/ # bridge vlan del dev eth0 vid 1
/ # bridge vlan del dev eth1 vid 1
/ # bridge vlan del dev eth2 vid 1
/ # bridge vlan
port vlan ids
eth0 None
eth1 None
eth2 None
br0 1 PVID Egress Untagged
10
20
30
Run Code Online (Sandbox Code Playgroud)
将必要的 VLAN 添加到端口
/ # bridge vlan add dev eth0 vid 10 pvid untagged master
/ # bridge vlan add dev eth1 vid 20 pvid untagged master
/ # bridge vlan add dev eth2 vid 30 pvid untagged
/ # bridge vlan
port vlan ids
eth0 10 PVID Egress Untagged
eth1 20 PVID Egress Untagged
eth2 30 PVID Egress Untagged
br0 1 PVID Egress Untagged
10
20
30
Run Code Online (Sandbox Code Playgroud)
如您所见,我对 eth0 和 eth1 使用了 master 关键字,但没有对 eth2 使用了 master 关键字,并且它没有改变结果。