今天我们来介绍一种使用VLAN中的VID
来上传/下载文本文件或者Payload的方法(这种方法及脚本仅适用于Linux环境中)。
VLAN ARP
比LAN ARP
多了TAG
字段,TAG
字段由4部分组成:
Tag
字段总长4 Bytes。其中Type
部分固定值为0x8100
,用于将帧标记为IEEE 802.1Q帧。
上述二者的DATA
字段都没有进行具体说明,本文重点不在于此,感兴趣者可自行查阅资料。
这里以传输一个文本文件为例:
ping
该VLAN中任意一台主机,这时会发送ARP广播报文,其中的VID字段会被填充为上面的设置值 ip link add link wlo1 name VLAN type vlan id 53
建立VLAN后,你需要为这个VLAN设置IP,并启用:
ip addr add 192.168.110.1/24 brd 192.168.110.255 dev VLAN
ip link set dev VLAN up
ping 192.168.110.5
这时需要192.168.110.5
这台主机的MAC地址,才能进一步发送ICMP报文,所以会发出ARP Request
广播报文来询问192.168.110.5的MAC地址。
抓包,可以看到:
成功地将指定数据插入到了VID字段内。
Client
需要设置一定的过滤规则,才能接收这些报文。
首先,应该抓取的是广播报文:
tcpdump -XX broadcast
其次,应该将这些报文中的ARP Request
提取出来,同时VID
字段位于其上一行,也应该一并提取出来:
tcpdump -XX broadcast | grep -E '0x0010.*0806|0x0000.*8100'
最后,将VID
字段提取出来:
tcpdump -XX broadcast | grep -E '0x0010.*0806|0x0000.*8100' | grep '0x0000:' | awk {'print $9'}
注意:在脚本实现中tcpdump使用了-c参数指定长度,这样才能避免接收无用报文。