1.多层交换机可以通过第三层交换机或者是外部路由器来实现。
当使用第三层交换机时的要求:
A. CATALYST5000、6000 系列交换机,监控引擎的软件版本在4.1 以上
B. CISCO IOS 版本的11.3 WA4(4)或更新。
C. 监控引擎III 或是IIIF 配置NFFCII,或是监控引擎IIG 或是IIIG。
D. 路由交换特征卡(RSFC)
CATALYST 5000 系列交换机:RSFC ,RSM
RSM:路由交换模块
5000/5500 交换机上与监控引擎接口的线路卡,用于提供VLAN 间路由
RSFC:路由交换功能卡
5000/5500 监控引擎IIG 和IIIG 的附属卡,用于提供VLAN 间路由和MLS
当使用一个外部路由器和CATALYST 交换机组合来实现MLS。它的需求是:
A. CATALYST5000、6000 系列交换机,监控引擎的软件版本在4.1 以上
B. CISCO IOS 版本的11.3 WA4(4)或更新。
C. 监控引擎III 或是IIIF 配置NFFCII,或是监控引擎IIG 或是IIIG。
D. CISCO 高端路由器,如CISCO7500,7200,4500,4700 或是8000 系列
MLS 的组件:
MLS-SE:它是负责转移和重写数据包功能的交换实体。MLS-SE 是位于CATALYST 交换机监控引擎III 上的一个NETFLOW
特征卡。
MLS-RP:它是外接的、安装有支持多层交换软件的路由器上的一个路由模块。
MLSP:它是用来建立和管理MLS-SE 和MLS-RP 之间会话的一个协议。MLSP 是RSM 或是路由器通告路由变化和VLANS 或是
参与MLS 的接口的MAC 地址的方法。
MLS 工作原理
MLS-RP 通告:
当MLS-RP 在园区网被激活后,它会每隔15 秒钟发出一个多点广播消息,这个消息是用CGMP 消息,但是由于使用了
不同的协议,因此交换机可以将这些消息和其他的多点广播消息区别开来。运用CGMP 的原因是为了使路由器和交换
机可以相互操作。
在这些HELLO 消息当中有如下的信息:
A. MLS-RP 用来在参与MLS 的接口的MAC 地址:交换机运用这个MAC 地址来决定源数据包是否是发送往第三层
设备的。同时让交换机知道路由器,因为多层交换引擎通过MLS-RP 的MAC 地址来分配XTAG 来区分不同的MLS-RP。
B. 访问控制列表
C. 路由的增加和删除
MLSP HELLO 的消息:
因为MLS-RP 会发送CGMP 消息给所有的交换机,这个HELLO 消息只有具有第三层交换功能的才能处理,第二层交换
交换机将将这个消息传向下游。当交换机收到HELLO 消息时,它将提出该所含的所有的MAC 地址以及接口信息存到
CAM 中分配XTAG:
如果交换机连接了多个MLS-RP,那么交换机将用MLS-RP 的MAC 地址配备XTAG 的方式来区分它们。当MLS-RP 失效
或是退出网络而要从第三层表格中删除的时候很有用.
建立MLS 缓存条目:
多层交换基于单独的流,MLS-SE 为MLS 流维护一个缓存条目并为每个数据流存储统计信息,流中的所有数据包都
会于缓存中的缓存条目进行比较。
建立缓存条目是一个较为复杂的过程,当数据流经过多层交换机时,交换机会检查包中目的地MAC 地址,如果该地
址是第三层路由设备地地址,那么它就会比较MLS 缓存确定时候存在为该流建立的MLS 缓存条目,如果该数据包是
该流当中的第一数据包,那么MLS 缓存肯定就不会存在缓存条目,这时,交换机还是没有关于这个流的三层交换所
需消息,因此它会将这个数据包转发到第三层路由器上去。这时这个数据流会在多层交换中生成一个候选的条目。
当路由器接受到这个数据包时,它会将读取地址,并在路由表中看是不是有存在转发的路由表,如果有的话,它就
会使用自己的MAC 地址作为该帧的源地址,并将该帧发往MLS-SE。这时交换机根据CAM 表,交换机知道了它将从
什么地方转发该数据,这时他也会识别出源地址是RP 的地址,这个识别就会触发交换机检查MLS 缓存中是否存在
关于该路由器的条目。交换机比较MLS 候选条目和返回数据帧的XTAG,如果相同的话,就说明,该数据流就是来
自同一路由处理器。
当建立了完整的MLS 条目的话,多层交换机在处理一个流下续的数据流,将要进行第二层交换。
当交换机接受到后续流后,交换机将要重写这个数据帧的帧头:将源MAC 地址换成路由器的MAC 地址,但是在第三
层的IP 地址是没有变化的,TTL 会减去1,这样就可以看作是被路由器处理过的数据帧一样。
MLS 工作原理:
1.MLS-SE 接收到初始化的MLSP Hello 包时,MLS-SE 会针对MLS-RP 生成本地唯一的XTAG,并记录每个Vlan 关联
的MLS-RP 的MAC 地址。MLS-SE 为通过MLSP 从同一个MLS-RP 学到的所有MAC 地址附加相同的XTAG。

