搜档网
当前位置:搜档网 › M000 0026 三层交换机基本原理(中文版 1.1)

M000 0026 三层交换机基本原理(中文版 1.1)

M000 0026 三层交换机基本原理(中文版 1.1)
M000 0026 三层交换机基本原理(中文版 1.1)

1.1 VLAN间路由

1.1.1 VLAN间路由的需求

1.1.1.1 二层网络广播问题

′ú°áo??ê÷??——?á°¤ê÷??

′ú°áo??

?á°¤D?

l2¨ê±3á′ú°áo??ê÷??£?ò?μ?ê÷???ê????μ??á°¤D?£?3aê÷????á£??2?3á

?a·?£?ê÷???á°¤?ìó?£?í§??ì?o3£?°????ü?í?£

二层交换式网络中,整个网络是一个扁平的结构。网络全部由二层交换机构造起

来,整个网络是一个大的广播域。

在以太网中,所谓广播域就是指在一个网络中,广播帧(目的MAC地址为

ff-ff-ff-ff-ff-ff的帧)将要被转发的最大范围。

在二层交换机中,交换机仅根据MAC地址进行帧的选路和转发,当一个完整正

确的以太网帧从一个交换机端口上被接收上来以后,交换机将在自己维护的

MAC地址表中去查找地址,根据地址类型的不同和查找结果的不同情况,交换

机对帧采取不同的处理。

单播帧(Unicast),目的地址在MAC地址表中存在:

按照目的地址在地址表中的表项所指的输出端口,将帧转发到相应的端口上。

(单播MAC地址在地址表中只能指向一个输出端口)

单播帧(Unicast),目的地址在MAC地址表中不存在:

在广播域的所有端口上广播该帧

多播帧(Multicast),目的地址在MAC地址表中存在:

按照目的地址在地址表中的表项所指的输出端口,将帧转发到相应的端口上。(多播MAC地址在地址表中可以指向一个或一组输出端口)

多播帧(Multicast),目的地址在MAC地址表中不存在:

在广播域的所有端口上广播该帧

广播帧(Broadcast):

在广播域的所有端口上广播该帧

在扁平的二层网络上,广播域是整个网络,当出现广播帧或在地址表中不能匹配到目的地址的帧的时候,帧将被广播到整个网络上,全部的主机都将接收到。由于网络广播和目的地址未匹配的帧的普遍存在,当二层网络的规模增加,应用多样化后,网络的广播流量将增加,对整个网络的效率产生较大影响

由于整个网络在一个广播域,所有的用户都能够不受控制地直接访问网络的所有部分,并能够影响到网络的所有部分的正常运行,因此对于网络的安全性也造成一定的威胁。

1.1.1.2 VLAN 隔离二层广播域 VLAN μ??è′ú°á?á°¤D?

l VLAN μ??è?è′ú°á?á°¤D?£??°?ê?ìμ?3?μ??è?èμeμ?VLAN ó?1a3á??·??e

??£??ó??D?°?ê?VLAN 3áDà?§°?áü?¤ì-ê¨í??£

VLAN 100VLAN 200

VLAN 300

为了解决网络由广播导致的效率下降和安全性等问题,VLAN 的概念被引入,在支持VLAN 功能的交换机组成的网络中,每一个VLAN 被设计为一个独立的广播域。

VLAN 之间被严格地隔离开来,任何一个帧都不能从自己所属的VLAN 被转发到其他的VLAN 中。整个网络被划分为若干个规模更小的广播域,网络的广播被控制在相对比较小的范围内,提高了网络的带宽利用率,改善网络效率和性能。 每一个人都不能随意地从网络上的一点,毫无控制地直接访问另一点的网络或监听整个网络上的帧,隔离的广播域改善了网络的安全性。

VLAN 可以实现对用户的分组,通过配置VLAN 可以实现灵活的网络管理,同时在网络迁移的时候,由于交换机的灵活配置,可以轻松修改网络的设计,而不需要修改网络的布线等烦琐、耗时的工作。

1.1.1.3 连接不同的VLAN —VLAN 间路由 VLAN 1aê¨í?

