native vlan
1.现象描述
这是一个单臂路由,正常情况都能ping通对方
2.做点小改动
把sw-e0/2的native改成vlan2
可以知道
pc1和pc2之间无法ping通
pc1不可以ping通网关,而pc2可以
反过来,网关不可以ping通pc1,而可以ping通pc2
这是怎么回事呢?
通过在e0/2-f0/0之间抓包可以知道
DTP的id这个字段发送的是native vlanid
在R1上可以看到封装的时候自动加入了native
从而可以说明路由器从某种程度上说可以是交换机
两边native不匹配
细说过程
Pc1发送报文给网关,包首先进入交换机e0/1口,打上vlan1id,交换机经过查找,只能把包从e0/0发出去(trunk),但这里native改成2了,trunk口发现要发送出去的包的vlanid不是native,也就什么都不变就发送出去
路由器收到后发现是vlan1的,目的ip是本路由器的直连,发送回包
但这里我们得知道,路由器某种程度上说是交换机,还记得上面f0/0.1子接口的配置吗?
后面加上了native,所以当路由器发送的回包里面没有vlanid字段
这是为什么呢,应为这是native起到的作用,当这个vlanid于native匹配,它会去除vlanid!!
也就是发包到交换机后它会打上native的vlan,也就是vlan2,所以可以知道包发到vlan2去了!!这听起来会很离谱,所以两边native vlan匹配很重要!!
问:native的作用
文心一言:
Native VLAN主要是在Trunk链路上起到重要作用。在Access链路上并不涉及Native VLAN的概念。其存在的主要原因是支持VLAN与不支持VLAN的设备相互兼容。以下是几个具体的例子:
- 当支持VLAN的设备与不支持VLAN的设备(如部分旧版本的交换机和计算机网卡)通信时,需要将VLAN标签去掉,这样设备才能正确识别数据帧。
- 如果在Trunk链路上使用STP协议,但数据帧在进入Trunk链路时未标记,那么Trunk将给这些帧打上Native VLAN的标记,使得这些帧在Trunk中以Native vlan的身份传输。
总结来说,Native vlan的存在是为了在支持与不支持VLAN的设备之间实现兼容。
问:不同设备native作用一样吗
文心一言:
不同设备的Native VLAN具有相同的作用,即都是在Trunk链路上起到重要作用,用于在支持与不支持VLAN的设备之间实现兼容。
具体来说,Native VLAN是一种特殊的VLAN,它通常被用于处理Trunk链路上的数据帧。当数据帧在进入Trunk链路时未标记,Trunk会将给这些帧打上Native vlan的标记,使得这些帧在Trunk中以Native vlan的身份传输。这个过程中,设备能够正确识别数据帧,实现了支持与不支持VLAN的设备之间的兼容。
不同设备的Native vlan在作用上的一致性,使得无论是在哪种设备中,我们都可以使用相同的规则来处理数据帧,从而确保数据传输的稳定性和兼容性。