之前听说过,三层交换机的路由是一次路由多次转发,而路由器的路由是依靠路由表对每一个数据包进行拆包,封包来选择最优路劲转发的,昨天做了一个小实验,验证了一下!!!在Cisco Packet Tracer中有如下拓扑图:
在三层交换和个路由器之间都做静态路由,全网都能通。只是在SW到6.0.0.0 网段时我把从SW-R1-R3的cost 值给成10。而SW-R2-R3我给成5,从6.0.0.0网段回到1.0.0.0,也一样上面路径的cost 为10 下面的为5.这样当主机0.ping主机1时去和回来都会走SW-R2-R3的路劲,但他们的路由表中都会有备份路由SW-R1-R3.
在SW上的配置有:
ip route 6.0.0.0 255.0.0.0 2.0.0.2 10
ip route 4.0.0.0 255.0.0.0 2.0.0.2 10
ip route 6.0.0.0 255.0.0.0 3.0.0.2 5
ip route 5.0.0.0 255.0.0.0 3.0.0.2 5
在路由器R3有配置:
ip route 1.0.0.0 255.0.0.0 5.0.0.1 5
ip route 3.0.0.0 255.0.0.0 5.0.0.1 5
ip route 2.0.0.0 255.0.0.0 4.0.0.1 10
ip route 1.0.0.0 255.0.0.0 4.0.0.1 10
在这种情况下从PC0pingPC1:肯定能PING通,并且还会走下面的路劲:
当我将R2-R3断开,再去ping,就PING不通了,看一下数据包的走向:
从pc0去往pc1的ping包并没有走上面路径的路由就是SW-R1-R3,而是一直傻傻的走之前他走过的路由,我们再看看pc1去PINGpc0:
路由器R3就很聪明的知道走R3-R1-SW,当然这样也不能通,因为在PC0给PC1返还报文时,还是很傻冒的走下面.
这就说明了三层交换机的路由是一次路由多次转发的,当他在发第一个包时,会查路由表,从哪里出去。然后会在自己的快速转发表里记录下来,第二次发数据包时,他先看的快速转发表,如果满足的话,就不会看路由表的,这样大大加快了转发速度,就上以上拓扑中PC0第一次去pingpc1时,就会记录下一个去往PC1的快速转发条目,所以后续从PC0去往pc1的包就不看路由表直接转发了,就算后续路不通,他也不知道.
而路由器有一个选路的过程,对每一个包都会进行选路,当得知一条路不通,他会马上选另一条路,这样他的转发速度就会没交换机快,但更可靠了.
所以我们一般用三层做为核心层设备,在面对出口路由之间的链路不会轻易变化时,时可以实现高速转发,是很合理的.而出口用路由器,提供选路机制,为网络提供可靠性。。。。。。
总结:其实实验很小,但做起来挺好玩,知识点也很小,但容易被忽略。