一、技术背景
虽然单臂路由解决了 vlan间的路由问题
单臂路由 所有的流量都要经过 经过 主干链路,流量过大,容易形成流量瓶颈
单臂路由,一旦出现单点故障,对下 vlan,所有vlan就不能通信了
使用基于 Eth-Trunk的单臂路由可以解决这个问题,还是有流量瓶颈不足的风险
二、三层交换的概念
- 使用多层交换的实质是把内网的交换机,更换为带有 路由功能 的多层交换机,
- 通过在多层交换机上配置 vlanif(SVI)虚拟接口, 作为每个VLAN的网关,进而实现跨VLAN通信的效果
三、三层交换如何实现
- 借助三层交换机,通过交换机的二层交换技术+三层转发技术。
- 它解决了局域网中网段划分之后,网段中子网必须依赖路由器进行管理的局面,解决了传统路由器低速、复杂所造成的网络瓶颈问题。
- 早期 将路由器和交换机 焊接在一起,彻底摆脱 存在链路 导致的 流量瓶颈问题
- 开发出了一种 具有 路由 交换功能的 设备 :
三层交换机:既有三层(网络层)的路由功能,又有 二层的 交换功能 的设备 - 在三层交换机上存在三层的路由模块和二层的交换模块
- 通过在多层交换机上配置 vlanif(SVI)虚拟接口, 作为每个VLAN的网关,进而实现跨VLAN通信的效果
- vlanif——vlan interface 基于vlan的三层接口 这个接口是一个虚拟的接口,并且可以配置IP地址,同时支持路由功能的直连路由,vlanif接口可以作为三层交换机下方用户的网
- Cisco的叫法 :SVI switch virtual interface
四、三层交换的配置步骤
1.先创建vlan
2.将连接终端的接口划分到(access) 相对应的vlan之下
3.创建 vlanif/SVI接口
4.给vlanif/SVI接口 配置 IP地址
关于vlanif 实现双 up的条件
1.vlanif 想 生效(双 up),在相应的vlan之下,要有物理接口是up的
2.vlanif 想要生效,在相应的vlan下,没有物理接口,那么一定要有一个 激活的trunk接口,并且允许 vlanif 所对应的 vlan通过
五、三层交换通信过程
-
与运算 拿自己的源IP地址和目标IP地址进行与运算,结果 和自己的IP地址不一样的情况,就是跨网段通信,PC需要先把这个数据包给网关→PC1需要知道网关的MAC地址 ,查ARP缓存表(空)—触发ARP请求----广播 触发ARP泛洪
-
PC1——网关10.100 ARP的广播包
目标MAC 全FFF 源MAC PC1 ARP数据部分 源IP 源MAC 目标IP 目标MAC FFFF -
三层交换机 收到 ARP广播包后 开始处理
二层处理:
通过G0/0/1→pvid=10 数据帧 打tag 10,进入交换机
交换机解封装 数据链路层,
查看源MAC地址,更新到属于 vlan 10 的CAM表的部分
查看目标MAC地址,全FF,这是一个广播包,交换机 将这个数据包在 vlan 10 下泛洪→ARP请求被 vlanif10 收到
三层处理:
交换机解封装 ARP的数据部分(源IP地址,源MAC), 更新自己的ARP缓存表(10.1-----PC1_MAC) 发现这个数据包是在寻找网关的MAC地址
vlanif10 对这个ARP的请求做出回应
封装ARP的回复报文 目MAC 源MAC ARP(源MAC:10.100 目MAC PC1_MAC 源IP10.100 目IP 10.1)
二层处理:交换机根据 vlan10部分的CAM表 将ARP的回复包 单播 发送给PC1
根据数据包的目标MAC地址,查询CAM表,找到相应的物理接口,转发给PC1 -
PC1收到 ARP的回复报文 解封 查看ARP报文 更新自己的ARP的缓存表
此时 PC1 就知道了 网关的MAC地址,PC1能够完整的封装 去往PC2的ICMP报文了
PC1 再 ping PC 1,得到完整的ICMP数据包 -
PC1 发出icmp数据包 经过交换机的G0/0/1接口—pvid=10
二层处理:
1.打一个vlan10的tag
2.解封装 数据链路层 查看源MAC地址 更新vlan10的CAM表,查看目标CAM地址→10.100(网关)
交换机将解封装完数据链路层的数据包 丢给 vlanif10
三层处理:
vlanif10接收到 数据包
1.查看源目IP地址。
如果目标IP 地址是 10.100,继续解封装
如果目标IP地址是 20.1,三层交换机就知道 这个数包是需要转发出去的—查看路由表
2.根据目标IP地址网段,查询路由表是否有对应的网段---- 如果没有→丢弃数据包
如果有→知道这个数据包是 去往 20.0 网段的,经过查路由表,vlanif10 将这个数据包 丢给了 Vlanif20
3.vlanif20 需要将这个数据转发到 PC2 20.1
二层处理----- vlanif20的二层处理
1.先打vlan20的tag
2.封装源 MAC地址
3.封装目标MAC地址 查询ARP缓存表 ,不存在 PC2的IP地址和MAC地址的对应关系
icmp封装失败 -
由vlanif20 发出ARP请求报文 请求PC2的MAC地址
-
PC2收到 vlanif20 的ARP请求,做出回复
先解封装数据链路层 更新ARP缓存 20.100MAC-----20.100 -
ARP的回复包被G0/0/2 收到
打vlan20tag
交换机收到ARP回复报文 解封装数据链路层 学习源MAC地址 PC2—G0/0/2 ,根据 vlan20的CAM表 和 目标MAC地址,将ARP回复包发给vlanif20接口
交换机更新ARP缓存表: PC2 IP地址-----PC2 MAC的对应关系
vlanif20 也能 完整的封装 ICMP的数据包 -
此时PC1发出的ICMP请求超时,PC1再次发送一个ICMP请求
-
ICMP的请求报文被 三层交换机收到
二层处理:
解封数据链路层 打tag 交换机查CAM表 将数据包 发给vlanif10
三层处理:
vlanif10 收到数据包 查看目标IP地址→查看路由表,找到 逃出接口—vlanif20 将数据包丢给 vlanif20接口 -
vlanif20 接口 将ICMP数据包 进行封装 发送给 PC2
-
icmp数据包 经过G0/0/2,去掉vlan20的vlan20tag
-
icmp数据包被 PC2收到