二层与三层交换基础2020/3/102二层与三层交换基本概念二三层转发依据:fdb表,路由表,arp表二层转发原理三层转发原理及ip选路机制硬件芯片转发与软件转发的联系2020/3/103网络分层概念首先,复习一下网络分层概念七层:应用层,telnet/ftp/路由协议四层:传输层,TCP/UDP三层:网络层,通常是IP,数据包称为报文二层:链路层,比如以太网,数据包称为帧一层:物理层L2HEADERL3HEADERDATA以太网头IP头L4HEADERTCP头2020/3/104链路层链路层:负责直接相连的网络设备之间的通讯二层设备:连接同类型的链路网段,如两个以太网的物理网段iMaciMacHUB/交换机L2L1L2L2L1L3L32020/3/105链路层地址在以太网使用的地址是MAC地址6字节数字,如00-50-FC-1F-C0-3A特殊地址:FF-FF-FF-FF-FF-FF广播地址MAC地址没有层次关系,所有的MAC地址只有数值的不同,没有网络上的包含关系一个MAC地址唯一代表网络上的一个点2020/3/106链路层链路层网络是一个平面的网络:没有层次关系iMaciMacdigitaliMaciMaciMaciMacdigitaldigitaliMaciMaciMaciMaciMaciMac等于HUBHUBHUB2020/3/107网络层网络层:负责一个网络内的通讯三层设备:连接多个IP网段iMaciMac3层交换机/路由器L2L1L3L2L1L3L2L2L320.0.0.0/830.0.0.0/82020/3/108网络层地址IP地址:4字节数字IP地址有层次关系10.0.0.0/8是一个大网络地址10.1.0.0/16是其中的一个子网10.1.30.23/16是这个子网中的一个主机地址10.1.255.255/16是这个子网中的广播地址网络地址主机地址掩码长度2020/3/109网络层在网络层,才可以组建大型网络iMaciMaciMac10.1.30.2310.2.10.11180.23.6.310.0.0.0/8180.23.0.0/162020/3/1010二层与三层交换基础基本概念二三层转发依据:fdb表,路由表,arp表二层转发原理三层转发原理及ip选路机制硬件芯片转发与软件转发的联系2020/3/1011fdb表网络设备都以mac地址来唯一地标识自己,而交换机要实现设备之间的通信必须知道自己的哪个端口上连接着哪台设备,因此特别需要一张mac地址与端口号一一对应的表,以便在交换机内部实现二层数据转发,这张二层转发表就是fdb(ForwardingDatabase)表.为了在交换机之间也实现二层数据转发,又引入了带tag的vlan.每个交换机的端口分别以tag方式加入某个vlan,只要tag值相同,所属vlan都在同一个网段里,则这几个端口就可以实现数据通信,由于网络设备可以以tag方式属于多个vlan,因此只有mac地址不足以唯一地表示一条fdb表项,必须是vlan_ID+mac地址二者一块来表示.2020/3/1012FDB表的构成要素==================================================MACVLANSLOT/PORTTRUNKVIDVIDXTYPE==================================================00:1f:64:00:ff:102001CPU----00:1f:64:00:ff:102002CPU----00:1f:64:00:02:5132/6---DYNAMIC2020/3/1013路由表路由表是三层转发的依据;表项结构如下:S0.0.0.0/0[10/0]via13.0.0.2,vlan6S*0.0.0.0/0[1/0]via192.168.1.254,vlan7C*10.0.0.8/30isdirectlyconnected,vlan2C*11.0.0.8/30isdirectlyconnected,vlan3C*12.0.0.0/24isdirectlyconnected,vlan4C*13.0.0.0/30isdirectlyconnected,vlan6C*127.0.0.0/8isdirectlyconnected,loC*172.16.1.0/24isdirectlyconnected,vlan2001C*192.168.5.0/24isdirectlyconnected,vlan10S*192.168.23.0/24[1/0]via10.0.0.10,vlan22020/3/1014arp表arp为IP地址到对应的硬件地址提供动态映射关系:arp表的构成要素如下:SYSTEM(config)#showeth-port2/6arp=====================================================IPMACSLOT/PORTTRUNKIDVIDVIDXISTAGSTATIC=====================================================11.0.0.1000:1f:64:00:02:512/6-3-FALSEFALSE172.16.2.100:1f:64:00:02:512/6-2002-TRUEFALSE2020/3/1015二层与三层交换基础基本概念二三层转发依据:fdb表,路由表,arp表二层转发原理三层转发原理及ip选路机制二三层转发总结2020/3/1016二层交换二层交换:在一个二层网络内部(比如一个VLAN),将收到的帧选择适当的端口发出去。通过MAC学习得到MAC与端口的对应信息,称为FDB表对收到的包按目的MAC做交换,不修改帧里的源和目的MAC地址。没有表项的帧在VLAN内做广播2020/3/1017二层转发的原理(一)MAC学习:从端口收到的帧中读出MAC地址,得到它们的对应信息iMaciMaciMaciMacHUBMAC1MAC2MAC3MAC4port1port2port3port4FDB表MAC1:Port1MAC2:Port2MAC3,MAC4:Port3MAC5,MAC6,MAC7:Port42020/3/1018二层转发的原理(二)按FDB表做交换iMaciMaciMaciMacHUBMAC1MAC2MAC3MAC4port1port2port3port4目的MAC=MAC4MAC1:Port1MAC2:Port2MAC3,MAC4:Port3MAC5,MAC6,MAC7:Port4接收抛弃2020/3/1019二层与三层交换基础基本概念二三层转发依据:fdb表,路由表,arp表二层转发原理三层转发原理及ip选路机制硬件芯片转发与软件转发的联系2020/3/1020三层转发的原理(一)通过路由协议或配置得到远方网段的路由iMaciMacH1配置缺省路由:0.0.0.0/0下一跳20.1.1.1020.1.1.1/2430.1.1.20/2440.1.1.1/24接口e120.1.1.10/24接口e230.1.1.10/24R1R2R3H1H2R1得到路由:40.1.1.0/24下一跳30.1.1.20出口e240.1.1.40/24R42020/3/1021路由协议路由协议的功能是在路由器之间交换路由信息它使用特殊的协议报文,里面装有路由数据不是象MAC地址学习那样,从任何收到的包上反向学习。远方地址没有路由就不能通,也就没有包可以学。2020/3/1022三层转发的原理(二)链路层把收到的IP报文上交给IP层iMacM1,M2,IP…L2L1L2L3L3IP1,IP2,ICMP…DATA以太网头,从M1发送到M2IP头,从IP1(20.1.1.1)发送到IP2(40.1.1.1)H1IP=20.1.1.1MAC=M1IP=20.1.1.10MAC=M2R1ETHIPDATAIPDATA2020/3/1023三层转发的原理(三)IP层按路由做转发目的IP=40.1.1.1转发表得到路由:40.1.1.0/24下一跳30.1.1.20出口e2路由1:40.0.0.0/8路由2:40.1.1.0/24路由3:40.1.2.0/24路由表的“最佳匹配”把报文交以太网接口e2向30.1.1.20发送2020/3/1024三层转发的原理(四)链路层把帧发送到邻居M2,M3,IP…L2L1L2L3IP1,IP2,ICMP…DATA以太网头,从M1发送到M2IP头,从IP1(20.1.1.1)发送到IP2(40.1.1.1)R2IP=30.1.1.20MAC=M3IP=30.1.1.10MAC=M2R1ETHIPDATAIPDATAL3MAC地址变了,而IP地址都没有变!!2020/3/1025三层转发的原理(五)iMaciMac20.1.1.1/2430.1.1.20/2440.1.1.1/24接口e120.1.1.10/24接口e230.1.1.10/24R1R2R3H1H240.1.1.40/24源IP和目的IP都一直不变源MAC和目的MAC在每个网段间都要改变M1-M2M2-M3M3-M4M4-M52020/3/1026三层转发过程总结链路层收到一个以太网帧检查校验和等参数是否合法如果目的MAC地址不是我的,也不是组播和广播MAC,就进行二层转发如果目的MAC地址是设备的MAC地址,则删除帧头,把数据部分按帧头里的协议类型交上层协议处理(如IP)2020/3/1027三层转发过程总结IP层收到IP包(就是以太网帧的数据)检查校验和等参数是否合法如果IP地址是接口IP地址之一,说明是本地报文,按IP头里的协议类型交上层协议处理(如TCP)否则,用目的IP地址查转发表有路由则交“出接口”对应的链路协议发出,没有路由则送cpu处理2020/3/1028三层转发过程总结链路协议(以太网)得到这个要发出的IP包,以及出接口和下一跳IP地址信息在IP包前面添加以太网帧头,源MAC地址是我的MAC地址,目的MAC地址是下一跳的MAC地址(用下一跳IP地址查ARP表得到),发出。如果ARP表里没有找到下一跳IP地址,则需要发送ARP请求去解析这个IP,暂缓发送IP包或丢包。2020/3/1029底层桥驱动查找硬件fdb表是否cpu的MAC是否存在转发端口否相应端口进行转发当前vlan内进行广播否是交换芯片判断是否可以进行硬件的三层转发是数据报文IP头中的目的IP是否是本机的IP报文送cup处理查硬件路由表是是否存在下一跳IP地址丢弃或者送cpu(由软件进行控制)否是查硬件arp表是否存在下一跳的MAC地址否数据包送cpu,由cpu发出arp请求按照出接口进行转发是按照出接口进行转发丢弃数据包是否收到arp应答是否数据包2012年2月28日二三层转发流程否特例,arp,BPDU,DHCP,RIP,OSPF,PIM,IGMP等协议报文,目的MAC不是设备的mac(是特定的组播或者是广播),但是这类报文都是需要cpu处理的,硬件芯片的L2转发机制可以判断出这类特殊报文,并直接将他们从二层送上cpu;2020/3/1030三层转发过程中的IP选路选路原则:1.当掩码长度互不相同的时候,按照最长掩码匹配原则选路;2.当掩码长度相同的时候,相应的直连路由优先;3.当掩码长度相同,且不存在相应的直连路由的时候,distance值小的优先;4.当掩码长度相同,且不存在相应的直连路由的时候,distance值也相同的时候,metric值小的优先;2020/3/1031硬件芯片转发与软件转发的联系基本概念二三层转发依据:fdb表,路由表,arp表二层转发原理三层转发原理及ip选路机制硬件芯片转发与软件转发的联系202