l °?ê?VLAN ó?1a3á?e??°?áüóaoD???oVLAN 3áa?o?£?íˉ?§??Dà??D?£?ê¨

?ù??D?o¨a¨?á2D??μ?VLAN ?§?¢3o?íêà??μ?VLAN ?£

VLAN 100VLAN 200

VLAN 300

“无连不成网”,一个网络在使用VLAN 隔离成多个广播域后,各个VLAN 之间是不能互相访问的,因为各个VLAN 的流量实际上已经在物理上隔离开来了。 隔离网络并不是建网的最终目的,选择VLAN 隔离只是为了优化网络,最终我们还是要让整个网络能够畅通起来。

VLAN 之间的通信的解决方法是,在VLAN 之间配置路由器,这样VLAN 内部的流量仍然通过原来的VLAN 内部的二层网络进行,从一个VLAN 到另外一个VLAN 的通信流量,通过路由在三层上进行转发,转发到目的网络后,再通过二层交换网络把报文最终发送给目的主机。

由于路由器对以太网上的广播报文采取不转发的策略,因此中间配置的路由器仍然不会改变划分VLAN 所达到的广播隔离的目的。

在VLAN 之间做互联使用的路由器上,我们可以通过各种配置,比如对路由协议的配置、对访问控制的配置等等形成对VLAN 之间互相访问的控制策略,使网络处于受控的状态。

1.1.2 三层交换机做VLAN 间路由

1.1.

2.1 VLAN 间路由的解决方案 VLAN 1aê¨í?3á??D?????

l ??óe?ò?ì?aóàá??ìê÷??£?′?D???a?3?3áê¨í?£?óe?ò????′ˉ??ò?á??ìê÷

??£?°¢??a¨?áo?μ÷á??ìê÷???§?¢′÷°???óaoD?¢μ÷á?3áóe?ò?£

VLAN 1001.1.1.10/24VLAN 200

2.2.2.20/24

Ping 2.2.2.20

??a?3?ê¨í?

??Dàá??ìê÷??ê÷?? 1.1.1.0/24??oD??1

ê÷?? 2.2.2.0/24??oD??2

在划分了VLAN 并且使用路由器将VLAN 互联起来的网络中,网络的主机是怎么相互通信的呢?

首先,我们做这样一个定义:

我们认为处于相同VLAN 内部的主机叫做本地主机,与本地主机之间的通信叫做本地通信。处于不同VLAN 的主机叫做非本地主机,与非本地主机之间的通信我们叫做非本地通信。

对于本地通信,通信两端的主机同处于一个相同的广播域,两台主机之间的流量可以直接相互到达,通信的过程与扁平二层网络中的情况相同,这里不做描述了。 对于非本地通信,通信两端的主机位于不同的广播域内,两台主机的流量不能互相到达,主机通过ARP 广播请求也不能请求到对方的地址,此时的通信必须借助于中间的路由器来完成。

路由器在各个VLAN 中间,实际上是作为各个VLAN 的网关起作用的。因此要通过路由器来互相通信的主机必须知道这路由器的存在,并且知道它的地址。 在路由器配置好了之后,就要在主机上配置默认网关为路由器在本VLAN 上的接口的地址。

如上面图中所示,主机1.1.1.10要同2.2.2.20通信。

首先,主机1.1.1.10根据本地的子网掩码比较,发现目的主机不是本地主机,不能够直接访问目的主机;

根据IP通信的规则,主机1.1.1.10将要查找本机的路由表寻找相应的网关,在实际网络中,主机通常只配置了默认网关,因此这里主机1.1.1.10找到了默认网关。

然后,主机1.1.1.10在本机的ARP Cache中查找默认网关的MAC地址,如果没有则启动一个ARP请求的过程去发现。得到默认网关的MAC地址后,主机将帧转发给默认网关,由路由器转发。

路由器通过查找路由表将报文转发到相应的接口上面,然后查找到目的主机的MAC地址,将报文发送给目的主机。

目的主机收到报文后,回应的报文经历类似的过程又转发回主机1.1.1.10

