1 VLAN帧格式
2 ip link
1)为eth0接口添加VLAN ID 5
ip link add link eth0 name eth0.5 type vlan id 5
ip -d link show eth0.5
2)设置QOS
i=0
while [ $i -le 7 ]; do
ip link set dev eth0.5 type vlan egress-qos-map $i:0
# ip link set eth0.5 type vlan egress $i:0
i=$((i + 1))
done
其中$i表示skb_priority,0表示vlan_qos,vlan_qos对应到VLAN以太网帧中的3bit PCP。因为PCP的值越大优先级越高,由于AVB PCP的值为2(Class B,2B,250us)和3(Class A,3A,125us),所以将普通应用程序的PCP值都设置为0后,就低于AVB流的优先级了。
3)分配IP并设置启动
ip addr add 192.168.5.200/24 brd 192.168.5.255 dev eth0.5
ip link set dev eth0.5 up
或者
ifconfig eth0.5 192.168.5.200/24 up
4)删除命令
ip link set dev eth0.5 down
ip link delete eth0.5
3 VLAN showcase
ip link add link eth0 name vlan50 type vlan id 50
ip -d link show vlan50
ifconfig vlan50 192.168.5.200/24 up
ip route ACTION SELECTOR
ip route get 192.168.5.5
ip link delete vlan50
4 tcpdump抓到的log循环写
无论网卡是否支持vlan,如果在eth0设备上创建了vlan50设备,那么tcpdump在eth0上都可以抓到vlan的数据包,并不是只能在vlan50上抓包。
tcpdump -X -i eth0 -s 0 -C 20 -W 3 -w /data/ipsnoop.pcap -Z root
-i:设备名
-s:过滤包大小限制
-C:定义生成文件大小,兆(Mega Bytes)为单位,取整数
-W:可生成多少个文件
-w:指定生成文件的路径
-Z:用户组,user或者root;Linux如果想循环写文件,此选项必须有,Android不需要
5 Abbreviations
CVLAN:Customer VLAN,用户VLAN,对应的VLAN叫C-Tag
KSZ8565R:Kendin(肯定科技)Switch,Z表示KS的无铅版本,最后的数字5表示有5个端口;被Micrel收购
MIB:Management Information Base
PVID:Port default VID,PVID属于IEEE 802.1Q,不属于Port-based VLAN
SVLAN:Service Provider VLAN,服务商VLAN,对应的VLAN叫S-Tag
vconfig: vlan config