本文主要介绍关于网络,HCIA,HCIP,交换机,路由器的知识点,对【【分享】二层交换和三层交换转发】和【三层交换转发原理】有兴趣的朋友可以看下由【微思xmws】投稿的技术文章,希望该技术和经验能帮到
本文主要介绍关于网络,HCIA,HCIP,交换机,路由器的知识点,对【【分享】二层交换和三层交换转发】和【三层交换转发原理】有兴趣的朋友可以看下由【微思xmws】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的思科认证,华为认证相关技术问题。
三层交换转发原理
关于多层交换:
第2层交换:
本质上是多端口的透明桥接,但比传统桥接增加了存储转发外的两种转发交换方式。2层交换机比桥增加了VLAN功能,同一交换机可以做多个独立的桥使用, 在分割冲突域的同时,分割广播域。扩展性有限,域中只能存在有限的几台交换机。有可能支持第三层的特性,如QoS或访问控制
第3层交换:
类似于路由,根据目的IP来转发帧,同时改变帧中的MAC地址,减少TTL,执行一次帧检测。但三层交换机与传统路由器靠CPU和软件来转发不同,它是靠 ASIC来实现转发,俗称switch。Cisco的三层交换机实现 了“路由一次,交换多次”的快捷交换方式。本身兼有二层特性,设计方案扩展性良好。
第4层交换与第7层交换:
所谓四层交换是指根据协议会话进行交换,即交换机的ASIC硬件可以识别第4层的TCP或 UDP协议。也就是说,可以一次完成基于MAC、IP和上层应用端口号在内的复杂路由与交换功能。所谓七层交换指的是内容智能(Content Intelligence)
Layer 2 Forwarding:
1.Layer 2 Forwarding(最关键的特征是二层交换机透明,也叫透明网桥。因为不改变数据帧。透明网桥不用ARP表,因为不需要二层和三层的映射关系)
如上图所示
1.A,B连接到相同Switch上,并且处于相同VLAN.
2.A,B有相同网段的接口IP地址.
Question:
Router A ping Router B 此时在各个设备上各自发生了哪些事件?查了哪些表项?
A#ping 192.168.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 4/11/16 ms
在Router和Switch上分别完成如下转发动作
1.查询路由表,找到目的地址的下一跳地址,并且通过递归查询获得最终到达目的地址的出包接口,这里因为属于同一广播域,所以没有下一跳问题,A将直接找到出包接口.
2.通过出包接口,判断Layer 2的封装,由于是以太接口,因此,二层封装是MAC地址。但是,由于A的ARP表中没有B的MAC地址和IP地址的映射关系,因此,第一个ping包会封装失败 "." 由此将触发一个ARP Request以获得B的以太接口的MAC地址.
ARP Request消息是一个广播的消息.
源IP地址 A以太接口 192.168.1.1
目的IP地址 B以太接口 192.168.1.2
源MAC地址 A以太接口 CA01.0F30.0000
目的MAC地址 FFFF.FFFF.FFFF
Switch收到ARP Request后将拆帧头并查找出源MAC地址,然后执行CAM表的检查,检查在收到数据包的端口上是否存在与MAC 地址的绑定,如果不存在,将学习该源MAC地址并加入到CAM表中,然后查找包中目的MAC地址,由于目的MAC地址是 FFFF.FFFF.FFFF的二层广播MAC地址,交换机对于广播帧,组播帧以及未知的单播帧将从除了接收端口以外的所有端口泛洪.
B收到后将给A回应单播的ARP Reply:
Switch收到ARP Reply后将拆帧头查找出源MAC地址,然后执行 CAM表的检查,检查在收到数据包的端口上是否存在与MAC地址的绑定,由于不存在,Switch将学习源B以太口的MAC地址。然后查找包中的目的MAC地址,由于目的MAC地址是A以太接口MAC地址,Switch再次查找CAM表并发现A以太接口MAC地址与端口的关联条目,交换机对于已知单播帧的转发方式是从与目的MAC地址相关联的端口转发出去.
小结:
二层交换机相当于一个透明网桥,不能修改原始帧。路由器转发数据包是查找路由表和ARP表,二层交换机转发数据帧是查找CAM表。ARP表中存放IP地址和MAC地址的映射信息.
在Layer 2的转发过程中,Switch对于A,B来说没有对传输的数据帧做任何的改变,所以A,B对于转发过程来说并不知道Switch的存在。形成逻辑上直连的关系,但是在物理上并不是。
Layer 3 Forwarding(三层包头不改变,二层封装要发生变化)
1.A与路由器不在同一个VLAN.
2.A default-gateway 指向Switch.
3.A与B不在同一个网段.
Question
A ping B,此时的转发与之前的转发方式有何不同?
由于A和B不在同一个网段且A设置了默认网关,A ping B的数据包将发送给其默认网关Switch.
源IP地址 A E1的IP地址 目的IP地址 B E6的IP地址
源MAC地址 A E1的MAC地址 目的MAC地址 Switch E2的MAC地址
Switch收到后拆包发现其中的目的MAC地址是自己E2的MAC地址,
在此处存在着2种情况:
1.该数据包是发送给自己的
2.该数据包是经由它发送给别的目的网络的。Switch继续查看数据包中的目的IP地址是B E6的IP地址,于是查找路由表发现到达B是从 E3接口出去,Switch在转发时执行数据包的重写:
源IP地址 A E1的IP地址 目的IP地址 B E6的IP地址
源MAC地址 Switch E3的MAC地址 目的MAC地址 Router E4的MAC地址
小结:
对于三层交换机转发非直连网段的数据包时,要执行数据包源MAC地址的重写,但是该数据包中的源和目的IP地址永远不改变。即二层封装改变是逐网段改变.
如上图所示
A. R1属于 VLAN 1,并且与 Switch上 VLAN 1的三层接口通信
B. R2属于 VLAN 2,并且与 Switch上 VLAN 2的三层接口通信
C. R1,R2,Switch之间运行 RIP 协议,并且R1 将学到 R2的路由
当 R1 ping R2时,在Router 和 Switch上分别会完成如下转发动作
Router1:
1.查询路由表,找到对应条目,获得到达该网段的下一跳地址以及出包接口。因为这里运行了路由协议,所以R1查询路由表的结果是必须通过Switch上的三层接口才可以到达目的地址,而出包接口指示的是到达下一跳的接口.
2.判断Layer 2的封装,并且查询对应的"ARP"表项,完成对数据包的封装。此时查询获得的将是下一跳的IP地址所对应的二层地址.
这里不做关于ARP表查询的结果的讨论,可以参考Layer 2Forwarding.
Switch:
1.收到来自R1的数据帧,并且完成对于数据帧源MAC地址的检测.
2.检测数据帧的目的MAC地址,并且发现该地址是一个本地的MAC地址
此时意味这里有两种可能性:
2.1该数据包已经到达目的地,Switch将试图拆开数据包检测上层应用.
2.2该数据包没有到达目的地,Switch只是作为该数据包转发过程中的一个中间节点,Switch会通过对包头的检测,获得该数据包的目的IP地址。以上两种结果都会导致Switch检测数据包头,而检测包头获得的将是数据包的IP地址,而此时对应的查询表项即为Routing Table,Switch开启Layer 3 Forwarding.
3.Switch查询完路由表,找到到达目的地址的下一跳以及出包接口.
4.查询对应的"ARP"表项,完成封装。此时Switch将用自己的下一跳地址所对应的二层地址作为目的,以及自己出包接口的二层地址作为源来封装该数据包.
Router2的转发过程不作讨论.
结论:
当Switch检测接收的数据帧,并且发现目的MAC地址是本地接口地址时,但是目的IP又不是自己,那么Layer 3 Forwarding就开启了,并且原有数据帧被改变.
开启Layer 3 Forwarding同时必须满足以下条件:
1.Switch支持三层转发,并且开启了IP Routing(能产生Routing Table的条件)
2.Switch上存在三层接口(SVI,Routing Port)
A.如上图
1.R1与R2处于不同VLAN中运行RIP协议
2.R3与R4处于相同VLAN中运行OSPF协议
逻辑图:
二层转发与三层转发的区别:
1.二层转发不查路由表,三层转发查路由表.
2.二层转发中,Switch不改变数据帧,而三层转发中,数据帧的源与目的是在每一跳都需要改变的.
3.二层转发中,Switch对 Router 来说透明了,而三层转发Switch无法透明
4.如上图 R1与R2属于相同VLAN,SW1与SW2之间建立Trunk此时R1 ping R2在Sw2的CAM表中,Fa0/23口对应的MAC地址是R1的G0/0口MAC.(一旦有SW1的F0/23的MAC地址,那么是STP的BPDU导致的,只有一端有因为一端是ROOT,而另一端没有是因为STP的选举 ROOT的过程是不记录MAC的(learning,listening过程))
本文《【分享】二层交换和三层交换转发》版权归微思xmws所有,引用【分享】二层交换和三层交换转发需遵循CC 4.0 BY-SA版权协议。