了解到以上的过程后,应该可以了解到,VLAN之间的互通就和其他的网络配置相同,都不是简单地把设备放在那里就行了的,要根据网络的实际设计情况,同步地配置网络各个部分的设置。如果单独配置了路由器的地址,而没在主机上配置网关,VLAN间的通信依然是无法运行起来。

1.1.

2.2 路由器做VLAN间路由的局限

à?μ?VLAN??μ????í??oD

VLAN 100VLAN 200

VLAN 300

l??′ú°áo???ò?ì?aóàVLAN£?à???μ?VLAN??Dà??é?′?ò13á???í??oD??

oD3o??D??e3á??μ?oD???ì?£

如上文所述,VLAN之间的通信使用路由器进行,那么在建立网络的时候就有个联网的选择问题。

按照传统的建网原则,我们应该从每一个需要进行互通的VLAN单独建立一个物理连接到路由器,每一个VLAN都要独占一个交换机端口和一个路由器的端口。

在这样的配置下,路由器上的路由接口和物理接口是一对一的对应关系,路由器在进行VLAN间路由的时候就要把报文从一个路由接口上转发到另一个路由接口上,同时也是从一个物理接口上转发到其他的物理接口上去。

??DàVLAN Trunking

VLAN 100VLAN 200

VLAN 300

l′ú°áo???ò?ì·ê??D??e?ì?aóàè?à?ó?1aì-??3á′è????DàVLAN

Trunking£???′-μ?VLAN?°ìíê???é????í??oD3o??D??£

使用VLAN Trunking技术可以优化上面一个网络。

VLAN Trunking的概念在VLAN一章已经介绍过,使用这种技术,可以使多个VLAN的业务流量共享相同的物理连接,通过在VLAN Trunking的物理连接上传递打标记的帧将各个VLAN的流量区分开来。

在做VLAN间互通的时候,对于网络中多个VLAN,只需要共享一条物理链路。在交换机上配置连接到路由器的端口使用VLAN Trunking,在路由器上也做相同的配置。

在这样的配置下,路由器上的路由接口和物理接口是多对一的对应关系,路由器在进行VLAN间路由的时候把报文从一个路由接口上转发到另一个路由接口上,但从物理接口上看是从一个物理接口上转发回同一个物理接口上去,但是VLAN 标记在转发后被替换为目标网络的标记。

这样,在通常的情况下,VLAN间路由的流量不足以达到链路的线速度,使用VLAN Trunking的配置,可以提高链路的带宽利用率,节省端口资源,和简化管理(例如:当网络需要增加一个VLAN的时候,只要维护一下设备的配置就行了,不需要对网络布线进行修改)

使用VLAN Trunking之后,用传统的路由器进行VLAN之间的路由在性能上还有一定的不足:由于路由器利用通用的CPU,转发完全依靠软件进行,同时支持各种通信接口,给软件带来的负担也比较大。软件要处理包括报文接收、校验、查找路由、选项处理、报文分片,导致性能不能做到很高,要实现高的转发率就会带来高昂的成本。由此就诞生了三层交换机,利用三层交换技术来进一步改善性能。

1.1.

2.3 基于内部硬件路由引擎的三层交换机 o??·ê??D?3á1ˉ±?

l ′ú°áo???ò?ì·ê??D??e???¥áü?ì3á1ˉ±??±??è?ù°áo???ò£??ù°áo??

?ò???¥áü?ì?3ìó?èVLAN 3á???ó?¢VLAN á?°?3á′ú°áo??·êVLAN 1a??

D?3á?¥áü?£

VLAN 100VLAN 200

VLAN 300

VLAN 100VLAN 200

VLAN 300

三层交换机的产生,给网络带来巨大的经济效益。

三层交换机使用硬件技术,采用巧妙的处理方法把二层交换机和路由器在网络中的功能集成到一个盒子里,提高了网络的集成度,增强了转发性能。

为了实现各种异构网络的互连,IP 协议实现了十分丰富的内容,标准的IP 路由需要在转发每一个IP 报文的时候做很多处理,经过很多流程,就象前面所说的给软件带来巨大负担的工作。

但是这样的工作并不是在处理每一个报文都必须的,绝大多数的报文只需要经过很少一部分的过程,IP 路由的方法有很大的改进余地。

