数据来源
一、三层交换技术出现背景:
解决之前给网段划分VLAN控制端口,然后使用路由器设置单臂路由的让不同VLAN可以通信的缺点,
单臂路由缺点:
1)容易出现网络瓶颈
2)容易发生单点物理故障
3)VLAN间通信的每个帧都进行路由,导致效率下降
单臂路由的拓补图
单臂路由被代替的原因:
1)只有一条线给多个VLAN转发数据数量一多会出现各种网络问题,一条线承载不了成百上千人同时通信产生的数据量,且依赖性太高,这一根线坏了全公司网络玩完。。
2)如果使用多条线,每个VLAN都有单独一条线连接路由器上,但是路由器没这么多接口哪就要买多台路由器,这不太现实,成本太高而且不方便管理。
拓补图
解决:解决这种问题的理想方案就是一个VLAN一条线
二、为了解决这问题三层交换机应运而生:
1)介绍
三层交换机就是具有部分路由器功能的交换机(就是3层路由器与2层交换机的杂交产品),工作在OSI网络标准模型的第三层:网络层。三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。
拓补图 (真实的三层交换机根二层交换机外观差不多,下图只是为了辅助理解)
2)三层路由引擎是可以关闭或开启的
一个三层交换机如果没有配置启动路由引擎,那他跟二层交换机没啥区别,路由引擎默认是关闭的。
conf t # 进入全局配置模式
ip routing # 开启三层路由功能
no ip routing # 关闭三层路由功能
3)三层交换机的优点:
与单臂路由对比
1)解决了网络瓶颈问题(每个VLAN都有对应的虚拟线)
2)解决了单点故障(虚拟接口不再依赖任何的物理接口)
3)提高转发速度(一次路由,多次转发)
为啥说三层交换机提高了转发速度?
答:
1)相比单臂路由要让不同VLAN通信需要把交换机通往路由器的端口设置为trunk端口,以后通过这个端口的帧都要加上标签路由器还要拿掉标签,三层交换机没有这一步骤,当然这一步提高不了多快的转发速度,重点是下一个。
如下图,如果PC1要与
2)如上面的PC1向PC2通信这一过程,可能会有成万上亿个帧要发送个PC2,要是单臂路由的话每一个帧都要经历上面讲的过程,但是在三层交换机这成万上亿个帧只需要第一个帧经历上面的流程,当第一个帧经历完上面的流程后交换机就知道,PC1要通信的目标PC2属于那个VLAN和他的IP地址与MAC地址,三层交换机就会生成一张快速转发表(CEF表)与一张邻接关系表。
CEF表 邻接关系表
vlan20 20.1.1.1(目标IP) <---------对应关系-----------> BB CC (帧头)
有个这两张表之后,帧到达路由引擎的端口后,就会直接查看帧的目标IP地址发现与CEF表匹配,发现目标是20.1.1.1表里刚好有匹配上了,直接拿和邻接关系表对应的帧头替换数据帧的帧头,然后把帧送到VLAN20端口转发出去,这一过程中路由器不用查看路由表和ARP缓存表。(ARP缓存表是查看目标MAC地址的,表中没有需要的MAC地址才会发送ARP广播请求目标MAC地址,上面图片中写不下就没有详细介绍)这一过程就叫一次路由,多次转发。
注意:这些过程都是自动的,了解即可,实际工作中拿到三层交换机就是开启三层路由,然后给VLAN配置网关(IP地址),然后员工的IP地址的网关项指向自己VLAN的网关就能互相通信了。
4)三层交换机起虚接口(配置VLAN的网关)
en # 进入特权模式
conf t # 进入全局配置模式
int vlan ID # 进入需要配置的VLAN
ip add IP地址 子网掩码 # 给VLAN配置网关(IP地址)
no shut # 开启端口
exit # 退到上一级
5)二层端口升级为三层端口
三层交换机虽然有路由器的功能,但是他还是不能替代路由器,想上网还是要拉条网线插路由器,再连接三层交换机,然后把连接的端口升级为三层端口。
int f0/x # 进入需要配置的端口
no switchport # 升级为三层端口可以连接路由器
三、实验三层交换机
要求:
1)让内网可以互相通信
2)内外网通信
实现思路:
1)交换部分
- 给交换机之间的连接端口设置为Trunk接口
- 使用VTP协议给交换机共享VLAN的配置减少工作量
- 创建VLAN
- 把端口加入到VLAN
- 起三层虚接口
2)路由部分
- 配置IP,并开启
- 配置路由
1、规划网络
2、配置交换机
1)给交换机之间的连接端口设置为Trunk接口
en # 进入特权模式
conf t # 进入全局配置模式
int f0/x # 进入要配置的接口或 int range f0/1 -2 # 配置 fa0 - 2 接口
switchport trunk encapsulation dot1q # 这个端口如果作为trunk 需要封装成dotlq(二层交换机这命令可选,三层不加保错)
switchport mode trunk # 设置端口为中继端口,简写:sw m t
exit # 退到上一级
2)使用VTP协议给交换机共享VLAN的配置减少工作量
将第一台交换机配置成server模式
en # 进入特权模式,如果在其他模式下可以用:end 直接回到特权模式或exit一步步退回去
vlan database # 创建VLAN管理域
vtp server # 配置sw1为VTP的Server模式(可以理解为父级,其他交换机是子级,会自动学习父级的VLAN配置)
vtp domain wencoll # 给管理域设置个名称,wencoll 就是名称可以顺便写
exit # 退到上一级
其余两台二层交换机都设置模式为client,只要交换机的连接端口是trunk端口,则可自动学习sw1交换机的VLAN配置
en # 进入特权模式
vlan database # 创建VLAN管理域
vtp client # 设置模式为client
exit # 退到上一级
3)创建VLAN(10、20)
en # 进入特权模式
cong t # 进入全局配置模式
vlan ID,ID,ID-ID # 创建VLAN,可选一个或多个,模式器不支持可以一个一个来
name 自定义名称 # 给VLAN定义别名
exit # 退到上一级
show vlan brief(brief 简写:b) # 查看VLAN表,如果不是在特权模式下,要加 do
4)把端口加入到VLAN
cong t # 进入全局配置模式
int f0/x # 进入需要配置的端口
switchport access vlan ID # 将端口加入VLAN
5)三层交换机起虚接口(配置VLAN的网关)
en # 进入特权模式
conf t # 进入全局配置模式
ip routing # 开启三层路由功能
int vlan 10 # 进入需要配置的VLAN
ip add 10.1.1.254 255.255.255.0 # 给VLAN配置网关(IP地址)
exit # 退到上一级
int vlan 20 # 进入需要配置的VLAN,之前不存在的VLAN就会自动创建一个 ,int vlan ?可查看ID取值范围
ip add 20.1.1.254 255.255.255.0 # 给VLAN配置网关(IP地址)
exit # 退到上一级
do sh ip int b # 查看接口列表,检查配置
到这里内网就就是可以互相通信了
6)给下面的两台PC配置IP地址,使用ping测试内网网络联通性
7)给三层交换机的Fa0/3配置IP,并开启端口
en # 进入特权模式
conf t # 进入全局配置模式
int Fa0/3 # 进入需要配置的端口
no switchport # 升级为三层端口可以连接路由器,IP是以上三层设备才有的,不升级是配置不了IP
ip add 30.1.1.1 255.255.255.0 # 配置IP
no shut # 开启端口
exit # 退到上一级
ip route 0.0.0.0 0.0.0.0 下一跳IP # 配置往右边走的默认路由,这条命令的意思是所有IP与子网掩码的数据都转发到下一跳IP,这里的下一跳是30.1.1.254 (因为等下把网线另一端设为30.1.1.254作为下一跳IP)
do sh ip int b # 查看接口列表,检查配置
3、配置路由器
2)配置第一个路由器
en # 进入特权模式
conf t # 进入全局配置模式
int Fa0/0 # 进入需要配置的端口
ip add 30.1.1.254 255.255.255.0 # 配置IP
no shut # 开启端口
exit # 退到上一级
int Fa0/01 # 进入需要配置的端口
ip add 40.1.1.1 255.255.255.0 # 配置IP
no shut # 开启端口
exit # 退到上一级
ip route 0.0.0.0 0.0.0.0 下一跳IP # 配置往右边走的默认路由,这条命令的意思是所有IP与子网掩码的数据都转发到下一跳IP,这里的下一跳是40.1.1.254 (因为等下把网线另一端设为40.1.1.254作为下一跳IP)
ip route 10.1.1.0 255.255.255.0 30.1.1.1 # 配置往左边走的静态路由,找10.1.1网段的转发给30.1.1.1(三层交换机)
ip route 20.1.1.0 255.255.255.0 30.1.1.1 # 配置往左边走的静态路由,找20.1.1网段的转发给30.1.1.1(三层交换机)
do sh ip route # 查看路由表(R1配置之前的路由表)
3)配置第二个路由器(注意之前我路由器之间的线连错了,同种设备用交叉线)
en # 进入特权模式
conf t # 进入全局配置模式
int Fa0/1 # 进入需要配置的端口
ip add 40.1.1.254 255.255.255.0 # 配置IP
no shut # 开启端口
exit # 退到上一级
int Fa0/0 # 进入需要配置的端口
ip add 50.1.1.254 255.255.255.0 # 配置IP
no shut # 开启端口
exit # 退到上一级
ip route 0.0.0.0 0.0.0.0 40.1.1.1 # 配置往左边走的默认路由,这条命令的意思是所有IP与子网掩码的数据都转发到下一跳IP
do sh ip route # 查看路由表(R1配置之前的路由表)
4)最后给外网的PC配置IP地址,测试一下全网通信