二三层转发
二层交换机原理:
l 接收网段上所有的数据帧
l 利用接收数据帧上SM来建立MAC表,使用地址老化机制进行地址表的维护
l 在MAC地址中查找数据帧中的目的MAC地址,找到就发送到相应的端口,否则发全局报文
l 向所有的端口转发广播帧和多播帧
三层交换机:
l 通过硬件实现查找和转发
l 转发路由表需要通过路由协议来建立和维护(传统路由器通过微处理器来实现查找和转发)
l 将路由和交换的功能集成一体
l 采用的结构是几种路由管理
二层交换机缺点:
l 由于根据MAC二层转发,冲突域限制到端口,但是无法限制广播域
三层交换机缺点:
l 广域网接口带宽不足,路由性能低下
解决办法:将网络中没有需求的主机隔离开--------------vlan
l 路由器将网络分段--昂贵
l 通过vlan划分广播域(一个vlan对应一个广播域)
VLAN二层交换规则:
l 主机与交换机之间传递的是untagged报文
l 交换机之间用于干道链路是Trunk连接
l 交换机用Tag来标识所属的vlan
l 干道链路传输的是Tagged Frame
l 不同vlan之间在二层不能通信
l 用三层路由实现vlan间通信
二三层转发的区别:
l 二层转发针对本网段的数据转发,查询PCT表(MAC表),关键看MAC
l 三层转发针对不同网段的数据转发,查询FIB表(路由表),关键看IP
l ARP是两个表的中间环节
二三层转发的判断:
l 发送端
SI & 网关掩码 是否相等 DI & 网关掩码
相等:同一网段,走二层转发
不相等:非同一网段,走三层转发
l 接收端
报文的DM 是否相等 端口的MAC
相等:走三层转发
不相等:走二层转发
例子:A/B, C/D为同一网段的主机,各自在同一vlan而且各自的地址已知,
A、要求实现A到B或者C到D通信。此时为二层转发。
1.A--B
SI和DI处于同一网段,二层转发,查PCT表,此时端口为空。
进行广播处理,向所有端口发送,B接收。交换机添加A的信息至PCT表
MAC |
VLAN |
接口(物理口) |
MAC-A |
Vlan1 |
1 |
2.B--A
此时B到A是第一次发送,查PCT表,端口为空。
进行广播处理,A接收。交换机添加A的信息至PCT表
MAC |
VLAN |
接口(物理口) |
MAC-A |
Vlan1 |
1 |
MAC-B |
Vlan1 |
2 |
至此,A-B间MAC表建立完成。当再次通话时,查询PCT表,找到对应的接口即可。
B、要求实现A/B到C/D之间的通信。此时为三层转发。
此时涉及到A,C,交换机还有路由器。如下图
1.A-C先检查是否同网段,发现不是,走三层转发。由于是初次通话,路由表,MAC表都为空。所以发广播报文。
ARP请求
DM |
SM |
以太帧类型 |
映射帧类型 |
SI |
DI |
DATA |
全f |
Mac-A |
0x0806 |
0x0800 |
Ip-A |
Ip-r1 |
数据 |
2.SW1收到报文,添加vlan1标签在报文后,更新MAC表项。同时在同一vlan内广播
ARP请求
DM |
SM |
帧类型 |
Vlan |
以太帧类型 |
映射帧类型 |
SI |
DI |
DATA |
全f |
Mac-A |
0x8100 |
Vlan1 |
0x0806 |
0x0800 |
Ip-A |
Ip-r1 |
数据 |
3.路由器收到sw1报文,更新路由表,同时将A的MAC和IP更新至ARP表,将A的MAC和vlan更新值MAC表。进行ARP响应
ARP响应
DM |
SM |
帧类型 |
Vlan |
以太帧类型 |
映射帧类型 |
SI |
DI |
DATA |
Mac-A |
Mac-r1 |
0x8100 |
Vlan1 |
0x0806 |
0x0800 |
Ip-r1 |
Ip-A |
数据 |
4.SW1的S2收到响应,更新SM和vlan至MAC表。同时根据DM和Vlan查MAC表,命中S1接口,去标签,s1发出。
ARP响应
DM |
SM |
以太帧类型 |
映射帧类型 |
SI |
DI |
DATA |
Mac-A |
Mac-r1 |
0x0806 |
0x0800 |
Ip-r1 |
Ip-A |
数据 |
5.A,更新r1的MAC和IP至ARP表,更新r1的MAC至MAC表,发送ICMP回显请求
ICMP回显请求
DM |
SM |
协议类型 |
协议 |
ICMP类型 |
SI |
DI |
DATA |
Mac-r1 |
Mac-A |
0x0800 |
1 |
8 |
Ip-A |
Ip-C |
数据 |
6.S1收到报文,加vlan1标签,根据DM和vlan(r1)查MAC表,命中S2
ICMP回显请求
DM |
SM |
帧类型 |
Vlan |
协议类型 |
协议 |
ICMP类型 |
SI |
DI |
DATA |
Mac-r1 |
Mac-A |
0x8100 |
Vlan1 |
0x0800 |
1 |
8 |
Ip-A |
Ip-C |
数据 |
至此,A到路由器的所有表项建立完成。下面是路由器至C的转发过程,同上述。