2.主机A 与主机B 位于不同的VLAN 中。主机A 向主机B 发起数据传送。当A 发送首个数据包给MLS-SE 时,MLS-SE
将此数据包看作3 层交换的“候选数据包”,因为MLS-SE 通过MLSP 学到了MLS-RP 的各个VLAN 和MAC 地址信息,
所以它能正确转发数据包,并在MLS 缓存中创建关于此3 层数据流的不完整的MLS 项。MLS-RP 接收到此数据包,
将目的MAC 地址改成主机B 的MAC 地址,并以自已的主机B 所属的VLAN 相关联的MAC 地址作为源MAC 转发数据包。
3.MLS-RP 将数据包路由到主机B。当MLS-SE 接收到此数据包时,MLS-SE 发现源MAC 地址属于MLS-RP,XTAG 与候
选数据包匹配。MLS-SE 将此数据包作为“使能数据包”,并将MLS 缓存中的MLS 项补充完整。
4.MLS 项被补充完整后,相同流内的所有从源主机到目的主机的3 层数据包都直接由交换机进行第3/4 层交换,不
经过路由器。IP MLS 是单向的:对于从主机B 到主机A 的通信,需要创建另一条3 层交换路径。
使MLS 失效的命令
有些IP 命令会要求路由器对每个数据包都要进行处理时
任何要求每个数据包都要进行处理的命令都会阻碍多层交换功能。
A. no ip routing:清除所有的MLS 缓存条目,并在MLS-RP 关闭MLS 功能。
B. ip security:关闭在接口上的MLS 功能
C. ip tcp compression-connections 在接口上关闭MLS 功能
D. clear ip-route:清除所有为这个MLS-RP 执行第三层的交换机中的MLS 缓存条目
以下几点与mls 不兼容:
IP accounting, encryption, compression, IP security,
Network Address Translation (NAT),Committed Access Rate (CAR).
配置多层交换路由处理器
1.在路由处理器上全局性的为某个路由选择协议启用MLS 功能
router(config)#mls rp ip
2.在接口上分配一个MLS VTP 域:
我们决定哪些路由处理器将作为MLS 接口之后,我们必须将它们加入到于交换机处于相同的VTP 域中。交换机和
MLS 接口必须处在相同的VTP 域中。
router(config)#interface vlan vlan-num
router(config-if)#mls rp vtp-domain domain-name
使用show mls rp vtp-domain 查看相关信息
3.在接口上启用MLS:
将一个MLS 接口放入VTP 域并不能激活接口上的MLS 功能。MLS 功能必须明确的在接口上启用。因为VLAN 与子网
是一一对应关系,参与第三层交换的每个接口都必须为指定启用了多层交换的功能。
router(config-if)#mls rp ip
4.创建一个空域
这种情况出现在当路由器所属的VTP 域与交换机所属的VTP 不同时,因为我们前面已经知道路由器接口和交换机所
属的VTP 相同的时候,才能正常的进行多层交换。
有目的地将两台设备放在不同的域中
当配置交换机或是路由器处理器时,拼错了VTP 名字
当把接口放在VTP 域之前输入了MLS 接口命令。
5.指定一个MLS 管理接口
在RSM 或是路由器配置参与多层交换时,该设备将通过MLSP 发送HELLO 消息、通告路由变化,并且公布该设备上
参与的MLS 的那些接口的MAC 地址。在MLS-RP 上的一个接口必须指定为管理接口,通过该接口进行MLSP 数据包进
行转发和接受
router(config)#interface vlan 1
router(config-if)#mls rp management-interface
6.为外部路由器上的接口分配一个VLAN ID
多层交换是VLAN 间的路由选择。多层交换机根据哪个端口是哪个VLAN 配置的来作转发决定。内部路由处理器和
ISL 配置的脸露自然用VLAN id 来识别接口。外部路由处理器接口知道有关子网的信息,但没有VLAN 的信息。因
此MLS 要求每台外部路由器接口都有一个分配给它的Vlan id
router(config)#INTERFACE interface number
router(config-if)#MLS RP VLAN-ID vlan-id-number
7.Show mls rp 来显示MLS 的配置
Show mls rp interface interface number 来显示某个接口上的MLS 配置。
MLS-RP 配置如下:
1. 需要启用MLS:mls rp ip
2. 加入VTP 域:mls rp vtp-domain www(主接口配置)
3. mls rp vlan-id xx
4. 在子接口启用MLS:mls rp ip
5. 配置管理接口
1.router(config)# mls rp ip //全局启动MLS
2.确定哪些路由器接口作为MLS 接口,并将这些接加入与MLS-SE 相同的VTP 域中。
Router(config)# inter f2/0
Router(config-if)# mls rp vtp-domain name //在主接口上配置VTP 域名,对子接口有效
Router(config-if)# inter f2/0.1
Router(config-subif)# encapsulation dotlq 20 //为子接口配置封装
Router(config-subif)# mls rp ip //启动Ip MLS
应用流掩码
1.用来决定将数据包中多少信息放入MLS 缓存中,而不是用来将数据包与MLS 缓存中现有条目进行比较的。
MLS-SE 支持三种流掩码模式:
目的IP(没有访问列表,缺省):最不具体的流掩码(The least specific flow mask mode)
源-目的IP(标准访问列表)
IP 流(扩展访问列表):最具体的流掩码(The most specific flow mask mode)
对于MLS-SE 索服务的所有的MLS-RP 来说,它只支持一种流掩码。当检测到不同的流掩码是,它将使用最具体的流
掩码来实现。当MLS-SE 流掩码改变时,整个MLS 缓存将重清。
2.输入访问控制列表和IP 流掩码和使用输出访问控制列表
在启用了MLS 接口上设置一个输入访问控制列表将重清所有去往这个接口流的MLS 缓存,然而输入访问控制列表的
缺省行为是对所有进入数据包进行检查和路由选择。在CISCO IOS 11.3 或是更迟的版本是不支持在配置了MLS 的
接口上自动支持输入控制列表。这样的话,就会对每个数据都是要通过路由器。
为了能让多层交换能与输入访问控制列表协同工作,可以使用router(config)#mls rp ip input-acl
配置多层交换机的交换引擎
MLS 在支持三层交换的CATALYST 的交换机上是缺省使用的,如果MLS-RP 是内部的RSM,那么该交换机不必要其他
的额外的配置。但是在如下的情况下,要进行配置。
检验配置
要在MLS-SE 显示多层交换的信息,我们可以在特权的模式下switch (enable)#SHOW MLS
它显示的内容包括:
是否在交换机上启用多层交换功能;(SET MLS ENABLE)
以秒为单位的MLS 的缓存条目更新时间;(SET MLS AGININGTIME 304)
以秒为单位的MLS 的快速更新时间和门限值;(SET MLS AGININGTIME FAST 64 7)
流掩码(SET MLS FILOW [destination|destination-source|full]
所交换的数据包的流的总数;
缓存中活跃的MLS 条目的总和;
是否启用了NETFLOW 的数据输出,如果有的话,是针对哪个端口和哪台主机;
MLS-RP 的IP 地址、MAC 地址、XTAG 和支持的VLAN;
要显示有关具体的MLS-RP 的信息,可以使用SHOW MLS RP ip-address
要显示MLS 的缓存条目,可以在特权的模式下执行
switch (enable)#SHOW MLS ENTRY
他也可以针对某个具体的条件来显示MLS 条目中的
show mls entry destination ip-address (对某个具体的目的IP 地址)
show mls entry source ip-address (对某个具体的源IP 地址)
show mls entry rp ip-addrss (对某个具体的MLSRP id)
show mls entry flow protocol source-port destination-port (对某个具体的IP 流)
Configuring MLS on a Router
相关MLS 的命令:
显示特定接口的IP MLS 信息: show mls rp interface vlan 10
显示MLS-RP 上关于特定VTP 域的信息: show mls rp vtp-domain domain-name
显示Catalyst 6000 MSFC 上的MLS 信息: show mls status
显示MLS-SE 上的MLS 信息: show mls
显示MLS-SE 上关于某个MLS-RP 的MLS 信息: show mls rp 192.168.1.100
显示MLS-SE 上所有的MLS 信息: show mls entry
基于目的IP 地址显示MLS 项: show mls entry destination 192.168.1.100
基于源IP 地址显示MLS 项: show mls entry source 192.168.1.100
基于特定的MLS-RP 显示IP MLS 项: show mls entry rp 192.168.1.100
基于特定流显示IP MLS 项: show mls entry flow tcp 23 3389
清除特定流的IP MLS 项:clear mls entry destination 192.168.1.100 source 192.168.1.200 flow tcp 3389 23