三层交换机就是具有部分路由器功能的交换机,三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。三层交换技术就是二层交换技术+三层转发技术。
三层交换机工作原理
三层交换机通过硬件来交换和路由选择数据包。使用传统的MLS(多层交换)体系结构或基于CEF(Cisco快速转发)的MLS体系结构。传统的MLS是一种老式结构,而所有新型的交换机都支持CEF多层交换。
1.基于CEF的MLS
CEF是一种基于扩扑的转发模型,可预先将所有路由选择信息加入到转发信息库(FIB)中。这样,交换机就能够快速查找路由选择信息。主要包括转发信息库(FIB)和邻接关系表
查看FIB表
# sh ip cef
查看FIB表和邻接关系表
# sh adj de
三层交换机配置命令
1.启动路由功能
switch(config)# ip routing
2.配置路由接口
switch(config)# no switchport
案例:如图所示,实现全网互通,使内网访问互联网(命令简写,可按TAB键补齐)
1.在二层交换机上分别创建vlan2、vlan3,分配端口到vlan,配置trunk (略)
2.在三层交换机上分别创建vlan2、vlan3,配置trunk并指定接口封装方式为802.1q
sw-3L(config)# int f0/24
sw-3L(config-if)# sw tr en do
sw-3L(config-if)# sw mo tr
3.在三层交换机启动路由功能
sw-3L(config)# ip routing
4.在三层交换机上配置各vlan的IP地址
sw-3L(config)# int vlan 1
sw-3L(config-if)# ip add 192.168.1.1 255.255.255.0
sw-3L(config-if)# no sh
sw-3L(config)# int vlan 2
sw-3L(config-if)# ip add 192.168.2.1 255.255.255.0
sw-3L(config-if)# no sh
sw-3L(config)# int vlan 3
sw-3L(config-if)# ip add 192.168.3.1 255.255.255.0
sw-3L(config-if)# no sh
5.在三层交换机上配置路由接口,并配置接口的IP地址
sw-3L(config)# int f/23
sw-3L(config-if)# no switchpor
sw-3L(config-if)# ip add 10.1.1.1 255.255.255.252
6.在三层交换机上配置静态路由
sw-3L(config)# ip route 0.0.0.0 0.0.0.0 10.1.1.2
7.在路由器上配置接口和路由
Router(config)# int f0/0
Router(config-if)# ip add 10.1.1.2 255.255.255.252
Router(config-if)# no sh
Router(config-if)# exit
Router(config)# ip route 192.168.1.0 255.255.255.0 10.1.1.1
Router(config)# ip route 192.168.2.0 255.255.255.0 10.1.1.1
Router(config)# ip route 192.168.3.0 255.255.255.0 10.1.1.1
8.查看、验证交换机的路由表
sw-3L# sh ip route
三层交换机配置DHCP中继
通过配置DHCP中继,使vlan2、vlan3的客户机也能通过DHCP服务器获取IP地址
在三层交换机上配置DHCP中继转发,命令如下:
sw-3L(config)# int vlan 2
sw-3L(config-if)# ip add 192.168.2.1 255.255.255.0
sw-3L(config-if)# ip helper-address 192.168.100.100
sw-3L(config-if)# no sh
sw-3L(config)# int vlan 3
sw-3L(config-if)# ip add 192.168.3.1 255.255.255.0
sw-3L(config-if)# ip helper-address 192.168.100.100
sw-3L(config-if)# no sh
sw-3L(config)# int vlan 100
sw-3L(config-if)# ip add 192.168.100.1 255.255.255.0
sw-3L(config-if)# no sh