三层交换机的设计基于对IP 路由的仔细分析,把IP 路由中每一个报文都必须经过的过程提取出来,这个过程是个十分简化的过程:

l IP 路由中绝大多数报文是不包含IP 选项的报文,因此处理报文IP 选项的工

作在多数情况下是多余的

l 不同的网络的报文长度都是不同的,为了适应不同的网络,IP 实现了报文分

片的功能,但是在全以太网的环境中,网络的帧(报文)长度是固定的,因此报文分片的功能也是一个可以裁减的工作

l 三层交换机采用了和路由器的最长地址掩码匹配不同的方法,使用精确地址

匹配的方式处理,有利于硬件实现快速查找

l 三层交换机采用了Cache 的方法,把最近经常使用的主机路由放到了硬件

的查找表中,只有在这个Cache 中无法匹配到的项目才会通过软件去转发。

这样,只有每个流的第一个报文会通过软件进行转发,其后的大量数据流则可以在硬件中得以完成

三层交换机在IP路由的处理上做了以上改进,实现了简化的IP转发流程,利用专用的芯片实现了硬件的转发,这样绝大多数的报文处理都在硬件中实现了,只有极少数报文才需要使用软件转发,整个系统的转发性能能够得以成百上千倍地增加。相同性能的设备在成本上得以大幅度下降。

1.1.3 三层交换机基本介绍

?ù°áo???ò?¥áüá£íê

10.110.0.113/24 G:10.110.0.25410.110.1.69/24

G:10.110.1.254

10.110.1.88/24

G:10.110.1.254

10.110.2.200/24

G:10.110.2.254

ETH0:10.110.0.254/24

ETH1:10.110.1.254/24

ETH2:10.110.2.254/24

l三层交换机功能上相当于图中虚线框中的部分。

l三层交换机把支持VLAN的二层交换机和路由器的功能集成在一起了,因此也常常称之为二三层交换机。

l二层交换机的功能和路由器的功能,在三层交换机中分别体现为二层VLAN 转发引擎和三层转发引擎两个部分。

l二层VLAN引擎与支持VLAN的二层交换机的二层转发引擎是相同的,是用硬件支持多个VLAN的二层转发。

l三层转发引擎使用硬件ASIC技术实现高速的IP转发。

l对应到IP网络模型中,每个VLAN对应一个IP网段,三层交换机中的三层转发引擎在各个网段(VLAN)间转发报文,实现VLAN之间的互通,因此三层交换机的路由功能通常叫做VLAN间路由(Inter-VLAN Routing)。

?ù°áo???òóí3á??D?·ê′ú°áo??

l′ú°áo???ù??£·?3ìóê???ê÷′?á?3á?ìè?′ú°á?§?¢

l?ù°á??D??ù??£·?3ìó??ê÷′?3á?ù°á??D??§?¢

每一个VLAN对应一个IP网段,在二层上,VLAN之间是隔离的。这一点跟二层交换机中的交换引擎的功能是一模一样的。

l不同的IP网段之间的访问要跨越VLAN,要使用三层转发引擎提供的VLAN 间路由功能(相当于路由器)

l在使用二层交换机和路由器的组网中,每个需要与其他IP网段(VLAN)通信的IP网段(VLAN)都需要使用一个路由器接口做网关。

l三层交换机的应用也同样符合IP的组网模型,三层转发引擎就相当于传统组网中的路由器的功能,当需要与其他VLAN通信的时候也要为之在三层交换引擎上分配一个路由接口,用来做VLAN的网关

l在三层交换机上的这个路由接口是在三层转发引擎和二层转发引擎上的,是通过配置转发芯片来实现的,与路由器的接口不同,这个接口不是直观可见的。

在VLAN指定路由接口的操作实际上就是为VLAN指定一个IP地址、子网掩码和MAC地址,MAC地址是由设备制造过程中分配的,在配置过程中由交换机自动配置。

a¨?á3oa¨?á3á?ù°áo??1??

12

3

1231231

23l 2¨ê±?ù°á1??′?à?μ?a¨?áo÷í2¥?í£?°¢??D?3??ù°á3?ó??§?¢a¨?á?£òà

