土豆嫁接西红柿:配置Catalyst交换端口分析器(SPAN)
来源:百度文库 编辑:偶看新闻 时间:2024/05/03 12:25:59
介绍
交换端口分析器(SPAN)功能有时被称为端口镜像或端口监控,该功能可通过网络分析器(例如交换机探测设备或者其它远程监控(RMON)探测器)选择网络流量进行分析。以前,SPAN是Catalyst交换机族较为基本的功能,但最新推出的CatOS有许多增强功能,而且有许多功能是用户现有才开始使用的。本文并不是SPAN功能的又一种配置指南,而是立足于介绍已实施的SPAN的最新功能。本文将对SPAN的一般问题进行回答,例如:
SPAN是什么?我如何对它进行配置?
有什么不同的功能(尤其是同时进行多个SPAN话路)?需要何种级别的软件来执行这些功能?
SPAN是否会影响交换机的性能?
开始配置前
规则
有关详情,请参阅 Cisco技术提示规则。
SPAN简要介绍
SPAN是什么?为什么需要SPAN? 在交换机上引入SPAN功能,是因为交换机和集线器有着根本的差异。当集线器在某端口上接收到一个数据包时,它将向除接收该数据包端口之外的其它所有端口发送一份数据包的拷贝。当交换机启动时,它将根据所接收的不同数据包的源MAC地址开始建立第2层转发表。一旦建立该转发表,交换机将把指定了MAC地址的业务直接转发至相关端口。
例如,如果您想要截获从主机A发送至主机B的以太网业务,而两台主机是用集线器相连的,那么只要在该集线器上安装一嗅探器,所有端口均可看见主机A和主机B之间的业务:
在交换机中,当知道了主机B的MAC地址之后,从主机A到主机B的单播业务仅被转发至主机B的端口,因此,嗅探器看不见:
在这个配置中,嗅探器将仅截获扩散至所有端口的业务,例如广播业务、具有CGMP或者IGMP侦听禁止的组播业务以及未知的单播业务。当交换机的CAM表中没有目的地的MAC时,将发生单播泛滥。它无法理解向何处发送业务,而将数据包大量发送至VLAN中的所有端口。
将主机A发送的单播数据包人工复制到嗅探器端口需要一些附加功能来实现。
在上面的图表中,与嗅探器相连的端口配置为:对主机A发送的每一个数据包拷贝进行接收。该端口被称为SPAN端口。下文各节将说明如何对该功能进行精确的调节,使其作用不仅仅限于监控端口。
入口业务: 进入交换机的业务。
出口业务: 离开交换机的业务。
源(SPAN)端口: 用SPAN功能受监控的端口。
目的地(SPAN)端口: 监控源端口的端口,通常连有一个网络分析器。
监控端口:在Catalyst 900xl/3500xl/2950术语中,监控端口也是目的地SPAN端口。
本地SPAN: 当被监控端口全部位于同一交换机上作为目的地端口时,SPAN功能为本地SPAN功能。这和下文中的远程SPAN形成对比。
远程SPAN或者RSPAN: 作为目的地端口的某些源端口没有位于同一交换机上。这是一项高级功能,要求有专门的VLAN来传送该业务,并由交换机之间的SPAN进行监控。并非所有交换机均支持RSPAN,所以,请检查各自的版本说明或者配置指南,来核实您要进行配置的交换机是否可以使用该功能。
PSPAN: 指基于端口的SPAN。用户对交换机指定一个或者数个源端口以及一个目的地端口。
VSPAN: 指基于VLAN的SPAN。在给定的交换机中,用户可以使用单个命令来选择对属于专门VLAN的所有端口进行监控。
ESPAN ESPAN指SPAN增强版本。该术语在SPAN的发展期间数次用于命名新增功能,因此意义并不很明确。在本文中避免使用该术语。
管理源: 已配置受监控的源端口或者VLAN的列表。
操作源: 受到有效监控的端口列表。这可能和管理源有所不同。例如,在关闭模式下的端口可能在管理源中出现,但它不受到有效监控。
[page]
本文使用CatOS 5.5作为Catalyst 4000、5000以及6000族的参考。在Catalyst 2900XL/3500XL族中使用了Cisco IOS(r)软件版本12.0(5)XU。虽然本文以后会根据SPAN的变化而更新,但有关SPAN功能的最新发展情况,请参阅文档的版本说明。
本文中所提供的信息是在从特殊实验室环境下的设备中产生的。本文中所使用的所有设备均以缺省配置启动。如果您是在实际网络中作业,请确保您在使用所有命令之前,已了解这些命令可能产生的影响。.
Catalyst 2900XL/3500XL中的端口监控功能没有太过扩展,因此比较容易理解。
您可以根据需要创建多个本地PSPAN话路。例如,您可以在您选作目的地SPAN端口的端口配置创建PSPAN话路,只需用 端口监视 命令列出您想监控的源端口即可。在Catalyst 2900XL/3500XL的术语中,监控端口其实是目的地SPAN端口。
主要限制在于:与给定话路相关的所有端口(无论源端口还是目的地端口)必须属于同一VLAN。.
如果您没有在端口监控命令中指定任何接口,则作为接口的所有其它属于同一VLAN的端口将受到监控。
以下限制,摘自 Catalyst 2900XL/3500XL 的命令参考:
ATM端口是唯一无法受到监控的端口。然而您还是可以对ATM端口进行监控。以下限制适用于具有端口监控能力的各个端口:
快速EthernetChannel或者千兆EthernetChannel 端口群中不能有监控端口。
因为端口安全性而无法启用监控端口。
监控端口不可以是多VLAN端口。
当端口受到监控时,监控端口必须是同一VLAN的成员。对于监控端口以及受到监控的端口,不允许进行VLAN成员的改变。
监控端口不可以是动态接入端口或者中继端口。但是,静态接入端口可以对中继线上的VLAN、多VLAN或者动态接入端口进行监控。受到监控的VLAN与静态接入端口有关联。
如果监控器以及受监控端口为受保护端口,端口监控将不起作用。
有关功能冲突的补充信息,请参阅下文的链接:
管理交换机——管理配置冲突 -- Catalyst 2900XL/3500XL 系列
请注意,处于监控状态的端口不执行生成树协议(STP),但端口仍然属于其镜像的端口VLAN。如果端口监控属于某个环路的一部分(例如,当您将其连接至集线器或者网桥,而环接至网络的其它部分时),您可能会以严重的桥接环路状况收尾,因为您不再受到STP的保护。请参阅 “为什么我的SPAN话路会产生一个桥接环路?”一节, 看一看产生该情况的一个实例。
在本例中,创建了两个并行的SPAN话路。
端口Fa0/1将对由端口Fa0/2发送、端口Fa0/5接收的业务进行监控。它也将对往返于管理接口VLAN 1的业务进行监控。
端口Fa0/4将对端口Fa0/3以及Fa0/6进行监控。
端口Fa0/3、Fa0/4以及Fa0/6均在VLAN 2中进行配置;其它端口以及管理接口均在默认的VLAN 1中进行配置。
Catalyst 2900XL/3500XL上的配置样本
Catalyst 2900XL/3500XL上的配置样本
! interface FastEthernet0/1 port monitor FastEthernet0/2 port monitor FastEthernet0/5 port monitor VLAN1 ! interface FastEthernet0/2 ! interface FastEthernet0/3 switchport access vlan 2 ! interface FastEthernet0/4 port monitor FastEthernet0/3 port monitor FastEthernet0/6 switchport access vlan 2 ! interface FastEthernet0/5 ! interface FastEthernet0/6 switchport access vlan 2 ! ! interface VLAN1 ip address 10.200.8.136 255.255.252.0 no ip directed-broadcast no ip route-cache !
配置步骤说明
如果要将端口Fa0/1配置为源端口Fa0/2、Fa0/5以及管理接口的目的端口,请在配置模式中选择接口Fa0/1:
Switch(config)#int fa0/1
Enter the list of ports to be monitored:
Switch(config-if)#port monitor fastEthernet 0/2
Switch(config-if)#port monitor fastEthernet 0/5
然后,这两个端口接收的或者发送的数据包也会被复制到端口Fa0/1。使用另一版本的port monitor 命令对管理接口的监控进行配置:
Switch(config-if)#port monitor VLAN 1
注:?/B>上文中的命令并不意味着端口Fa0/1将监控整个VLAN 1。VLAN 1关键字仅指交换机的管理接口。
输入以下命令说明在不同VLAN中监控某个端口是不可能的:
Switch(config-if)#port monitor fastEthernet 0/3
FastEthernet0/1 and FastEthernet0/3 are in different vlan
To finish the configuration, configure another session, this time using Fa0/4 as a destination SPAN port:
Switch(config-if)#int fa0/4
Switch(config-if)#port monitor fastEthernet 0/3
Switch(config-if)#port monitor fastEthernet 0/6
Switch(config-if)#^Z
检查配置情况的最佳方法是发出简单的 show running命令,或者使用 show port monitor 命令:
Switch#show port monitor
Monitor Port Port Being Monitored
--------------------- ---------------------
FastEthernet0/1 VLAN1
FastEthernet0/1 FastEthernet0/2
FastEthernet0/1 FastEthernet0/5
FastEthernet0/4 FastEthernet0/3
FastEthernet0/4 FastEthernet0/6
注:?/B>Catalyst 2900XL以及3500XL不支持单一接收方向的SPAN(Rx SPAN或者入口SPAN)或者单一发送方向的SPAN(Tx SPAN或者出口SPAN)。所有配置SPAN的受控端口必须既能进行业务接收(Rx)又能进行业务发送(Tx)。
[page]
Catalyst 2948G - L3和4908G - L3上的SPAN
Catalyst 2948G - L3以及4908G - L3为固定配置的交换机-路由器或者第3层交换机。第3层交换机的SPAN功能被称为端口侦听。但是这些交换机不支持端口侦听。请参阅 “Catalyst 2948G - L3和Catalyst 4908G - L3交换机路由器不支持的功能” 以及Catalyst 2948G - L3最新的版本说明。
Catalyst 8500上的SPAN
Catalyst 8540提供一项很基本的SPAN功能,名为端口侦听。有关详细信息,请检查现在的Catalyst 8540文档资料:
Catalyst 8500命令参考
关于端口侦听 (摘自第3层交换接口配置指南)
以下摘自命令参考:
端口侦听使您能将业务从一个或者多个源端口透明地镜像至一个目的地端口。
如果要设定基于端口的业务镜像或者侦听,请使用 snoop 命令。如果要取消侦听,请使用该命令的否定形式。
snoop interface source-portdirection snoop-direction
no snoop interface source-port
源端口指正受到监控的端口;侦听方向指源端口或者受到监控端口的业务方向:接收、发送或者两者兼备。.
8500CSR# configure terminal
8500CSR(config)# interface fastethernet 12/0/15
8500CSR(config-if)# shutdown
8500CSR(config-if)# snoop interface fastethernet 0/0/1 direction both
8500CSR(config-if)# no shutdown
下例显示了 show snoop 命令的输出结果。
8500CSR# show snoop
Snoop Test Port Name: FastEthernet1/0/4 (interface status=SNOOPING)
Snoop option: (configured=enabled)(actual=enabled)
Snoop direction: (configured=receive)(actual=receive)
Monitored Port Name:
(configured=FastEthernet1/0/3)(actual=FastEthernet1/0/3)
注:?/B>如果您正在运行MSR镜像(8540m-in-mz),Catalyst 8540以太网端口将不支持该命令。您必须使用CSR镜像(例如8540c - in - mz)来代替。当您运行MSR镜像时,仅ATM接口上支持侦听,这通过发出以下命令实现:
atm snoop
atm snoop-vp
atm snoop-vc
[page]
运行CatOS的Catalyst 4000、5000以及6000系列交换机上的SPAN
本地SPAN
SPAN功能已经逐一添加至CatOS,SPAN配置由一套SPAN命令组成。对于该命令,现在有大量选项可供选择:
switch (enable) set span
Usage: set span disable [dest_mod/dest_port|all]
set span
[rx|tx|both]
[inpkts]
[learning]
[multicast]
[filter]
[create]
不同的SPAN选项所使用的各个变量在以下网络图中介绍:
该图是Catalyst 6000交换机插槽6线路卡的一部分。端口6/1以及6/2属于VLAN 1,端口6/3属于VLAN 2,而端口6/4以及6/5属于VLAN 3。将一嗅探器连接至端口6/2,在各个不同的情况下将其作为监控端口使用。
PSPAN、VSPAN:监控某些端口或者整个VLAN
采用 set span 命令的最简单形式来监控单个端口。句法是: set span
交换端口分析器(SPAN)功能有时被称为端口镜像或端口监控,该功能可通过网络分析器(例如交换机探测设备或者其它远程监控(RMON)探测器)选择网络流量进行分析。以前,SPAN是Catalyst交换机族较为基本的功能,但最新推出的CatOS有许多增强功能,而且有许多功能是用户现有才开始使用的。本文并不是SPAN功能的又一种配置指南,而是立足于介绍已实施的SPAN的最新功能。本文将对SPAN的一般问题进行回答,例如:
SPAN是什么?我如何对它进行配置?
有什么不同的功能(尤其是同时进行多个SPAN话路)?需要何种级别的软件来执行这些功能?
SPAN是否会影响交换机的性能?
开始配置前
规则
有关详情,请参阅 Cisco技术提示规则。
SPAN简要介绍
SPAN是什么?为什么需要SPAN? 在交换机上引入SPAN功能,是因为交换机和集线器有着根本的差异。当集线器在某端口上接收到一个数据包时,它将向除接收该数据包端口之外的其它所有端口发送一份数据包的拷贝。当交换机启动时,它将根据所接收的不同数据包的源MAC地址开始建立第2层转发表。一旦建立该转发表,交换机将把指定了MAC地址的业务直接转发至相关端口。
例如,如果您想要截获从主机A发送至主机B的以太网业务,而两台主机是用集线器相连的,那么只要在该集线器上安装一嗅探器,所有端口均可看见主机A和主机B之间的业务:
在交换机中,当知道了主机B的MAC地址之后,从主机A到主机B的单播业务仅被转发至主机B的端口,因此,嗅探器看不见:
在这个配置中,嗅探器将仅截获扩散至所有端口的业务,例如广播业务、具有CGMP或者IGMP侦听禁止的组播业务以及未知的单播业务。当交换机的CAM表中没有目的地的MAC时,将发生单播泛滥。它无法理解向何处发送业务,而将数据包大量发送至VLAN中的所有端口。
将主机A发送的单播数据包人工复制到嗅探器端口需要一些附加功能来实现。
在上面的图表中,与嗅探器相连的端口配置为:对主机A发送的每一个数据包拷贝进行接收。该端口被称为SPAN端口。下文各节将说明如何对该功能进行精确的调节,使其作用不仅仅限于监控端口。
入口业务: 进入交换机的业务。
出口业务: 离开交换机的业务。
源(SPAN)端口: 用SPAN功能受监控的端口。
目的地(SPAN)端口: 监控源端口的端口,通常连有一个网络分析器。
监控端口:在Catalyst 900xl/3500xl/2950术语中,监控端口也是目的地SPAN端口。
本地SPAN: 当被监控端口全部位于同一交换机上作为目的地端口时,SPAN功能为本地SPAN功能。这和下文中的远程SPAN形成对比。
远程SPAN或者RSPAN: 作为目的地端口的某些源端口没有位于同一交换机上。这是一项高级功能,要求有专门的VLAN来传送该业务,并由交换机之间的SPAN进行监控。并非所有交换机均支持RSPAN,所以,请检查各自的版本说明或者配置指南,来核实您要进行配置的交换机是否可以使用该功能。
PSPAN: 指基于端口的SPAN。用户对交换机指定一个或者数个源端口以及一个目的地端口。
VSPAN: 指基于VLAN的SPAN。在给定的交换机中,用户可以使用单个命令来选择对属于专门VLAN的所有端口进行监控。
ESPAN ESPAN指SPAN增强版本。该术语在SPAN的发展期间数次用于命名新增功能,因此意义并不很明确。在本文中避免使用该术语。
管理源: 已配置受监控的源端口或者VLAN的列表。
操作源: 受到有效监控的端口列表。这可能和管理源有所不同。例如,在关闭模式下的端口可能在管理源中出现,但它不受到有效监控。
[page]
本文使用CatOS 5.5作为Catalyst 4000、5000以及6000族的参考。在Catalyst 2900XL/3500XL族中使用了Cisco IOS(r)软件版本12.0(5)XU。虽然本文以后会根据SPAN的变化而更新,但有关SPAN功能的最新发展情况,请参阅文档的版本说明。
本文中所提供的信息是在从特殊实验室环境下的设备中产生的。本文中所使用的所有设备均以缺省配置启动。如果您是在实际网络中作业,请确保您在使用所有命令之前,已了解这些命令可能产生的影响。.
Catalyst 2900XL/3500XL中的端口监控功能没有太过扩展,因此比较容易理解。
您可以根据需要创建多个本地PSPAN话路。例如,您可以在您选作目的地SPAN端口的端口配置创建PSPAN话路,只需用 端口监视
主要限制在于:与给定话路相关的所有端口(无论源端口还是目的地端口)必须属于同一VLAN。.
如果您没有在端口监控命令中指定任何接口,则作为接口的所有其它属于同一VLAN的端口将受到监控。
以下限制,摘自 Catalyst 2900XL/3500XL 的命令参考:
ATM端口是唯一无法受到监控的端口。然而您还是可以对ATM端口进行监控。以下限制适用于具有端口监控能力的各个端口:
快速EthernetChannel或者千兆EthernetChannel 端口群中不能有监控端口。
因为端口安全性而无法启用监控端口。
监控端口不可以是多VLAN端口。
当端口受到监控时,监控端口必须是同一VLAN的成员。对于监控端口以及受到监控的端口,不允许进行VLAN成员的改变。
监控端口不可以是动态接入端口或者中继端口。但是,静态接入端口可以对中继线上的VLAN、多VLAN或者动态接入端口进行监控。受到监控的VLAN与静态接入端口有关联。
如果监控器以及受监控端口为受保护端口,端口监控将不起作用。
有关功能冲突的补充信息,请参阅下文的链接:
管理交换机——管理配置冲突 -- Catalyst 2900XL/3500XL 系列
请注意,处于监控状态的端口不执行生成树协议(STP),但端口仍然属于其镜像的端口VLAN。如果端口监控属于某个环路的一部分(例如,当您将其连接至集线器或者网桥,而环接至网络的其它部分时),您可能会以严重的桥接环路状况收尾,因为您不再受到STP的保护。请参阅 “为什么我的SPAN话路会产生一个桥接环路?”一节, 看一看产生该情况的一个实例。
在本例中,创建了两个并行的SPAN话路。
端口Fa0/1将对由端口Fa0/2发送、端口Fa0/5接收的业务进行监控。它也将对往返于管理接口VLAN 1的业务进行监控。
端口Fa0/4将对端口Fa0/3以及Fa0/6进行监控。
端口Fa0/3、Fa0/4以及Fa0/6均在VLAN 2中进行配置;其它端口以及管理接口均在默认的VLAN 1中进行配置。
Catalyst 2900XL/3500XL上的配置样本
Catalyst 2900XL/3500XL上的配置样本
配置步骤说明
如果要将端口Fa0/1配置为源端口Fa0/2、Fa0/5以及管理接口的目的端口,请在配置模式中选择接口Fa0/1:
Switch(config)#int fa0/1
Enter the list of ports to be monitored:
Switch(config-if)#port monitor fastEthernet 0/2
Switch(config-if)#port monitor fastEthernet 0/5
然后,这两个端口接收的或者发送的数据包也会被复制到端口Fa0/1。使用另一版本的port monitor 命令对管理接口的监控进行配置:
Switch(config-if)#port monitor VLAN 1
注:?/B>上文中的命令并不意味着端口Fa0/1将监控整个VLAN 1。VLAN 1关键字仅指交换机的管理接口。
输入以下命令说明在不同VLAN中监控某个端口是不可能的:
Switch(config-if)#port monitor fastEthernet 0/3
FastEthernet0/1 and FastEthernet0/3 are in different vlan
To finish the configuration, configure another session, this time using Fa0/4 as a destination SPAN port:
Switch(config-if)#int fa0/4
Switch(config-if)#port monitor fastEthernet 0/3
Switch(config-if)#port monitor fastEthernet 0/6
Switch(config-if)#^Z
检查配置情况的最佳方法是发出简单的 show running命令,或者使用 show port monitor 命令:
Switch#show port monitor
Monitor Port Port Being Monitored
--------------------- ---------------------
FastEthernet0/1 VLAN1
FastEthernet0/1 FastEthernet0/2
FastEthernet0/1 FastEthernet0/5
FastEthernet0/4 FastEthernet0/3
FastEthernet0/4 FastEthernet0/6
注:?/B>Catalyst 2900XL以及3500XL不支持单一接收方向的SPAN(Rx SPAN或者入口SPAN)或者单一发送方向的SPAN(Tx SPAN或者出口SPAN)。所有配置SPAN的受控端口必须既能进行业务接收(Rx)又能进行业务发送(Tx)。
[page]
Catalyst 2948G - L3和4908G - L3上的SPAN
Catalyst 2948G - L3以及4908G - L3为固定配置的交换机-路由器或者第3层交换机。第3层交换机的SPAN功能被称为端口侦听。但是这些交换机不支持端口侦听。请参阅 “Catalyst 2948G - L3和Catalyst 4908G - L3交换机路由器不支持的功能” 以及Catalyst 2948G - L3最新的版本说明。
Catalyst 8500上的SPAN
Catalyst 8540提供一项很基本的SPAN功能,名为端口侦听。有关详细信息,请检查现在的Catalyst 8540文档资料:
Catalyst 8500命令参考
关于端口侦听 (摘自第3层交换接口配置指南)
以下摘自命令参考:
端口侦听使您能将业务从一个或者多个源端口透明地镜像至一个目的地端口。
如果要设定基于端口的业务镜像或者侦听,请使用 snoop 命令。如果要取消侦听,请使用该命令的否定形式。
snoop interface source-portdirection snoop-direction
no snoop interface source-port
源端口指正受到监控的端口;侦听方向指源端口或者受到监控端口的业务方向:接收、发送或者两者兼备。.
8500CSR# configure terminal
8500CSR(config)# interface fastethernet 12/0/15
8500CSR(config-if)# shutdown
8500CSR(config-if)# snoop interface fastethernet 0/0/1 direction both
8500CSR(config-if)# no shutdown
下例显示了 show snoop 命令的输出结果。
8500CSR# show snoop
Snoop Test Port Name: FastEthernet1/0/4 (interface status=SNOOPING)
Snoop option: (configured=enabled)(actual=enabled)
Snoop direction: (configured=receive)(actual=receive)
Monitored Port Name:
(configured=FastEthernet1/0/3)(actual=FastEthernet1/0/3)
注:?/B>如果您正在运行MSR镜像(8540m-in-mz),Catalyst 8540以太网端口将不支持该命令。您必须使用CSR镜像(例如8540c - in - mz)来代替。当您运行MSR镜像时,仅ATM接口上支持侦听,这通过发出以下命令实现:
atm snoop
atm snoop-vp
atm snoop-vc
[page]
运行CatOS的Catalyst 4000、5000以及6000系列交换机上的SPAN
本地SPAN
SPAN功能已经逐一添加至CatOS,SPAN配置由一套SPAN命令组成。对于该命令,现在有大量选项可供选择:
switch (enable) set span
Usage: set span disable [dest_mod/dest_port|all]
set span
[inpkts
[learning
[multicast
[filter
[create]
不同的SPAN选项所使用的各个变量在以下网络图中介绍:
该图是Catalyst 6000交换机插槽6线路卡的一部分。端口6/1以及6/2属于VLAN 1,端口6/3属于VLAN 2,而端口6/4以及6/5属于VLAN 3。将一嗅探器连接至端口6/2,在各个不同的情况下将其作为监控端口使用。
PSPAN、VSPAN:监控某些端口或者整个VLAN
采用 set span 命令的最简单形式来监控单个端口。句法是: set span
分析器错误信息: 无法识别的配置节“identity”
飚车SP的最佳配置
手机彩信的SP端口有哪些?
配置VLAN的端口
PIX配置 SQL端口
如何配置路由器端口?
VLAN的端口配置
求路由 交换器批配置资料
求路由 交换器批配置资料
分析器错误
catalyst 1900系列交换机,其中catalyst是什么意思?
catalyst 2950 switch
chaser catalyst什么意思?
ATI Catalyst Control Center
Catalyst Control Center 打不开
请问Cisco4500做交换设备时,是否必须配置VLAN?
如何做交换机端口镜像配置
CISCO3550-12G 端口监听配置
怎么恢复端口原来的正确配置
如何在MODEM配置中打开端口
netsim_6_date3模拟器的端口时钟配置问题
方法1:编辑短信“00000”发送到SP短信端口号
困惑。交换机各个端口的物理地址在交换中起什么作用?
编译原理词法分析器