问题描述:
当我们在看相关数通视频时,作者会说到,二层交换机只处理二层数据包 (三层或更高层交换机看不懂的)–或者说路由器只看得懂三层以下数据。
那么问题来了,竟然交换机看不懂二层以上的数据,那么交换机之间是如何通过telnet进行访问的呢?
解释:
当交换机收到一个数据时,他会查看数据包的目的MAC指向谁,若是指向的是自己(交换机本身),那么交换机会将此数据包继续交个自身的三层协议栈处理; 若目的MAC指向的不是自己,那么交换机只会查看到数据包中的二层,然后再转发到对应的端口上去。
再比如: 路由器若是只能看懂三层协议,那么哪些高级ACL是这么实现的呢,你说对吧,所以说一些设备能看懂几层,具体要看设备所装的系统(那些开发者有木有开发那些某层对应的某些协议)。
例子:
在三层交换机中,若交换机收到一个单播数据帧,当查看此帧时发现帧的目的MAC正是自己的MAC(如vlanif口MAC),因此三层交换机会将数据帧解封装(因为目的MAC是自己的–若不是交换机本身MAC则直接查找对应vlan中的MAC表),并将里面的数据上送到IP模块进行处理,IP模块读取数据包的目的IP,若交换机发现目的IP不是自己的,则交换机会在路由表中查询这个目的IP,若在路由表中查到了对应的路由及下一跳后,则交换机重新将这个数据包封装成帧,从对应端口发送出去(注意此时的数据包源MAC已经改变—是三层交换机的MAC)。