1、交换机网络

常见的以太网设备包括Hub、交换机等。交换机工作在数据链路层,有效地隔离了以太网中的冲突域,极大地提升了以太网的性能。

交换机和路由器_数据帧

交换机工作在数据链路层,对数据帧进行操作。在收到数据帧后,交换机会根据数据帧的头部信息对数据帧进行转发

1.1 交换机的转发行为

交换机和路由器_mac地址_02
 

交换机中有一个MAC地址表,里面存放了MAC地址与交换机端口的映射关系。MAC地址表也称为CAM(Content Addressable Memory)表。

如图所示,交换机对帧的转发操作行为分为:泛洪(Flooding),转发(Forwarding),丢弃(Discarding)

  • 泛洪:交换机把从某一端口进来的帧通过所有其它的端口转发出去(注意,“所有其它的端口”是指除了这个帧进入交换机的那个端口以外的所有端口)。
  • 转发:交换机把从某一端口进来的帧通过另一个端口转发出去(注意,“另一个端口”不能是这个帧进入交换机的那个端口)。
  • 丢弃:交换机把从某一端口进来的帧直接丢弃

1.2 交换机的基本工作原理

交换机的基本工作原理可以概括地描述如下:

  1. 如果进入交换机的是一个单播帧,则交换机会MAC地址表中查找这个帧的目的MAC地址
    • 如果查不到这个MAC地址,则交换机执行泛洪操作。
    • 如果查到了这个MAC地址,则比较这个MAC地址在MAC地址表中对应的端口是不是这个帧进入交换机的那个端口。如果不是,则交换机执行转发操作。如果是,则交换机执行丢弃操作。
  1. 如果进入交换机的是一个广播帧,则交换机不会去查MAC地址表,而是直接执行泛洪操作
  2. 如果进入交换机的是一个组播帧,则交换机的处理行为比较复杂,以后再做详细解释。

