交换机有二层和三层之分,我也不打算区分的那些细,简单的讲讲一些网络基础的概念。
我们先从最底层的通信基础(局域网)说起吧。
首先我需要和另一台计算机通信,在网络的表现可能就是我需要ping一台计算机的IP,但是底层没有IP的概念,只能保持最基本的局域网通信原则。如果我不知道对方的mac地址,而我又需要和这台机器通信的话,我需要向我连接的这个局域网中广播,谁的MAC地址是XXXXX,所有的人都会收到,但是匹配的只有一个,其他的机器接受到这个包就会丢掉,而匹配的接受到后处理给出相应,返回给发送者,二者完成交互。同时发送者在它的MAC地址表中记录该MAC已经通信路径,下次就不必再广播了。
二层的通信依赖MAC地址,且只能在同一个局域网内,如果这个网络很大,通信很频繁,那么广播的消息就会很多,而且大部分都是没有用的,还挤占了正常通信的资源。于是VLAN的概念应运而生,VLAN中文叫虚拟局域网,说白了就是划分一个一个物理上未隔离而逻辑上隔离的网络,VLAN之间无法通信。每一个交换机端口都有一个默认的VLAN号。交换机的端口类型不一样,对消息的处理是不一样的。端口类型包括Hybird、Trunk和Access,前两种端口类型适合交换机之间相互连接(可以给端口配置多个VLAN),而最后一种类型只适合连接PC机(只允许一个VLAN通过),各有各的好处,稍微思考一下就知道了。端口可以设置带标签和不带标签,如果选择设置带标签,那么这条消息经过这个口是如果没有标签,在传输出去的时候是打上标签的(VLAN号)。一般连接交换机的口都会允许多个VLAN通过方便交换机上的消息转发和通信。
二层的通信虽然VLAN很好的隔离了各个虚拟局域网之间,起到了保护的作用,但是不在同一个VLAN之间的通信还是比较麻烦,于是三层交换机在网络层的通信就产生了。网络层有了IP的概念,同时有了和VLAN对应的一个概念VLANIF,设置interface VLANIF后可以设置其网关,使得保持在这个VLAN里面的PC机都将网关设置成VLANIF的IP就可以了。3层通信就是我们常见的模式了,我要ping通IP为XXXXX的机器,可是我不知道怎么走,那好,我有一条默认的路由,我路由表中没有的,都往这台交换机走,那总有走到尽头都没有连接到的情况,这就是我们常说的ping不通。如果对方的IP也ping不通你,你可以使用命令查看下在哪一步出现了问题(Windows下的命令是tracert),在断点的交换机上配置路由表,如果C交换机可以ping通目标而B交换机不行,而你的机器可以ping通B的话,在B上加一条路由,凡是通往目标网段的消息全部给扔给C,如果B、C交换机之间是不通的,那么检查下B、C连接的端口,是否允许了目标IP对应的VLANIF(也就是二层的VLAN)通过。逐步排查,可以很好的解决网络阻塞的问题,
今天先写点理论知识,有点粗,命令后续补上。