???o?¨±??§a¨?á3oa¨?ᣨPx P £|?£

报文到报文的交换方式与流交换方式的区别:如果每一个报文都要经历第三层处理,并且业务流转发是基于第三层地址的,这种交换方式就是报文到报文交换方式;如果只是第一个报文经过第三层处理,其他后续报文只进行第二层转发,这种交换方式就是流交换方式。

在上图报文到报文的流活动中,报文进入系统中OSI 参考模型的第一层物理接口,然后到达第二层接口进行目的MAC 地址检查,如果查表检查的结果是不能交换则进入到第三层。在第三层,报文经过路由计算、地址解析等处理,经过三层处理后,报文头被修改并被传回第二层,二层确定合适的输出端口后,报文通过第一层传送到物理介质上。对于后续的每一个报文的转发,都要经过这样的一个过程。

??D??eo??3á?ù°áo??1??

l °????ù°á2¥?íè?Día¨?á3á3á?o?¨±?ó??§?eo??£¨FS £|?£

3???μ?a¨?á

·?í÷a¨?á

12

3

1231231

23

在流交换中,第一个报文被分析以确 定其是否表示了一个“流”或者一组具有相同源地址和目的地址的报文,如果第一个报文具有了正确的特征,则该标识流中的后续报文将拥有相同的优先权,同一流中的后续报文被交换到基于第二层的目的地址,流交换节省了检查每一个报文要花费的处理时间。 现在三层交换机为了实现高速交换,都采用流交换的方式。

?ù°áo???ò?

§?

¢?e±é

′ú°áo??

á£?°

MACaíVLANaí?ù°á??D?

á£?°

??D?a

í

′-°á

?e?

ó?-

?e?

ó?-

????a

í

′-°á?e2¥?í

?e2¥?í??í?a

í

£¨oD?è2÷?í?1?÷/D?ì?1′£|°???/?ü?í?

ú???e

??é¨ê÷?

ó

??é¨ê÷?

ó

?á°¤?ó

?2

ó§

?e

o?

?

ê÷?

ó?

§?

?á°¤?

ó·ê?T?

¨??D?3á?

ó?

ó?

§?

假设两个使用IP协议的站点(源站点A、目的站点B)通过第三层交换机,通信的过程如下:

- 源站点A在开始发送时,已知目的站的IP地址,但尚不知道在局域网上发送所需要的MAC地址。首先需要采用地址解析(ARP)来确定目的站的MAC地址。源站点把自己的IP地址与目的的站的IP地址比较。

- 若目的站B与源站A在同一子网内,源站A广播一个ARP请求,目的B站返回其MAC地址,A站得到目的站点B的MAC地址后将这一地址缓存起来存放在ARP表中,并用此MAC地址封装包后转发数据。三层以太网交换机的第二层交换模块根据源站A发送的以太网帧中的目的MAC地址查找MAC地址表确定将数据包发向目的端口。

- 若目的站B与源站A不在同一子网内,如源站A要与目的站B通信,源站A 要向“缺省路径(其软件中配置的网关地址)”发出ARP封装包,“缺省路径”的IP地址实际上对应所连接第三层交换机的一个路由接口,即连接源站A的物理端口所属VLAN接口。

当发源站A对“缺省路径”的IP地址广播出一个ARP请求时,交换机回相应路由接口(即发源站A的“缺省路径”)的MAC地址给源站。第三层交换模块在以往的通信过程中已得到目的站B的MAC地址,则直接将数据包以此MAC地址封装并发向目的站B;

否则则提取出输入帧的IP包去查路由表,根据路由表中的路由信息向目的站网段广播一个ARP请求,目的站B得到此ARP请求后,向第三层交换模块回复其

MAC地址,以后,当再进行站点A与站点B之间的数据包转发时,将用最终的目的站点B的IP地址为索引查找底层硬件转发表,得到出端口与对应的MAC地址,并用查到MAC地址封装包,从查到的出端口将数据转发出去;数据转发过程全部交给第二层交换处理,因此信息得到高速交换。

相关主题