前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >交换安全包含哪些技术?

交换安全包含哪些技术?

作者头像
网络技术联盟站
发布2023-03-13 13:05:27
4380
发布2023-03-13 13:05:27
举报
端口镜像
  • 1. 端口镜像概述
  • 2. 基于端口的镜像
  • 3. 基于流的镜像
  • 4. 配置本地端口镜像
  • 5. 报文分析
  • 6. 报文分析工具
  • 7. 注意事项
  • 捕获业务报文
  • 端口隔离
    • 1. 基本概述
    • 2. 实验验证

端口镜像

1. 端口镜像概述

在某些场景中,我们可能需要监控交换机特定端口的入站或出站报文,或者需要针对特定的流量进行分析,例如上图中,我们期望抓取PC1收发的报文并进行分析,那么便可以在交换机的GE0/0/3口接一个监控PC,在监控PC上安装协议分析软件,然后在交换机上部署端口镜像,将GE0/0/2的入、出站流量镜像到GE0/0/3口上来,接下来我只要在监控PC上通过协议分析软件查看报文即可。

注意到,如果没有端口镜像技术,除非数据包的目的地是监控PC(所连接的端口),否则报文是不会发向该端口的。因此事实上端口镜像就是将某个特定端口的流量拷贝到某个监控端口,就这么简单。

端口镜像常用于:

  • 流量观测及统计;
  • 故障定位等。
镜像的分类:

1) 基于端口的镜像

端口镜像就是将被监控端口上的数据复制到指定的监控端口,对数据进行分析和监视。

2) 基于流的镜像

流镜像就是将匹配访问控制列表的业务流复制到指定的监控端口,用于报文的分析和监视。

2. 基于端口的镜像

端口镜像是指交换机复制一份从镜像端口流经的报文(可以指定入站或出站),并将此报文传送到指定的观察端口进行分析和监视。在端口镜像中,镜像端口流经的所有报文都将被复制到观察端口。

以太网交换机支持多对一的镜像,即将多个端口的报文复制到一个监控端口上。注意区分这里的观察端口和镜像端口。

端口镜像分为本地端口镜像和远程端口镜像:

1) 本地端口镜像

本地端口镜像中,监控PC与观察端口直接相连。

2) 远程端口镜像

远程端口镜像中,监控PC与观察端口所在设备之间通过二层网络或三层网络相联。

二层端口镜像(RSPAN:Remote Switched Port Analyzer):

若通过二层网络互联,以S9300交换机为例,它将镜像端口的报文封装VLAN,然后通过观察端口将报文在远程镜像VLAN中进行广播。远程的设备收到报文后,比较报文的VLAN ID,如果相同,则将该报文转发到远程观察端口。

三层端口镜像(ERSPAN:Encapsulated Remote SPAN):

若通过三层网络互联,以S9300交换机为例,它使用GRE报文头封装和解封装镜像报文,使得镜像报文可以穿透三层网络,从而实现镜像端口所在设备与观察端口所在设备之间通过三层网络相连时的端口镜像。

3. 基于流的镜像

流镜像就是将流镜像端口上的特定数据复制到指定的观察端口或CPU进行分析和监视。流镜像端口是指应用了包含流镜像行为的流策略的接口,从流镜像端口流过的报文,如果匹配此接口上流策略中的流分类,则将被复制并传送到观察端口或CPU。

流镜像分为两种,即流镜像到接口和流镜像到CPU:

1) 流镜像到接口,是把通过配置了流镜像的接口上的符合要求的报文复制一份,然后发送到观察端口以供分析诊断。

2) 流镜像到CPU,是把通过配置了流镜像的接口上的符合要求的报文复制一份,然后发送到CPU以供分析诊断。这里的CPU指的是配置了流镜像的接口所在接口板上的CPU。

4. 配置本地端口镜像

将交换机GE0/0/2端口的进、出口报文镜像到GE0/0/3。交换机配置如下:

代码语言:javascript
复制
[SW] observe-port 1 interface gigabitethernet0/0/3
[SW] interfae gigabitethernet0/0/2
[SW-gigabitethernet0/0/2] port-mirroring to observe-port 1 both

5. 报文分析

在IP网络中,有着各种各样的流量。协议或业务的正常运转得益于报文的正常交互。例如上图中SW1及SW2运行OSPF,那么实际上在SW1、SW2之间就在源源不断的交互着OSPF的报文,使得OSPF能够正常工作。再如从SW1去telnet SW2,实际上这个行为在底层也是由相关的报文交互来完成。普通的网络用户仅需要关注能否ping通,或者跑在网络上的业务是否正常,但是作为数通工程师的我们,应该具备从报文层面理解协议或机制的素质。

对于一个职业网络工程师,应该能够从报文层面理解IP数据,进而理解各种协议,以及利用这种技术理解对网络进行管理和排障。许多网络故障都可以通过分析包文来定位。网络工程师的成长之路:

6. 报文分析工具

常用的报文分析工具有:WiresharkEtherealSniffer

例如下图就是Wireshark软件的界面,在完成软件安装后,启动该软件,然后选择监听本地的哪个网卡,即可开始在该网卡上侦听报文。下图中显示的就是我们抓取到的各种报文。

小练习:

按照如图所示完成PC及交换机的IP配置。在交换机上开启Telnet服务。

