- 二层交换技术的工作原理
- 三层交换技术的工作原理
以后收到发往相同目的地的报文,则直接通过硬件进行转发,无需经过软件选路过程。三层交换机之所以转发报文的速度很快,在很大程度上都是这个三层硬件路由表的功劳,因为当它记录了报文的目的MAC地址时,就可以直接通过硬件来实现转发,速度极快。
- 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请求)
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请求)
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回应报文。
- 小结
(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也随着变化。