另外,交换机还具有学习能力。当一个帧进入交换机后,交换机会检查这个帧的源MAC地址,并将该源MAC地址与这个帧进入交换机的那个端口进行映射,然后将这个映射关系存放进MAC地址表。(根据源MAC地址丰富MAC地址表

1.3 交换机初始状态

交换机和路由器_数据帧_03

初始状态下,交换机并不知道所连接主机的MAC地址,所以MAC地址表为空。本例中,SWA为初始状态,在收到主机A发送的数据帧之前,MAC地址表中没有任何表项。

1.4 学习MAC地址

交换机和路由器_优先级_04
主机A发送数据给主机C时,一般会首先发送ARP请求来获取主机C的MAC地址,此ARP请求帧中的目的MAC地址是广播地址,源MAC地址是自己的MAC地址。SWA收到该帧后,会将源MAC地址和接收端口的映射关系添加到MAC地址表中。缺省情况下,X7系列交换机学习到的MAC地址表项的老化时间为300秒。如果在老化时间内再次收到主机A发送的数据帧,SWA中保存的主机A的MAC地址和G0/0/1的映射的老化时间会被刷新。此后,如果交换机收到目标MAC地址为00-01-02-03-04-AA的数据帧时,都将通过G0/0/1端口转发。

1.5 转发数据帧

交换机和路由器_路由协议_05
本例中主机A发送的数据帧的目的MAC地址为广播地址,所以交换机会将此数据帧通过G0/0/2和G0/0/3端口广播到主机B和主机C。

1.6 目标主机回复

交换机和路由器_优先级_06
主机B和主机C接收到此数据帧后,都会查看该ARP数据帧。但是主机B不会回复该帧,主机C会处理该帧并发送ARP回应,此回复数据帧的目的MAC地址为主机A的MAC地址,源MAC地址为主机C的MAC地址。SWA收到回复数据帧时,会将该帧的源MAC地址和接口的映射关系添加到MAC地址表中。如果此映射关系在MAC地址表已经存在,则会被刷新。然后SWA查询MAC地址表,根据帧的目的MAC地址找到对应的转发端口后,从G0/0/1转发此数据帧。

2、IP路由

以太网交换机工作在数据链路层,用于在网络内进行数据转发。而企业网络的拓扑结构一般会比较复杂,不同的部门,或者总部和分支可能处在不同的网络中,此时就需要使用路由器来连接不同的网络,实现网络之间的数据转发。

2.1 自治系统(Autonomous System)

根据RFC1030的定义,自治系统是由一个单一实体管辖的网络,这个实体可以是一个互联网服务提供商,或一个大型组织机构。自治系统内部遵循一个单一且明确的路由策略。最初,自治系统内部只考虑运行单个路由协议;然而,随着网络的发展,一个自治系统内现在也可以支持同时运行多种路由协议。

在一个自治系统中的所有路由器必须相互连接,运行相同的路由协议,同时分配同一个自治系统编号。自治系统号由一个16bit的整数标示,是NIC统一分配和管理的

2.2 LAN和广播域

交换机和路由器_路由表_07

路由器工作在网络层,隔离了广播域,并可以作为每个局域网的网关,发现到达目的网络的最优路径,最终实现报文在不同网络间的转发。

此例中,RTA和RTB把整个网络分成了三个不同的局域网,每个局域网为一个广播域。LAN1内部的主机直接可以通过交换机实现相互通信,LAN2内部的主机之间也是如此。但是,LAN1内部的主机与LAN2内部的主机之间则必须要通过路由器才能实现相互通信。

2.3 路由选路

交换机和路由器_mac地址_08

路由器收到数据包后,会根据数据包中的目的IP地址选择一条最优的路径,并将数据包转发到下一个路由器,路径上最后的路由器负责将数据包送交目的主机。

数据包在网络上的传输就好像是体育运动中的接力赛一样,每一个路由器负责将数据包按照最优的路径向下一跳路由器进行转发,通过多个路由器一站一站的接力,最终将数据包通过最优路径转发到目的地。当然有时候由于实施了一些特别的路由策略,数据包通过的路径可能并不一定是最佳的。

路由器能够决定数据报文的转发路径。如果有多条路径可以到达目的地,则路由器会通过进行计算来决定最佳下一跳。计算的原则会随实际使用的路由协议不同而不同。

2.4 IP路由表

交换机和路由器_优先级_09

路由器转发数据包的关键是路由表。路由表中包含了路由器可以到达的目的网络。目的网络在路由表中不存在的数据包会被丢弃。

每个路由器中都保存着一张路由表,表中每条路由表项都指明了数据包要到达某网络或某主机应通过路由器的哪个物理接口发送,以及可到达该路径的哪个下一跳路由器,或者不再经过别的路由器而直接可以到达目的地。

路由表中包含了下列关键项:

  • 目的地址(Destination):用来标识IP数据包的目的地址或目的网络。
  • 网络掩码(Mask):在路由表中网络掩码也具有重要的意义。IP地址和网络掩码进行“逻辑与”便可得到相应的网段信息。网络掩码的另一个作用还表现在当路由表中有多条目的地址相同的路由信息时,路由器将选择其掩码最长的一项作为匹配项。
  • 路由协议(Proto)
  • 路由优先级(Pre)
  • 路由度量(Cost)
  • 输出接口(Interface):指明IP数据包将从该路由器的哪个接口转发出去。
  • 下一跳IP地址(NextHop):指明IP数据包所经由的下一跳路由器的接口地址。

2.5 路由优先级

路由器可以通过多种不同协议学习到去往同一目的网络的路由,当这些路由都符合最长匹配原则时,必须决定哪个路由优先。也就是说路由优先级由路由协议决定。

每个路由协议都有一个协议优先级(取值越小、优先级越高)。当有多个路由信息时,选择最高优先级的路由作为最佳路由。

如图所示,路由器通过两种路由协议学习到了网段10.1.1.0的路由。虽然RIP协议提供了一条看起来更加近的路线,但是由于OSPF具有更高的优先级,因而成为优选路由,并被加入路由表中。

交换机和路由器_路由表_10
交换机和路由器_路由协议_11

2.6 路由度量

如果路由器无法用优先级来判断最优路由(路径的协议相同),则使用度量值(metric)来决定需要加入路由表的路由。metric值越小,路由越优先;

一些常用的度量值有:跳数,带宽,时延,代价,负载,可靠性等。跳数是指到达目的地所通过的路由器数目。带宽是指链路的容量,高速链路开销(度量值)较小。

因此,图示中metric=1+1=2的路由是到达目的地的最优路由,其表项可以在路由表中找到。

交换机和路由器_路由协议_12

根据比较“路由优先级”和“路由度量”,设备可以产生最优路径的IP路由表。根据来源的不同,路由表中的路由通常可分为以下三类:

  • 链路层协议发现的路由(也称为接口路由或直连路由)。Direct
  • 由网络管理员手工配置的静态路由。Static
  • 动态路由协议发现的路由。OSPF

2.7 最长匹配原则

路由器在转发数据时,需要选择路由表中的最优路由。

当数据报文到达路由器时,路由器首先提取出报文的目的IP地址,然后查找路由表,将报文的目的IP地址与路由表中某表项的掩码字段做“与”操作,“与”操作后的结果跟路由表该表项的目的IP地址比较,相同则匹配上,否则就没有匹配上。 当与所有的路由表项都进行匹配后,路由器会选择一个掩码最长的匹配项

交换机和路由器_mac地址_13
如图所示,路由表中有两个表项到达目的网段10.1.1.0,下一跳地址都是20.1.1.2。如果要将报文转发至网段10.1.1.1,则10.1.1.0/30符合最长匹配原则。

路由器转发数据包过程:路由器收到一个数据包后,会检查其目的IP地址,然后查找路由表。查找到匹配的路由表项之后,路由器会根据该表项所指示的出接口信息和下一跳信息将数据包转发出去。

路由器选择最优路由的顺序是什么?

路由器在选择最优路由时,会首先根据路由的优先级选择哪些路由可以放入路由表中;如果优先级相等,再比较metric数值,决定哪些路由放入路由表;

最后在查路由表时根据最长掩码匹配原则选择路由表项指导数据报文转发。