在PC上打开wireshark抓包工具,监控以太网卡,然后从PC telnet交换机,观察抓到的报文,telnet是明文传输的,因此能够通过抓包,将telnet输入的用户名和密码,以及telnet上交换机之后输入的各种操作都抓取下来,因此telnet协议并不安全。

温馨提醒:wireshark是非标软件,擅自安装属信息安全违规,因此如若需安装学习该软件的使用,请自行走相关流程或在私人PC上完成。

7. 注意事项

  1. 观察端口专门用于故障定位或流量分析,不能用作普通业务口。

捕获业务报文

在实际项目中,在进行问题定位及分析时,我们可能并不具备在交换机上进行端口镜像的条件,例如管理PC不在机房,工程师通过远程登录的方式连接到网络设备,而如果此时又需要进行报文捕获,那么就可以使用capture-packet命令。

  1. 场景一:捕获交换机接口上收到的报文,并将捕获的结果输出到终端界面

在上图所示的场景中,我们希望在交换机上抓取接口GE6/0/13收到的报文,并将捕获的报文呈现在终端界面上,以此进行简单的判断:PC1 ping PC2所产生的ICMP报文是否通过该交换机。以S9300交换机为例,执行如下命令:

代码语言:javascript
复制
[SW] capture-packet interface GigabitEthernet 6/0/13 destination terminal

交换机便会开始捕获接口GE6/0/13所接收的所有报文,并将报文呈现在终端界面上,在这个过程中,交换机会持续在终端界面上显示捕获到的报文,直到捕获超时(缺省60s):

代码语言:javascript
复制
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 01
08 00 45 00 00 54 00 27 00 00 ff 01 a3 6e 0b 01
01 06 0b 01 01 0c 08 00 df 91 ab d7 00 01 3d a2
1c 54 00 00 00 00 50 4e 47 00 2b 0c d2 b2 00 01
02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11
12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21
22 23 24 25 26 27
-------------------------------------------------------
Packet: 2
-------------------------------------------------------
00 25 9e fb 19 54 4c 1f cc a0 57 d9 81 00 00 01
08 00 45 00 00 54 00 28 00 00 ff 01 a3 6d 0b 01
01 06 0b 01 01 0c 08 00 59 58 ab d7 00 02 3d a2
1e 48 00 00 00 00 50 4e 47 00 2b 14 56 ef 00 01
02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11
12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21
22 23 24 25 26 27
-------------------------------------------------------
(省略部分输出)

当PC1开始ping PC2时,我们就能在终端界面看到如上输出,上面截取了捕获到的两个报文。以第一个报文为例,这实际上是一个数据帧,红色字体部分是该帧的目的MAC地址,蓝色字体部分是源MAC地址。我们可以通过这些简单的信息判断目标报文是否到达(实际上,你还能在上述输出中,看到报文的源、目的IP地址等信息)。

  1. 场景二:捕获交换机接口上收到的特定报文,并将捕获的结果输出到终端界面

在上图所示的场景中,在交换机上进行报文捕获,只抓取PC1 Telnet PC2的报文。使用ACL3000来匹配感兴趣的流量,然后用capture-packet执行报文捕获。

代码语言:javascript
复制
[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时,可以看到如下输出:

代码语言:javascript
复制
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 01
08 00 45 c0 00 2c 00 2c 00 00 ff 06 a2 cc 0b 01
01 06 0b 01 01 0c f0 2b 00 17 97 06 da 39 00 00
00 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。

端口隔离

1. 基本概述

上图中,PC1、2、3同属一个VLAN(假设是VLAN10),使用相同的IP子网。默认情况下三台PC可互相访问,这是典型的二层互访。现在有这么一个需求,在不修改IP子网及VLAN规划的情况下,使得PC1-PC2之间无法互访,而PC1与PC3可互访、PC2与PC3可互访。这就可以用到端口隔离特性。

这里需要用到端口隔离组的概念,交换机的端口可以加入到特定的隔离组中,同一端口隔离组的端口之间互相隔离,不同端口隔离组的端口之间不隔离。因此要实现上述需求,配置的思路非常简单,在交换机上将端口1、2放置在同一隔离组中,端口3不做隔离组配置或者放入另一个隔离组中,然后开启端口隔离特性即可。

2. 实验验证

在上图中,PC1、PC2、PC3同属VLAN10、同属1.1.1.0/24子网,IP地址如上图所示。配置端口隔离使得PC1与PC2无法互访;PC1与PC3,PC2与PC3可互访。

交换机的配置如下:

代码语言:javascript
复制
[SW] vlan 10
代码语言:javascript
复制
#设置端口隔离模式为二层隔离三层互通:
[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不做隔离组的配置

完成上述配置后,检查一下:

代码语言:javascript
复制
<SW>display port-isolate group all
The 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即可。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络技术联盟站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 端口镜像
    • 1. 端口镜像概述
      • 2. 基于端口的镜像
        • 3. 基于流的镜像
          • 4. 配置本地端口镜像
            • 5. 报文分析
              • 6. 报文分析工具
                • 7. 注意事项
                • 捕获业务报文
                • 端口隔离
                  • 1. 基本概述
                    • 2. 实验验证
                    相关产品与服务
                    云联网
                    云联网(Cloud Connect Network,CCN)提供全网互联服务,助力您实现各地域的云上、云下多点互联。云联网的智能调度、路由学习等特性,可帮助您构建极速、稳定、经济的全网互联,轻松满足在线教育、游戏加速、混合云等全网互联场景下的极速体验。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档