赞
踩
端口镜像
1. 端口镜像概述
2. 基于端口的镜像
3. 基于流的镜像
4. 配置本地端口镜像
5. 报文分析
6. 报文分析工具
7. 注意事项
捕获业务报文
端口隔离
1. 基本概述
2. 实验验证
在某些场景中,我们可能需要监控交换机特定端口的入站或出站报文,或者需要针对特定的流量进行分析,例如上图中,我们期望抓取PC1收发的报文并进行分析,那么便可以在交换机的GE0/0/3口接一个监控PC,在监控PC上安装协议分析软件,然后在交换机上部署端口镜像,将GE0/0/2的入、出站流量镜像到GE0/0/3口上来,接下来我只要在监控PC上通过协议分析软件查看报文即可。
注意到,如果没有端口镜像技术,除非数据包的目的地是监控PC(所连接的端口),否则报文是不会发向该端口的。因此事实上端口镜像就是将某个特定端口的流量拷贝到某个监控端口,就这么简单。端口镜像常用于:流量观测及统计;故障定位等。
1) 基于端口的镜像:端口镜像就是将被监控端口上的数据复制到指定的监控端口,对数据进行分析和监视。2) 基于流的镜像:流镜像就是将匹配访问控制列表的业务流复制到指定的监控端口,用于报文的分析和监视。
端口镜像是指交换机复制一份从镜像端口流经的报文(可以指定入站或出站),并将此报文传送到指定的观察端口进行分析和监视。在端口镜像中,镜像端口流经的所有报文都将被复制到观察端口。
以太网交换机支持多对一的镜像,即将多个端口的报文复制到一个监控端口上。注意区分这里的观察端口和镜像端口。
1) 本地端口镜像:本地端口镜像中,监控PC与观察端口直接相连。2) 远程端口镜像:远程端口镜像中,监控PC与观察端口所在设备之间通过二层网络或三层网络相联。
二层端口镜像(RSPAN:Remote Switched Port Analyzer):若通过二层网络互联,以S9300交换机为例,它将镜像端口的报文封装VLAN,然后通过观察端口将报文在远程镜像VLAN中进行广播。远程的设备收到报文后,比较报文的VLAN ID,如果相同,则将该报文转发到远程观察端口。
三层端口镜像(ERSPAN:Encapsulated Remote SPAN):若通过三层网络互联,以S9300交换机为例,它使用GRE报文头封装和解封装镜像报文,使得镜像报文可以穿透三层网络,从而实现镜像端口所在设备与观察端口所在设备之间通过三层网络相连时的端口镜像。
流镜像就是将流镜像端口上的特定数据复制到指定的观察端口或CPU进行分析和监视。流镜像端口是指应用了包含流镜像行为的流策略的接口,从流镜像端口流过的报文,如果匹配此接口上流策略中的流分类,则将被复制并传送到观察端口或CPU。
1) 流镜像到接口,是把通过配置了流镜像的接口上的符合要求的报文复制一份,然后发送到观察端口以供分析诊断。2) 流镜像到CPU,是把通过配置了流镜像的接口上的符合要求的报文复制一份,然后发送到CPU以供分析诊断。这里的CPU指的是配置了流镜像的接口所在接口板上的CPU。
将交换机GE0/0/2端口的进、出口报文镜像到GE0/0/3。交换机配置如下:
[SW] observe-port 1 interface gigabitethernet0/0/3[SW] interfae gigabitethernet0/0/2[SW-gigabitethernet0/0/2] port-mirroring to observe-port 1 both
在IP网络中,有着各种各样的流量。协议或业务的正常运转得益于报文的正常交互。例如上图中SW1及SW2运行OSPF,那么实际上在SW1、SW2之间就在源源不断的交互着OSPF的报文,使得OSPF能够正常工作。再如从SW1去telnet SW2,实际上这个行为在底层也是由相关的报文交互来完成。普通的网络用户仅需要关注能否ping通,或者跑在网络上的业务是否正常,但是作为数通工程师的我们,应该具备从报文层面理解协议或机制的素质。
对于一个职业网络工程师,应该能够从报文层面理解IP数据,进而理解各种协议,以及利用这种技术理解对网络进行管理和排障。许多网络故障都可以通过分析包文来定位。网络工程师的成长之路:
常用的报文分析工具有:Wireshark、Ethereal、Sniffer。
例如下图就是Wireshark软件的界面,在完成软件安装后,启动该软件,然后选择监听本地的哪个网卡,即可开始在该网卡上侦听报文。下图中显示的就是我们抓取到的各种报文。
小练习:
按照如图所示完成PC及交换机的IP配置。在交换机上开启Telnet服务。
在PC上打开wireshark抓包工具,监控以太网卡,然后从PC telnet交换机,观察抓到的报文,telnet是明文传输的,因此能够通过抓包,将telnet输入的用户名和密码,以及telnet上交换机之后输入的各种操作都抓取下来,因此telnet协议并不安全。
温馨提醒:wireshark是非标软件,擅自安装属信息安全违规,因此如若需安装学习该软件的使用,请自行走相关流程或在私人PC上完成。
在实际项目中,在进行问题定位及分析时,我们可能并不具备在交换机上进行端口镜像的条件,例如管理PC不在机房,工程师通过远程登录的方式连接到网络设备,而如果此时又需要进行报文捕获,那么就可以使用capture-packet命令。
在上图所示的场景中,我们希望在交换机上抓取接口GE6/0/13收到的报文,并将捕获的报文呈现在终端界面上,以此进行简单的判断:PC1 ping PC2所产生的ICMP报文是否通过该交换机。以S9300交换机为例,执行如下命令:
[SW] capture-packet interface GigabitEthernet 6/0/13 destination terminal
交换机便会开始捕获接口GE6/0/13所接收的所有报文,并将报文呈现在终端界面上,在这个过程中,交换机会持续在终端界面上显示捕获到的报文,直到捕获超时(缺省60s):
Info: Captured packets will be shown on terminal.[SW]Packet: 1-------------------------------------------------------00 25 9e fb 19 54 4c 1f cc a0 57 d9 81 00 00 0108 00 45 00 00 54 00 27 00 00 ff 01 a3 6e 0b 0101 06 0b 01 01 0c 08 00 df 91 ab d7 00 01 3d a21c 54 00 00 00 00 50 4e 47 00 2b 0c d2 b2 00 0102 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 1112 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 2122 23 24 25 26 27-------------------------------------------------------Packet: 2-------------------------------------------------------00 25 9e fb 19 54 4c 1f cc a0 57 d9 81 00 00 0108 00 45 00 00 54 00 28 00 00 ff 01 a3 6d 0b 0101 06 0b 01 01 0c 08 00 59 58 ab d7 00 02 3d a21e 48 00 00 00 00 50 4e 47 00 2b 14 56 ef 00 0102 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 1112 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 2122 23 24 25 26 27-------------------------------------------------------(省略部分输出)
当PC1开始ping PC2时,我们就能在终端界面看到如上输出,上面截取了捕获到的两个报文。以第一个报文为例,这实际上是一个数据帧,红色字体部分是该帧的目的MAC地址,蓝色字体部分是源MAC地址。我们可以通过这些简单的信息判断目标报文是否到达(实际上,你还能在上述输出中,看到报文的源、目的IP地址等信息)。
在上图所示的场景中,在交换机上进行报文捕获,只抓取PC1 Telnet PC2的报文。使用ACL3000来匹配感兴趣的流量,然后用capture-packet执行报文捕获。
[SW] acl 3000[SW-acl-adv-3000] rule permit tcp source 11.1.1.6 0 destination 11.1.1.12 0 destination-port eq 23[SW-acl-adv-3000] quit[SW] capture-packet interface GigabitEthernet 6/0/13 acl 3000 destination terminal
执行上述命令后,当PC1 telnet PC2时,可以看到如下输出:
Info: Captured packets will be shown on terminal.[SW]Packet: 1-------------------------------------------------------00 25 9e fb 19 54 4c 1f cc a0 57 d9 81 00 00 0108 00 45 c0 00 2c 00 2c 00 00 ff 06 a2 cc 0b 0101 06 0b 01 01 0c f0 2b 00 17 97 06 da 39 00 0000 00 60 02 20 00 fe 8f 00 00 02 04 05 b4 00 00-------------------------------------------------------
另外,在capture-packet interface GigabitEthernet 6/0/13 acl 3000 destination terminal
命令的基础上增加file关键字并指定文件名,例如capture-packet interface GigabitEthernet 6/0/13 acl 3000destination terminal file test.cap
,那么当交换机捕获到报文后,不仅会在终端界面呈现,还会将报文保存到该网络设备的存储空间中,以test.cap的名字存放,这样便可以再完成抓包后,将该文件下载到管理PC并通过抓包软件更加直观地分析捕获的报文。
再者,在capture-packet
命令中使用timeout关键字,还可定义报文捕获的超时时间;使用vlan关键字,可以指定捕获的vlan。该命令目前只支持捕获接口入方向报文,不支持捕获接口出方向报文。捕获的报文有速率限制,缺省值是64kbps,如果有突发流量,超过捕获报文的速率限制,可能会存在丢包现象。最后,设备不支持捕获BFD和802.1ag。
上图中,PC1、2、3同属一个VLAN(假设是VLAN10),使用相同的IP子网。默认情况下三台PC可互相访问,这是典型的二层互访。现在有这么一个需求,在不修改IP子网及VLAN规划的情况下,使得PC1-PC2之间无法互访,而PC1与PC3可互访、PC2与PC3可互访。这就可以用到端口隔离特性。
这里需要用到端口隔离组的概念,交换机的端口可以加入到特定的隔离组中,同一端口隔离组的端口之间互相隔离,不同端口隔离组的端口之间不隔离。因此要实现上述需求,配置的思路非常简单,在交换机上将端口1、2放置在同一隔离组中,端口3不做隔离组配置或者放入另一个隔离组中,然后开启端口隔离特性即可。
在上图中,PC1、PC2、PC3同属VLAN10、同属1.1.1.0/24子网,IP地址如上图所示。配置端口隔离使得PC1与PC2无法互访;PC1与PC3,PC2与PC3可互访。
交换机的配置如下:
[SW] vlan 10
#设置端口隔离模式为二层隔离三层互通:[SW-vlan] port-isolate mode l2[SW] interface GigabitEthernet 0/0/1[SW-GigabitEthernet0/0/1] port link-type access[SW-GigabitEthernet0/0/1] port default vlan 10[SW-GigabitEthernet0/0/1] port-isolate enable group 1 #端口加入隔离组1[SW] interface GigabitEthernet 0/0/2[SW-GigabitEthernet0/0/2] port link-type access[SW-GigabitEthernet0/0/2] port default vlan 10[SW-GigabitEthernet0/0/2] port-isolate enable group 1 #端口加入隔离组1[SW] interface GigabitEthernet 0/0/3[SW-GigabitEthernet0/0/3] port link-type access[SW-GigabitEthernet0/0/3] port default vlan 10 #端口3不做隔离组的配置
完成上述配置后,检查一下:
display port-isolate group allThe ports in isolate group 1:GigabitEthernet0/0/1 GigabitEthernet0/0/2
将端口1及端口2都加入隔离组1,这样PC1及PC2就二层隔离了,也就无法互访了。但是PC1及PC2都能够与PC3互访。Port-isolate mode l2这条命令是将隔离模式设置为二层隔离三层不隔离。所谓的三层不隔离指的是同一个隔离组的节点之间仍然能够通过三层进行互访,例如:
PC1的IP为1.1.1.1,网关为vlanif10的IP 1.1.1.254,PC2的IP为2.2.2.2,网关为vlanif10的IP 2.2.2.254,Vlanif10配置了两个IP地址,也就是同一个VLAN我们用了两个IP子网。那么端口1与端口2现在虽然是二层隔离,ARP啥的无法透过来,但是PC1与PC2仍然能够借助自己的网关实现三层互访,这就是所谓的二层隔离但是三层不隔离。那么如果要彻底将端口1及端口2隔离呢?使用系统视图命令port-isolatemode all
即可。
网工必知必会 —— 链路聚合
两种方式可以实现 VLAN 间的互访
二层防环技术——Monitor Link
二层防环技术——Smart Link
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。