2023年12月20日
技术教程 如何在AlmaLinux 9 / RockyLinux 9上配置VLAN
事情是这样的。
这几周的计算机网络课上,老师要我们用两台Linux虚拟机搓一个VLAN出来,然后tcpdump+Wireshark看一下IEEE 802.1Q的报文。
老师使用的方案是CentOS6+ifconfig+vconfig。
我一看,好家伙,CentOS6都冒出来了。
这哪是上课啊,这根本就是考古。
我不能接受。
并且哈,在Ubuntu中,ifconfig和vconfig全都被弃用了,取而代之的是ip-xxxx,也就是iproute2。
OK,开始说正事。
演示环境是两台虚拟机,我安装的是AlmaLinux 9 和 RockyLinux 9
宿主操作系统是Windows 11 23H2 家庭中文版
虚拟化软件是VMware Workstation Pro 17.5
虚拟机网络状态是桥接,NAT理论可行但未测试
首先在AlmaLinux上进行操作。
我们总共需要:
- 创建一个设置了VLAN ID并且绑定在桥接网卡下的虚拟网卡
- 给新的虚拟网卡加IP
- 把新网卡的状态从down设置到up
听起来很简单,实际上确实很简单。
但是,这个过程中有个天坑,等下会讲。
不多说,直接上命令:
ip link add link <物理网卡名> name <新虚拟网卡的名称> type vlan id <设置的VLAN ID> ip address add <IP地址,CIDR格式> dev <新虚拟网卡的名称> ip link set <新虚拟网卡的名称> up
所以:
AlmaLinux:
ip link add link ens160 name VLAN type vlan id 100 ip address add 192.168.100.1/24 dev VLAN ip link set VLAN up
RockyLinux:
ip link add link ens160 name VLAN type vlan id 100 ip address add 192.168.100.2/24 dev VLAN ip link set VLAN up
然后在AlmaLinux上Ping一下192.168.100.2。
如果不出意外的话,应该是有回应的:
[root@VirtualAlma ~]# ping 192.168.100.2 PING 192.168.100.2 (192.168.100.2) 56(84) 比特的数据。 64 比特,来自 192.168.100.2: icmp_seq=1 ttl=64 时间=0.809 毫秒 64 比特,来自 192.168.100.2: icmp_seq=2 ttl=64 时间=0.680 毫秒 64 比特,来自 192.168.100.2: icmp_seq=3 ttl=64 时间=0.556 毫秒 64 比特,来自 192.168.100.2: icmp_seq=4 ttl=64 时间=0.500 毫秒 64 比特,来自 192.168.100.2: icmp_seq=5 ttl=64 时间=0.587 毫秒 64 比特,来自 192.168.100.2: icmp_seq=6 ttl=64 时间=0.626 毫秒 ^C --- 192.168.100.2 ping 统计 --- 已发送 6 个包, 已接收 6 个包, 0% packet loss, time 5119ms rtt min/avg/max/mdev = 0.500/0.626/0.809/0.098 ms
OK,能Ping通,那么Wireshark启动!
欸,问题来了,我该让Wireshark监听哪个接口呢?
有人说,刚才加的是名字叫做VLAN的虚拟接口,只有这个接口才打了VLAN ID,所以肯定监听它。
那我们来试试看。
我会在监听的同时Ping对方,然后给你们看捕获的报文。
看红框里的部分。
我的1Q报文呢?上哪去了?
这就是一个坑。
不要监听虚拟接口,监听物理接口才能看到报文。
那当然是轻松秒杀。