目录
案例二:vlan接口正常up,同网段,无法ping通?(PVID)
原因一:pvid(native vlan)两端不一致——帧的VLANID≠接口PVID
原因二:pvid(native vlan)两端不一致——帧的VLANID=接口PVID (现网常见错误配置)
案列一:如何理解vlanif接口无法up的原因?
拓扑和配置如下:
SW2预配置如下:
vlan 10
#
int vlan 10
ip add 1.1.1.2 24
#
interface GigabitEthernet0/0/1
port link-type trunk
发现sw2的vlan10接口是down的
原因:物理接口g0/0/1没有放行vlan10(当然这个原因大家可能都知道,但是如何理解呢?)
个人理解:
对于一个物理接口来说,接口物理down什么原因?——没有接线
而同样对于vlan接口类比一下,vlan接口物理down,同样是不是没有接线的原因:
如何理解vlan接口接线?
大家普遍的意义的理解,trunk接口放行vlan,从另一角度理解:把vlan加入到这个trunk链路上
所以当vlan没有加入到trunk的时候,vlanif接口就是一个交换机上存在的一个没有插线的接口,只是这个接口在交换机的内部(图一),那么当我们把vlan加入到trunk上,相当于给这个vlan接口接上网线,所以这个接口就会up(图二)
其实从广播域的角度来说,也就是把vlan10广播域从内部延申到trunk链路上,和对端vlan10出来的广播域连接在一起(下图)组成一个网段
配置验证:
案例二:vlan接口正常up,同网段,无法ping通?(PVID)
原因一:pvid(native vlan)两端不一致——帧的VLANID≠接口PVID
拓扑配置&现象如下:
pvid默认为1,当两端不一致的时候发现无法ping通,修改一致后发现可以通了
vlanif接口通信过程理论:
该部分涉及到vlanif通信过程:https://note.youdao.com/s/1KytkMtM
sw2的vlanif10 1.1.1.2访问sw1的vlan10 1.1.1.1 过程
首先查询路由,发现是直连路由,(代表路由完成,进入交换)
问:最终要从物理接口发出去,但是路由表里面没有物理接口怎么办?发出去的时候打上的vlan tag如何确定的?—— ARP表项--》MAC表----》
路由模块解析发现目的IP为1.1.1.1,非本地接口存在的IP地址,因此需要对该报文三层转发。查找路由表后,匹配中VLANIF10产生的直连路由。
因为匹配的为直连路由,说明已经到达最后一跳,所以交换机在ARP表中查找对应ip 1.1.1.1,获取MAC地址,交由交换模块重新封装为数据帧。
交换模块查找MAC地址表以明确报文出接口、是否需要携带VLAN Tag。最终交换模块发送的数据帧
二层接口trunk的vlan tag规则:https://note.youdao.com/s/dtkxTKHO
根据这个规则(帧的vlanid=10,接口pvid=20,二者不同),在我们的测试环境中看到——发出的arp广播携带了vlan tag=10 ,但是无法获取到对方 1.1.1.1的mac地址
原因解释:因为sw2接口并没有放行PVID,放行后可以ping通
个人疑惑 (希望大佬解答一下):
- ① 如果sw2的trunk 没有放行vlan20的话, 现象应该是sw1回答了ARP广播,发出了arp应答,但是sw1拒绝才对;
- ②此外该场景下,如果sw2放行vlan20 , 然后ping通,然后快速取消vlan20,再次长ping的话,最终会不通(初步怀疑时mac和arp缓存,但是我都映射为静态的,还是通不了,初步怀疑bug)
原因二:pvid(native vlan)两端不一致——帧的VLANID=接口PVID (现网常见错误配置)
[SW2-GigabitEthernet0/0/1]dis th
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk pvid vlan 10
port trunk allow-pass vlan 10
现象:
根据vlan tag的规则,发出arp 广播的时候, 没有携带vlan tag,
原因解释:
- 没有携带vlan tag的arp广播到达sw1 trunk接口的时候, 根据标签规则,打上vlan 1的标签,然后朝着自己的vlan 1广播域泛洪,但是vlanif10在vlan10广播域,所以不会有arp应答
原因三:生成树问题
- 生成树选举阻塞问题: 由于生成树的选举阻塞了某个端口
- 厂家之间协议不兼容
- 处于选举过程,由于端口状态为完全收敛,此时不能发送数据帧 [如侦听(Listening)]
个人总结:
网络排查可以按照TCP/IP模型一层的排查,
接口是否up(物理up和协议up) ----> 数据链路层(生成树,vlan tag ,链路聚合LACP协商........)等--->网络层(路由..)--->.....
如果是安全设备等(还有关注L4--L7层信息)