关闭

交换技术浅谈

标签: 交换机工作原理及转发流程二层交换原理三层交换原理交换机转发
759人阅读 评论(0) 收藏 举报
分类:
  • 二层交换技术的工作原理
由于二层交换技术是在数据链路层进行的,因此交换机对数据报文的转发是建立在MAC地址之上的,对于IP网络协议来说,它是透明的,即交换机在转发数据报文时,无须知道信源机和信宿机的IP地址,只需知其物理地址(MAC 地址)即可。交换机在工作过程当中会不断的检测报文的源和目的MAC地址来建立MAC地址表,这个表说明了某个MAC 地址是在哪个端口上被发现的。这样当交换机收到一个报文时,它便会看一下该数据报文的目的MAC地址,核对一下自己的MAC地址表以确认应该从哪个端口把数据报文发出去;但若交换机收到的报文在目的MAC地址不能在地址表中找到时,交换机会把IP报文广播出去——这正是二层交换机的弱点所在。总之,就是基于“源MAC学习,目的MAC转发”的方式工作。
  • 三层交换技术的工作原理
对同样目的IP的第一个报文,采用与软件路由器同样的IP寻径转发技术,通过查询转发信息库(路由表、MAC表),来确定IP包的下一跳IP地址和转发的目的网络接口,将报文转发出去。同时,软件将转发到对应目的IP所需的信息设置到硬件上相应的转发CACHE(可以视为硬件路由表)中。
以后收到发往相同目的地的报文,则直接通过硬件进行转发,无需经过软件选路过程。三层交换机之所以转发报文的速度很快,在很大程度上都是这个三层硬件路由表的功劳,因为当它记录了报文的目的MAC地址时,就可以直接通过硬件来实现转发,速度极快。
  • VLAN技术
VLAN技术允许网络管理者将一个物理的LAN逻辑地划分成不同的广播域(或称虚拟LAN,即VLAN),每一个VLAN都包含一组有着相同需求的计算机工作站,与物理上形成的LAN有着相同的属性。一个VLAN内部的广播和单播流量都不会转发到其他VLAN中,从而有助于控制流量、减少设备投资、简化网络管理、提高网络的安全性。引入了VLAN以后,对二层交换机的报文转发线程产生了如下的影响:

VLAN与二层交换的规则:
(1)主机和交换机之间传送的是untagged报文
(2)交换机之间用干道链路(Trunk)连接,干道链路上传输的是Tagged Frame
(3)交换机用Tag来标识报文所属的VLAN

(4)不同VLAN之间在二层不能相互通讯

  • 下面举例说明基于VLAN技术的二层转发,三层转发过程


如图所示:交换机上划分了两个VLAN——VLAN1和VLAN2,同时交换机中配置了路由接口来实现VLAN1和VLAN2的互通。可以看到主机A和B属于VLAN1,网关为1.1.1.1;主机C属于VLAN2,网关为2.2.2.2,另外还假设主机A、B、C的ARP表里面均没有彼此的MAC地址。
  • 二层转发过程(A向B发起Ping请求)
1)A检查报文的目的IP地址,发现和自己在同一网段,需要进行二层转发;
2)A检查自己的ARP表,发现B的MAC地址不在自己的ARP表里(注意:ARP表里记录了IP地址和MAC地址之间的对应关系,因而需要首先检查ARP表,通过目的IP地址得到MAC地址,再进行数据报文的发送操作);
3)A——> Switch发出ARP请求报文(注意:① ARP请求报文是广播报文;② 事实上,在二层转发时是A——>B发出ARP请求报文,但需要经过交换机进行转发);
4)Switch学习A的MAC地址到自己的MAC地址表(注意:MAC地址表是二层转发引擎,并且在二层转发时不能学习到Switch的ARP表和三层硬件转发表),并广播ARP请求报文;
5)B接收到ARP请求报文,学习A的MAC地址到自己的ARP表;
6)B——> Switch发出ARP回应报文;
7)Switch学习B的MAC地址到自己的MAC地址表,并向A发出ARP回应报文;
8)A接受到B的ARP回应报文,并学习B的MAC的地址;
9)A——> Switch发出ICMP请求报文;
10)Switch——>B转发ICMP请求报文;
11)B——> Switch发出ICMP回应报文;
12)Switch——>A转发ICMP回应报文。
  • 三层转发过程(A向C发起Ping请求)
1)A检查报文的目的IP地址,发现和自己不在同一网段,则需要进行三层转发,通过网关转发报文信息;
2)A检查自己的ARP表,发现网关的MAC地址不在自己的ARP表里;
3)A——>Switch(网关)发出ARP请求报文;
4)Switch将A的MAC地址学习到自己的MAC地址表、ARP表和三层硬件转发表(即IP fdb Table);
5)Switch——>A发出ARP回应报文;
6)A接收ARP回应报文,并学习Switch(VLAN1路由口)的MAC地址;
7)A——>Switch发出ICMP请求报文(注意:报文中的目的MAC地址是VLAN1的,源MAC地址是A的,目的IP地址是C的,源IP地址是A的);
8)Switch接收ICMP请求报文,判断出该报文是三层报文(原因:目的MAC地址与Switch的MAC地址相同);
9)Switch检查自己的路由信息表,发现报文的目的IP地址在自己的直连网段;
10)Switch——>C发出ARP请求报文,该报文在VLAN2内广播;
11)C接受到ARP请求报文,并学习Switch(VLAN2路由接口)的MAC地址;
12)C——>Switch发出ARP回应报文;
13)Switch学习C的MAC地址;
14)Switch——>C转发ICMP请求报文(注意:目的MAC地址是C的,源MAC地址是VLAN2的,目的IP地址是C的,源IP地址是A的);
15)C——>Switch发出ICMP回应报文;
16)Switch——>A转发ICMP回应报文。
  • 小结
从上面的例子可以看到,三层交换机划分了两个VLAN,A与B之间的通信是在一个VLAN内完成的,相对于交换机而言属于二层数据流;而A与C之间的通信需要跨越VLAN,因此属于三层数据流。下面讨论三层转发技术需要特别注意的几个问题:
(1)交换机如何判断一个报文是二层报文还是三层报文呢?从上面的例子中可以看出,从A到B的报文由于在同一个VLAN内部,因此目的MAC地址是B的MAC地址;而从A到C的报文由于需要跨越VLAN,这样报文的目的MAC地址是Switch设备虚接口上VLAN1的MAC地址。简单来说,就是当报文的目的MAC地址与Switch的MAC地址相同时,该报文就为三层报文。
(2)三层转发的几个相关的数据表格:MAC地址表(FIB Table),路由表(Route Table),ARP表(ARP Table),三层硬件转发表(IP fdb Table)。
MAC地址表是二层转发引擎,主要记录MAC地址和报文发出的端口信息之间的对应关系;路由表记录路由信息;ARP表服务于三层转发,主要记录IP地址与MAC地址之间的对应关系;三层硬件转发表能够记录路由接口和VLAN的对应关系,以及下一跳的MAC地址和对应端口信息。其中三层硬件转发表(IP fdb Table)的所有信息均来源于ARP表和MAC地址表,当这两个表发生变化时,IP fdb Table也随着变化。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:50070次
    • 积分:819
    • 等级:
    • 排名:千里之外
    • 原创:29篇
    • 转载:21篇
    • 译文:1篇
    • 评论:3条
    文章分类
    最新评论