linux命令brctl与ip(vconfig)配置交换机功能

默认情况下,所有物理接口都是VLAN 1的子接口
brctl addbr vlan_default_1
brctl addif vlan_default_1 <all physical interfaces>

以下更改接口VLAN的操作,都需要先把接口从vlan 1中删除
brctl delif vlan_default_1 <ethx>

1)创建VLAN接口


VLAN接口的创建实现为创建一个网桥设备

brctl addbr vlan_access_100
或者
ip link add vlan_access_100 type bridge

添加VLAN子接口:

brctl addif vlan_access_100 eth0
brctl addif vlan_access_100 eth1


2)设置物理接口ACCESS VLAN


   在物理接口配置access vlan时,将物理口加入对应vlan id的网桥vlan_access_(id),如果网桥不存在,首先创建网桥。

brctl addbr vlan_access_100

将eth0设置为access接口
brctl addif vlan_access_100 eth0

将eth1设置为access接口
brctl addif vlan_access_100 eth1


说明:在步骤1)和 2)中都可创建access vlan,添加子接口,作用相同。


3)设置物理口TRUNK VLAN


比如将eth1更改为trunk接口,允许通过的VLAN ID为 100,101,102。

由于在 2)中配置了eth1的access模式vlan 100,首先删除它
brctl delif vlan_access_100 eth1

创建100,101,102三个vlan接口
ip link add link eth1 name eth1.100 type vlan id 100
ip link add link eth1 name eth1.101 type vlan id 101
ip link add link eth1 name eth1.102 type vlan id 102

由于在 2)中创建了access vlan 100,与此处trunk中被允许的vlan 100冲突,将其删除

brctl delif vlan_access_100 eth0
brctl delbr vlan_access_100

创建新的bridge,将access vlan 100与trunk vlan 100合并,将之前删除的eth0 access 100添加回来

brctl addbr vlan_trunk_100

brctl addif vlan_trunk_100 eth0
brctl addif vlan_trunk_100 eth1.100


注意,如果之后要更改eth1为access接口,需要还原eth0的access vlan 100的配置。


4)设置物理接口TRUNK的PVLAN


配置eth1接口的pvlan为110

ip link add link eth1 name eth1.110 type vlan id 110

brctl addbr vlan_access_pvlan_110

brctl addif vlan_access_pvlan_110 eth1

假设eth2接口配置了access vlan 110

brctl addif vlan_access_pvlan_110 eth2


如果数据包的VLAN id等于trunk接口的pvlan,在由trunk发出时,去掉其vlan字段。


5)创建Hybrid接口



配置eth2为hybrid模式接口,允许通过的VLAN ID为 200,201,202。

创建200,201,202三个vlan接口(带有此三个vlan tag的数据包可接收)
ip link add link eth2 name eth2.200 type vlan id 200
ip link add link eth2 name eth2.201 type vlan id 201
ip link add link eth2 name eth2.202 type vlan id 202

配置eth2接口的pvid 205,接收到不带vlan的数据包,依据vlan 205转发


brctl addbr vlan_access_205
brctl addif vlan_access_205 eth3          // 假定eth3配置了access vlan 205
brctl addif vlan_access_205 eth2

与trunk模式不同,hybrid模式可指定发送时是否带有vlan tag,比如vlan 200/201带tag发送、vlan 202不带tag。

brctl addbr vlan_hybrid_tag_200
brctl addif vlan_hybrid_tag_200 eth2.200
brctl addif vlan_hybrid_tag_200 eth4          // 假定eth4配置了access vlan 200

brctl addbr vlan_hybrid_tag_201
brctl addif vlan_hybrid_tag_201 eth2.201
brctl addif vlan_hybrid_tag_201 eth5          // 假定eth5配置了access vlan 201


brctl addbr vlan_hybrid_untag_202
brctl addif vlan_hybrid_untag_202 eth2
brctl addif vlan_hybrid_untag_202 eth6        // 假定eth6配置了access vlan 202


6)创建supervlan与subvlan


创建supervlan,supervlan不能包含物理口

brctl addbr vlan_supervlan_200
ifconfig vlan_supervlan_200 192.168.1.1

创建子vlan,添加子接口;将子vlan添加到supervlan中

brctl addbr vlan_subvlan_201
brctl addif vlan_subvlan_201 eth10
brctl addif vlan_subvlan_201 eth11

brctl addif vlan_supervlan_200 vlan_subvlan_201


7)创建QinQ


创建service vlan接口eth0.300,vlan id等于300。协议proto选择802.1ad时TPID为0x88a8,proto选择802.1Q时,TPID为0x8100。

ip link add link eth0 eth0.300 type vlan proto 802.1ad id 300
或者
ip link add link eth0 eth0.300 type vlan proto 802.1Q id 300


添加customer vlan 301.
ip link add link eth0.300 eth0.300.301 type vlan proto 802.1Q id 301

猜你喜欢

转载自blog.csdn.net/sinat_20184565/article/details/80626694
今日推荐