如何为 EVPN-VXLAN 交换矩阵配置远程端口镜像
关于这个网络配置示例
此网络配置示例 (NCE) 展示了如何为 EVPN-VXLAN 交换矩阵配置远程端口镜像。端口镜像可复制信息流,并使用 GRE 隧道将其发送至远程监控 (RMON) 站。与 ERSPAN 一样,带 VXLAN 封装的租户流量的远程端口镜像通常在数据中心环境中用于故障排除或监控。
我们演示了如何在精简主干交换机和 EVPN-VXLAN 交换矩阵中的边缘路由叶设备上添加远程端口镜像。我们的示例交换矩阵基于边缘路由桥接 (ERB) 架构。在集中路由桥接 (CRB) 交换矩阵中也支持 VXLAN 端口镜像。
另请参阅
用例概述
远程端口镜像和 EVPN-VXLAN 交换矩阵
远程端口镜像可复制信息流,并将镜像的流量传送到一个或多个镜像目标主机。流量由入口或出口接口识别,在某些情况下使用防火墙过滤器来增加粒度。镜像目标主机连接到叶交换机,叶交换机与源交换机属于同一结构。
对于 EVPN-VXLAN IP 交换矩阵,镜像的信息流封装在通用路由封装 (GRE) 中,并通过底层 IP 交换矩阵传输至监控主机的 IP 地址。您可将此主机用作监控站,以捕获和解码信息流。
远程端口镜像与 GRE 隧道非常适合 EVPN-VXLAN 等 IP 交换矩阵,因为您可以将主机子网通告至 EBGP 底层,将监控站连接到交换矩阵中的任何叶交换机。此外,连接到监控站的目标交换机在将 GRE 流交付至监控站之前,不必执行 GRE 解封装。GRE 通道可跨越多个中间 IP 节点或发送至交换矩阵外部。
端口镜像方法:分析器实例和端口镜像实例
有两种方法可用于端口镜像:一个分析器实例和一个端口镜像实例。每种方法都具有不同的优势,并且与不同的架构兼容。在这两种情况下,都自动创建用于镜像目的的 GRE 隧道,因此无需配置 GRE 隧道。
分析器实例 是端口镜像,没有任何过滤标准。分析器是要实施的最简单的流量镜像形式。您只需要指定接口是镜像信息流的来源,以及要在该接口上镜像的信息流是出口、入口还是两者。您还指定镜像流量目标的 IP 地址。无需配置或应用防火墙过滤器。
由于分析器实例不特定于租户,因此在您没有有关租户流的信息时,这是最佳方法。
端口镜像实例 使用租户流量特定标准镜像信息流。交换矩阵的管理员决定对所镜像的接口感兴趣的特定租户源 IP 地址、协议、端口等。当需要镜像特定流量时,请使用端口镜像实例。
瞻博网络支持三大数据中心架构。所有支持远程端口镜像。对于每个架构,我们建议以下端口镜像方法:
-
桥接叠加:分析器实例
-
集中路由桥接 (CRB):端口镜像实例
-
边缘路由桥接 (ERB):端口镜像实例
技术概述
EVPN-VXLAN ERB 交换矩阵中的远程端口镜像
此 NCE 涵盖具有精简主干的 ERB 架构的远程端口镜像。
在具有精简主干的 EVPN-VXLAN ERB 交换矩阵中,租户特定的内部流不能有选择地发送到隧道中。精简主干设备仅支持基于外部标头的过滤(底层)。例如,主干交换机可以过滤来自特定源 IPv4 环路地址的数据包,并将流量发送到使用 GRE 隧道连接到另一个叶设备的监控站。
ERB 架构中的叶设备支持使用 GRE 进行远程端口镜像,以实现租户特定流。在这种情况下,您可以在集成路由和桥接 (IRB) 接口实施远程端口镜像过滤,以镜像 VLAN 间(路由)流量。要镜像 VLAN 内部(桥接)流量,请将接口过滤器应用于连接到服务器或主机设备的入口接口。
在主干或叶式任一方法中,镜像的流量通过 GRE 隧道流向远程分析器。
使用 QFX 系列交换机进行远程端口镜像
在以下示例中,我们展示了使用基于 QFX 系列交换机的 ERB 架构使用远程端口镜像的不同方式。
QFX5110 和 QFX5120 交换机在 ERB 参考数据中心架构中性能优异,叶设备也是如此,因为这些型号可以执行虚拟间网络标识符 (VNI) 路由。
表 1 显示了使用 QFX10002 和 QFX10008 交换机时对各种用例的端口镜像实例类型支持。 表 2 在使用 QFX5110 和 QFX5120 交换机时显示相同。
用例 |
子用例 |
分析器实例 |
端口镜像实例 |
---|---|---|---|
提供 IP 传输的主干 |
从枝叶到主干的入口 |
支持 |
支持 |
从主干到枝叶的出口 |
支持 |
支持 |
|
CRB 情景中的主干 |
IRB 入口,终止流量 |
仅支持 ge、xe 和 ae 接口 |
不支持 |
IRB 出口,终止流量 |
仅支持 ge、xe 和 ae 接口 |
不支持 |
|
边界封装 |
ESI-LAG 的接入入口 |
支持 |
支持 |
边界解封装 |
交换矩阵出口 |
不支持 |
不支持 |
用例 |
子用例 |
分析器实例 |
端口镜像实例 |
---|---|---|---|
提供 IP 传输的精简主干 |
从枝叶到主干的入口 |
支持 |
支持 |
从主干到枝叶的出口 |
支持 |
不支持 |
|
ERB 情景中的枝叶 |
IRB 入口,终止流量 |
仅支持 ge、xe 和 ae 接口 |
支持 |
IRB 出口,终止流量 |
仅支持 ge、xe 和 ae 接口 |
不支持 |
|
边界封装 |
ESI-LAG 的接入入口 |
支持 |
支持 |
ESI-LAG 的接入出口 |
支持 |
不支持 |
|
边界解封装 |
交换矩阵入口 |
不支持 |
不支持 |
交换矩阵出口 |
不支持 |
不支持 |
此示例中的所有 QFX 交换机均运行 Junos OS 版本 18.4R2 或更高版本。运行 Junos OS 版本 18.4R2 的 QFX5110 和 QFX5120 交换机支持以下扩展数字:
-
默认分析器会话:4 个
-
端口镜像会话:3 个端口镜像会话 + 1 个全局端口镜像会话
此 NCE 涵盖以下用例:
-
示例:EVPN-VXLAN ERB 交换矩阵主干设备的入口/出口解决方案 向您展示如何通过 ERB 交换矩阵中的精简主干设备镜像入口和出口流量。
-
示例:EVPN-VXLAN ERB 阵列叶设备的入口解决方案 演示了如何在 ERB 场景中通过叶设备镜像入口流量。
-
示例:在 ESI-LAG 接口启用远程镜像实例 将向您展示如何使用边界封装用例中的端口镜像实例或分析器实例,以便通过 ESI-LAG 接口访问入口和出口流量。
-
示例:在 ESI-LAG 接口启用远程分析器实例 可向您展示如何使用分析器实例通过 ESI-LAG 接口镜像入口和出口流量。
使用这些示例中介绍的过程,为您的特定用例启用远程端口镜像。
拓扑
要求
此配置示例使用以下运行 Junos OS 版本 18.4R2 或更高版本的设备。此示例在运行 Junos 22.2R1 的 QFX 交换机上重新验证。
-
两台 QFX5110 交换机作为精简主干设备。
-
一台 QFX10002 交换机用作边界叶设备。
-
两台 QFX5110 或 5120 交换机用作服务器 Leaf 1 和服务器 Leaf 2 设备。
-
一个 QFX10002 作为服务器 Leaf 4。如果需要,可以使用 QFX5110 或 QFX5120 代替 QFX10002。
-
通过 EVPN-VXLAN 交换矩阵发送和接收流量的两台服务器。
-
配备有分析器应用程序的监控站。在此示例中,我们使用 Wireshark。
基准拓扑
此 NCE 侧重于如何在现有 EVPN-VXLAN 交换矩阵中添加不同类型的端口镜像。 图 1 详细介绍了以下所有示例的基准拓扑。

主干 1 和 2 是不执行任何 VXLAN 封装或解封装的精简主干设备。服务器 1 和 2 共享 VLAN 101 和 10.1.101.0/24 子网。服务器 1 从单宿主机开始到 Leaf 1。在以后的部分中,我们将它连接到叶 2 以形成一个 ESI-LAG 接口。服务器 2 连接到叶 4。叶 3 充当边界叶。其配置与服务器叶上使用的配置相同。请注意,在此示例中,Leaf 4 是连接到 xe-0/0/33:1 接口上的分析器设备的 QFX10000 交换机。
该拓扑支持在服务器 1 和叶 1 和 2 之间使用 ESI-LAG 进行多宿主。在本 NCE 中,并非所有场景都使用这种多宿主功能。有关完整启动设备配置,请参阅 附录:完整设备配置。
示例:EVPN-VXLAN ERB 交换矩阵主干设备的入口/出口解决方案
概述
在此示例中,我们支持在精简主干交换机上进行远程端口镜像。镜像的流量通过 GRE 隧道发送至远程监控站。此用例基于端口镜像实例方法。
此示例使用 EVPN-VXLAN ERB 架构,其中在叶设备上进行单播虚拟网络标识符 (VNI) 路由。精简主干设备不会终止任何 VXLAN 隧道。它们提供 IP 转发以及基于 IBGP 的叠加网络中的路由反射功能。我们的叠加基于 EBGP,因此我们不使用路由反射。
此配置可镜像叶设备之间发送的所有流量。监控站捕获叶上所有 VLAN 的 VLAN 内部(桥接)和 VLAN 间(路由)流量。租户的特定信息不会在精简主干设备上配置,但您可以在精简主干主干处启用镜像会话。
注意分析器端口的容量。大量流量通过分析器端口,因为您正在镜像叶对之间发送的所有叠加信息流。叶设备通过两个 40GE 接口连接到主干,因此它们能够承载大量流量。交换机的缓冲功能有限。如果镜像的信息流超过监控站支持的流量,则会发生帧丢弃。
要增加容量,请使用包含多个链路成员的聚合以太网接口。通过在叶设备上执行镜像,并选择性地为特定租户镜像流量,从而减少流量负载。
拓扑
此配置示例使用 “要求”中显示的硬件和软件组件。拓扑中的设备从 附录:完整设备配置中提供的基准配置开始。
如 图 2 所示,主干 1 通过应用于其 et-0/0/7 接口的防火墙过滤器,镜像叶 1 和叶 4 之间的入口和出口叠加流量。此接口连接到服务器 Leaf 1。通过在服务器 1 和服务器 2 之间发送 ping 流量来生成叠加信息流。镜像的流量由 Spine 1 发送至连接到边界叶 3 上的 xe-0/0/33:1 接口的远程监控站。

主干使用 GRE 通道将镜像的流量发送至监控站。GRE 是必要的,因为镜像的信息流可能是第 2 层或叠加第 3 层,因此无法定向到底层结构上。一旦通过底层建立了面向监控子网 172.16.1.0/24 的 IP 可访问性,GRE 隧道就会自动形成。
在这种情况下,服务器 1 是单宿主到枝叶 1 的。
配置
使用此示例镜像通过主干 1 的流量。要镜像所有流量,请在主干 2 上重复配置。在主干 1 和 2 上配置端口镜像时,无论叶选择哪个 ECMP 交换矩阵下一跳跃,流量都将镜像。
-
(可选)停用主干 2 上的 BGP。出于测试目的,我们停用了主干 2 上的 BGP 部分。这样,我们只能专注于主干 1,并确保叶 1 和叶 4 之间的所有流量都镜像。
user@spine2# deactivate protocols bgp user@spine2# commit
在主干 2 上停用 BGP 后,Leaf 1 有一个下一跳跃来到达叶 4 的回传。这是通过主干 1 通过其 et-0/0/48 接口。
user@leaf1> show route 10.1.255.14 inet.0: 11 destinations, 12 routes (11 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.1.255.14/32 *[BGP/170] 04:10:11, localpref 100 AS path: 65001 65014 I, validation-state: unverified > to 10.1.11.1 via et-0/0/48.0
-
在 Spine 1 创建镜像实例,将镜像的流量发送到远程监控站。
user@spine1# set forwarding-options port-mirroring instance mirror-leaf1-and-leaf4 family inet output ip-address 172.16.1.2
-
在 ERB 交换矩阵中,精简主干不具有叠加感知能力。在叶设备之间发送的所有 VXLAN 封装流量均使用本地 VTEP 地址。VTEP 地址通常与设备的环路地址匹配。这意味着我们可以在主干设备上使用过滤器来匹配相关叶设备的回传地址,从而将流量定向到端口镜像实例中。
在主干 1 中,创建与叶 1 和叶 4 的源和目标 IP 地址匹配的防火墙过滤器。通过在源 IP 和目标 IP 上匹配,在这些叶之间发送的所有叠加信息流都将镜像到 GRE 隧道中。
注意:由于精简主干不具备 VXLAN 感知能力,因此此方法可反映叶设备发送的所有叠加信息流。例如,如果叶已定义 100 VLAN 或 VXLAN VNIs,则所有 100 VNIS 的流量将镜像。如果您想更精细地镜像,请参阅 示例:EVPN-VXLAN ERB 阵列叶设备的入口解决方案。在该示例中,镜像功能发生在 VXLAN 感知叶设备上。
为从 Leaf 1 发送的信息流设置防火墙过滤器。在我们的示例中,叶 1 发送的所有 VXLAN 流量(通过主干)的源地址为 10.1.255.11。叶 4 发送的所有 VXLAN 流量的源地址为 10.1.255.14。
[edit firewall family inet filter port-mirror-from-leaf1] user@spine1# set term term1 from source-address 10.1.255.11/32 user@spine1# set term term1 from destination-address 10.1.255.14/32 user@spine1# set term term1 then count from-leaf1-vtep user@spine1# set term term1 then port-mirror-instance mirror-leaf1-and-leaf4 user@spine1# set term term1 then accept user@spine1# set term term2 then accept
为从 Leaf 4 发送的信息流设置防火墙过滤器。
[edit firewall family inet filter port-mirror-from-leaf4] user@spine1# set term term1 from source-address 10.1.255.14/32 user@spine1# set term term1 from destination-address 10.1.255.11/32 user@spine1# set term term1 then count from-leaf4-vtep user@spine1# set term term1 then port-mirror-instance mirror-leaf1-and-leaf4 user@spine1# set term term1 then accept user@spine1# set term term2 then accept
-
将防火墙过滤器应用于主干 1 的叶 1 和叶 4 面结构接口。
user@spine1# set interfaces et-0/0/7 unit 0 family inet filter input port-mirror-from-leaf1 user@spine1# set interfaces et-0/0/6 unit 0 family inet filter input port-mirror-from-leaf4
注意过滤器应用程序的方向性。我们的过滤器支持 QFX5110 平台,根据 表 2,该平台仅支持用于端口镜像的入口过滤器。通过使用在本地叶的 VTEP 上匹配的输入过滤器作为源地址,并将远程叶的 VTEP 用作目标地址,我们确保仅镜像这两个叶之间的叠加流量。如果您希望镜像叶发送的所有 VXLAN 流量,而不管目标叶如何,请在过滤器中的本地叶源地址上匹配。
-
(可选)添加任何附加过滤器。
在此示例中,到目前为止,我们假设 Server 1 仅对 Leaf 1 进行单宿主机。如果服务器多宿主到叶 1 和叶 2,则需要调整显示的过滤器,以捕获从叶 2 到叶 4 的流量,反之亦然。
例如,这些语句为主干 1 面向叶 2 的接口创建输入过滤器:
[edit firewall family inet filter port-mirror-from-leaf4] user@spine1# set term term1 from source-address 10.1.255.12/32 user@spine1# set term term1 from destination-address 10.1.255.14/32 user@spine1# set term term1 then count from-leaf2-vtep user@spine1# set term term1 then port-mirror-instance mirror-leaf1-and-leaf4 user@spine1# set term term1 then accept user@spine1# set term term2 then accept
[edit] user@spine1# set interfaces et-0/0/8 unit 0 family inet filter input port-mirror-from-leaf2
需要对现有
port-mirror-from-leaf4
过滤器进行快速修改,以便在 Leaf 2 VTEP 的目标地址上进行匹配。[edit firewall family inet filter port-mirror-from-leaf4] user@spine1# set term term1 from destination-address 10.1.255.12/32
-
在主干 1 上提交更改。
从开始 EVPN-VXLAN 基准的更改显示:
user@spine1# show | compare rollback 1 [edit interfaces et-0/0/6 unit 0 family inet] + filter { + input port-mirror-from-leaf4; + } [edit interfaces et-0/0/7 unit 0 family inet] + filter { + input port-mirror-from-leaf1; + } [edit] + forwarding-options { + port-mirroring { + instance { + mirror-leaf1-and-leaf4 { + family inet { + output { + ip-address 172.16.1.2; + } + } + } + } + } + } + firewall { + family inet { + filter port-mirror-from-leaf1 { + term term1 { + from { + source-address { + 10.1.255.11/32; + } + destination-address { + 10.1.255.14/32; + } + } + then { + count from-leaf1-vtep; + port-mirror-instance mirror-leaf1-and-leaf4; + accept; + } + } + term term2 { + then accept; + } + } + filter port-mirror-from-leaf4 { + term term1 { + from { + source-address { + 10.1.255.14/32; + } + destination-address { + 10.1.255.11/32; + } + } + then { + count from-leaf4-vtep; + port-mirror-instance mirror-leaf1-and-leaf4; + accept; + } + } + term term2 { + then accept; + } + } + } + }
-
修改 Leaf 3 的配置,以配置连接到监控站的 xe-0/0/33:1 接口。
user@bl-leaf3# set interfaces xe-0/0/33:1 unit 0 family inet address 172.16.1.1/24
连接到监控站的叶设备不需要显式 GRE 配置。这是因为 GRE 隧道在监控站终止。您必须确保监控站的 IP 地址可到达交换矩阵底层。不同的说明是,如果 GRE 没有底层可到达监控站,则主干无法将封装的流量发送至监控站。
-
修改边界叶 3 的底层导出策略以通告监控站的前缀。我们的拓扑结构使用 EBGP 底层。我们只是为现有的底层出口政策添加一个新的术语。
[edit policy-options policy-statement send-direct] user@bl-leaf3# set term 2 from protocol direct user@bl-leaf3# set term 2 from route-filter 172.16.1.0/24 exact user@bl-leaf3# set term 2 then accept
-
提交边界叶 3 上的更改。
开始基准的更改显示:
user@bl-leaf3# show | compare rollback 1 [edit interfaces] + xe-0/0/33:1 { + unit 0 { + family inet { + address 172.16.1.1/24; + } + } + } [edit policy-options policy-statement send-direct] term 1 { ... } + term 2 { + from { + protocol direct; + route-filter 172.16.1.0/24 exact; + } + then accept; + }
验证
-
验证从主干 1 到监控站的底层连接。
在主干 1 上,显示到 172.16.1.0/24 的路由。
user@spine1> show route 172.16.1.0/24 inet.0: 16 destinations, 17 routes (16 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.1.0/24 *[BGP/170] 00:32:00, localpref 100 AS path: 65013 I, validation-state: unverified > to 10.1.13.2 via et-0/0/5.0
注意:严格地说,只需要在主干站和监控站之间建立简单的连接。我们在监控站上配置了一个静态路由,使其能够到达交换矩阵底层。这允许进行故障隔离的 ping 测试。
对监控站进行 Ping 以确认连接。
user@spine1> ping 172.16.1.2 count 2 PING 172.16.1.2 (172.16.1.2): 56 data bytes 64 bytes from 172.16.1.2: icmp_seq=0 ttl=63 time=1.116 ms 64 bytes from 172.16.1.2: icmp_seq=1 ttl=63 time=1.046 ms --- 172.16.1.2 ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max/stddev = 1.046/1.081/1.116/0.035 ms
输出确认从主干到监控站的预期底层可访问性。
- 确认主干 1 上的端口镜像实例。在主干 1 上,验证远程端口镜像状态是否为
up
。user@spine1> show forwarding-options port-mirroring detail Instance Name: mirror-leaf1-and-leaf4 Instance Id: 2 Input parameters: Rate : 1 Run-length : 0 Maximum-packet-length : 0 Output parameters: Family State Destination Next-hop inet up 172.16.1.2 .local..0
输出确认端口镜像实例的正确定义。的状态
up
表示主干有到监控站的底层路由。回想一下 GRE 是无状态协议。这就是为什么验证主干和监控站之间的连接是一个好主意,就像我们在上一步中所做的那样。 -
验证应用于主干 1 的过滤器是否正确反映了测试流量。
在生成任何 ping 之前清除计数器。
user@server1> clear firewall all
通过交换矩阵在 Server 1 和 Server 2 之间开始 ping。
user@server1> ping 10.1.101.20 count 10 rapid PING 10.1.101.20 (10.1.101.20): 56 data bytes !!!!!!!!!! --- 10.1.101.20 ping statistics --- 10 packets transmitted, 10 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.731/0.800/1.300/0.167 ms
现在显示主干 1 上的防火墙计数器。验证应用于主干 1 的过滤器是否正确反映了测试流量。我们的示例拓扑只有一个 VLAN 和一对服务器。这样可以轻松关联测试流量以过滤匹配项。任何非零计数都表明过滤器正常工作。
user@spine1> show firewall Filter: port-mirror-from-leaf1 Counters: Name Bytes Packets from-leaf1-vtep 1520 10 Filter: port-mirror-from-leaf4 Counters: Name Bytes Packets from-leaf4-vtep 1520 10
防火墙计数器正确反映了两台服务器之间的测试流量。
-
确认在 Server 1 和 Server 2 之间发送的流量在主干 1 上镜像并发送至监控站。
再次生成 Server 1 和 2 之间的流量(未显示为简洁性)。
rapid
使用 ping 命令中的选项生成更大的测试流量,从而简化关联。监控连接到监控站的边界叶 3 接口上的接口流量。确认出口数据包计数反映已生成的测试信息流。
user@bl-leaf3> monitor interface xe-0/0/33:1 bl-leaf3 Seconds: 17 Time: 19:58:30 Delay: 1/0/1 Interface: xe-0/0/33:1, Enabled, Link is Up Encapsulation: Ethernet, Speed: 10000mbps Traffic statistics: Current delta Input bytes: 1019608 (0 bps) [0] Output bytes: 5699872 (4752824 bps) [3382190] Input packets: 10115 (0 pps) [0] Output packets: 34752 (3126 pps) [17801]
输出确认信息流镜像到监控站。由于监控站不会对收到的 GRE 流量生成任何响应,因此预计不会出现输入数据包的缺失。
-
使用 Wireshark 或等效分析器应用程序捕获并解码镜像的信息流。
图 3:镜像流量分析捕获显示,Server 1 将 ping 流量发送至 Server 2,以及该服务器 2 回复。这确认叶 1 和叶 4 对之间发送的叠加信息流在主干 1 中正确镜像。请注意,VXLAN 封装的信息流(UDP 端口 4789)又封装为 GRE(IP 协议 47)。GRE 标头的协议类型为“ERSPAN”(可与远程端口镜像相媲美),所有其他标记设置为零。
借助解码,您可以查看底层中使用的叶 VTEP 或回传地址 (10.1.255.x)。还有服务器发送的原始第 2 层帧,现在显示为使用 VNI 101 封装在 VXLAN 中。服务器发送的 IP 数据包也解码。叠加网络中的服务器使用的 IP 地址可见 (10.1.100.x/24),它们生成的 IP/ICMP 数据包的详细信息也可见。
您已在拓扑上成功配置了端口镜像。
示例:EVPN-VXLAN ERB 阵列叶设备的入口解决方案
概述
使用以下示例镜像通过 EVPN-VXLAN ERB 交换矩阵上的叶设备的流量。与第一个示例中覆盖的基于精简主干的端口镜像场景不同,叶在 ERB 设计中具有租户感知和 VLAN 感知能力。这意味着我们可以镜像叶设备之间发送的特定流量,而不是所有叠加流量。与 ERB 叶设备上的过滤标准相符的租户流量镜像到 GRE 隧道中,该隧道在连接到边界叶 3 的监控站终止。
拓扑
配置
在第一种情景中,我们停用了主干 2 上的 BGP,以专注于主干 1 上的过滤器应用。在其余示例中,主干 1 和主干 2 都完全正常运行。
-
在 Leaf 1 上配置端口镜像实例。将 IP 地址 172.16.1.2 用于监控站。
user@leaf1# set forwarding-options port-mirroring instance mirror-leaf1-v101 family inet output ip-address 172.16.1.2
-
接下来,在分配给 VLAN 101 的子网上创建匹配的防火墙过滤器。目标是镜像服务器 1 到叶 1 发送的所有 VLAN 内部 101 流量。要捕获 VLAN 间流量,请为目标地址指定目标 VLAN 的子网。
[edit firewall family ethernet-switching filter mirror-leaf-1] user@leaf1# set term 1 from ip-source-address 10.1.101.0/24 user@leaf1# set term 1 from ip-destination-address 10.1.101.0/24 user@leaf1# set term 1 then accept user@leaf1# set term 1 then port-mirror-instance mirror-leaf1-v101 user@leaf1# set term 1 then count from-s1-v101 user@leaf1# set term 2 then accept
注意:如果您只希望镜像路由流量(VLAN 间),请使用
family inet
应用于 VLAN IRB 接口的过滤器。每个 VLAN 仅定义一个 IRB 接口。应用于 VLAN IRB 接口的过滤器可捕获相关 VLAN 的所有 VLAN 间流量,而不管信息流到达哪个前面板端口。此处显示的方法适用于 VLAN 间和 VLAN 内部流量,但需要根据其 VLAN 成员资格将过滤器应用于面向服务器的接口。
inet
应用于 IRB 接口的过滤器不会显示桥接(VLAN 内部)流量。 -
将远程端口镜像防火墙过滤器应用于输入方向连接到 Server 1 的访问端口。
user@leaf1# set interfaces xe-0/0/0 unit 0 family ethernet-switching filter input mirror-leaf-1
注意:在 QFX5110 和 QFX5120 交换机上,防火墙过滤器不能应用于输出方向,也无法应用于连接到主干设备的结构接口上。
-
由于 GRE 隧道在监控站终止,边界叶 3 不需要配置为执行 GRE 解封装。但是,叶 3 确实需要将监控站的子网的可访问性通告到交换矩阵的底层。在叶 3 上配置以下内容,以确定可到达监控站。
首先配置连接到监控站的 xe-0/0/33:1 接口。
user@bl-leaf3# set interfaces xe-0/0/33:1 unit 0 family inet address 172.16.1.1/24
-
修改边界叶 3 的底层导出策略以通告监控站的前缀。我们的拓扑结构使用 EBGP 底层。我们只是为现有的底层出口政策添加一个新的术语。
[edit policy-options policy-statement send-direct] user@bl-leaf3# set term 2 from protocol direct user@bl-leaf3# set term 2 from route-filter 172.16.1.0/24 exact user@bl-leaf3# set term 2 then accept
-
提交配置。
叶 1 显示了从起始基准更改。
user@bl-leaf1# show | compare rollback 1 [edit interfaces xe-0/0/0 unit 0 family ethernet-switching] + filter { + input mirror-leaf-1; + } [edit] + forwarding-options { + port-mirroring { + instance { + mirror-leaf1 { + family inet { + output { + ip-address 172.16.1.2; + } + } + } + } + } + } + firewall { + family ethernet-switching { + filter mirror-leaf-1 { + term 1 { + from { + ip-source-address { + 10.1.101.0/24; + } + ip-destination-address { + 10.1.101.0/24; + } + } + then { + accept; + port-mirror-instance mirror-leaf1; + count from-s1; + } + } + term 2 { + then accept; + } + } + } + }
您已通过 EVPN-VXLAN ERB 交换矩阵上的叶设备成功配置远程端口镜像。
验证
-
验证从叶 1 到监控站的底层连接。
在叶 1 上,显示到 172.16.1.0/24 的路由。
user@leaf1> show route 172.16.1.0/24 inet.0: 12 destinations, 13 routes (12 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.1.0/24 *[BGP/170] 4d 00:56:23, localpref 100 AS path: 65001 65013 I, validation-state: unverified > to 10.1.11.1 via et-0/0/48.0
注意:严格地说,需要叶站和监控站之间只有简单的连接。我们在监控站上配置了一个静态路由,使其能够到达交换矩阵底层。这使得 ping 测试有助于进行故障隔离。
对监控站进行 Ping 以确认连接。
user@leaf1> ping 172.16.1.2 count 2 source 10.1.255.11 PING 172.16.1.2 (172.16.1.2): 56 data bytes 64 bytes from 172.16.1.2: icmp_seq=0 ttl=62 time=1.380 ms 64 bytes from 172.16.1.2: icmp_seq=1 ttl=62 time=7.614 ms --- 172.16.1.2 ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max/stddev = 1.380/4.497/7.614/3.117 ms
输出确认从叶 1 到监控站的预期底层可访问性。我们必须从叶的环路地址获取 ping,因为我们的底层导出策略只会通告环路地址可达性。精简主干示例中不需要从环路地址采购。这是因为主干和边界叶直接连接到一个结构链路上。因此,当 ping 回复从主干面向阵列接口的脊叶中发出时,边界叶能够将 ping 回复路由回主干。
-
确认叶 1 上的端口镜像实例。
在叶 1 上,验证远程端口镜像状态是否为
up
。user@leaf1> show forwarding-options port-mirroring detail Instance Name: mirror-leaf1 Instance Id: 2 Input parameters: Rate : 1 Run-length : 0 Maximum-packet-length : 0 Output parameters: Family State Destination Next-hop inet up 172.16.1.2 et-0/0/48.0
输出确认端口镜像实例的正确定义。的状态
up
表示叶有到监控站的底层路由。回想一下 GRE 是无状态协议。因此,像上一步一样,验证叶站和监控站之间的连接是一个好主意。 -
验证应用于 Leaf 1 的过滤器是否正确反射测试流量。
通过交换矩阵在 Server 1 和 Server 2 之间开始 ping。验证应用于 Leaf 1 的过滤器是否正确反射信息流。我们的示例拓扑只有一个 VLAN 和一对服务器。这样可以轻松关联测试流量以过滤匹配项。任何非零计数都表明过滤器正常工作。
user@server1> ping 10.1.101.20 count 10 rapid PING 10.1.101.20 (10.1.101.20): 56 data bytes !!!!!!!!!! --- 10.1.101.20 ping statistics --- 10 packets transmitted, 10 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.731/0.800/1.300/0.167 ms
在生成任何 ping 之前清除计数器。
user@server1> clear firewall all
现在显示主干 1 上的防火墙计数器。
user@leaf1> show firewall Filter: mirror-leaf-1 Counters: Name Bytes Packets from-s1 1020 10
防火墙计数器正确反映了两台服务器之间的测试流量。
-
确认服务器 1 和 Server 2 之间的流量在 Leaf 1 镜像到监控站。
再次生成 Server 1 和 2 之间的流量(未显示为简洁性)。我们使用 ping 命令的快速选项来生成更大的数据包量,以便于检测。
监控边界叶 3 上的接口信息流计数器,以验证测试流量是否已发送至监控站。
user@bl-leaf3> monitor interface xe-0/0/33:1 bl-leaf3 Seconds: 17 Time: 19:58:30 Delay: 1/0/1 Interface: xe-0/0/33:1, Enabled, Link is Up Encapsulation: Ethernet, Speed: 10000mbps Traffic statistics: Current delta Input bytes: 1019608 (0 bps) [0] Output bytes: 5699872 (4752824 bps) [3382190] Input packets: 10115 (0 pps) [0] Output packets: 34752 (3126 pps) [17801]
输出确认信息流镜像到监控站。由于监控站不会对其收到的 GRE 流量生成任何响应,因此预计不会出现输入数据包的缺失。
-
使用 Wireshark 或等效分析器应用程序捕获并解码镜像的信息流。
图 5:镜像流量分析捕获显示,Server 1 将 ping 流量发送至 Server 2。回复信息流未镜像,因为我们只在 Leaf 1 的输入方向上应用了过滤器。在 Leaf 4 上应用类似的端口镜像实例和过滤器配置,以镜像回路信息流。请回顾一下,在精简主干案例中,镜像的信息流显示了 VXLAN 封装。在我们的 ERB 叶式案例中,我们在第 2 层流量被封装到 VXLAN 之前对其进行镜像。用于镜像信息流的过滤器将作为输入过滤器应用于面向服务器的接口上。入口没有 VXLAN 封装。
这类似于将过滤器应用于 VLAN 的 IRB 接口的情况。在 IRB 案例中,镜像流量不包含 VXLAN 封装。基于 IRB 的过滤器可在 IP 层处理 VLAN 间流量。因此,对于 IRB 过滤器案例,只会镜像第 3 层 IP 流量。
解码显示 GRE 隧道位于叶 1 与监控站之间,通过底层。服务器 1 发送的以太网帧和相关 IP 数据包已解码。分配给服务器的 IP 地址可见 (10.1.100.x/24),服务器 1 生成的 IP/ICMP 数据包的详细信息也可见。
您已在拓扑上成功配置了端口镜像。
示例:在 ESI-LAG 接口启用远程镜像实例
概述
以太网分段标识符 (ESI) 是唯一的 10 字节编号,用于识别连接到服务器的 EVPN-VXLAN 交换矩阵中的以太网分段。ESI 配置在连接到服务器的接口上。当多个链路形成链路聚合组 (LAG) 并连接到服务器时,这将形成一个 ESI-LAG(也称为 EVPN LAG)接口。在某些情况下,您需要为进入或离开 ESI-LAG 接口的所有或部分流量启用端口镜像。
使用本节在 EVPN-VXLAN ERB 交换矩阵的 ESI-LAG 级别启用远程端口镜像。
拓扑
此配置示例使用 “要求”中显示的硬件和软件组件。拓扑中的设备从 附录:完整设备配置中提供的基准配置开始。
在这种情况下,我们会修改 EVPN 交换矩阵以支持服务器 1 的多宿主,以便离开 1 和 2。我们使用 ESI-LAG(也称为 EVPN LAG 接口)来做到这一点。查看 EVPN LAG 配置优秀实践 的最佳实践。
图 6 显示了此示例的拓扑。这两个主干都在这种拓扑中运行。ECMP 表示叶 1 和叶 2 可通过任一主干设备发送流量。为了简化插图,我们展示了以主干 1 为焦点的流量和镜像路径。

接口 ae0.0 是连接到 Server 1 的 ESI-LAG 接口。服务器 1 被分配为 10.1.101.10/24 的 IP 地址,并与 VLAN 101 相关联。目标是在通过任一叶上的 ae0.0 时过滤,然后镜像从 Server 1 发送的信息流。镜像的信息流置于 GRE 隧道中并发送至监控站。与以前一样,您必须确保监控站子网可到达 EBGP 底层。
开始之前
如果您从 附录:完整设备配置中显示的基准配置开始,请在开始之前按照这些步骤修改拓扑。
-
修改 Leaf 1 和 Leaf 2 的配置以支持 Server 1 的多宿主附件。首先将现有 xe-0//0/0 接口重新命名为新的 ae0.0 接口。此可通过 xe-0/0/0 接口的任何配置来节省一些时间。
user@leaf1# rename interfaces xe-0/0/0 to ae0 user@leaf1# set interfaces ae0 esi 00:02:02:02:02:02:02:02:00:04 user@leaf1# set interfaces ae0 esi all-active user@leaf1# set interfaces ae0 aggregated-ether-options lacp active user@leaf1# set interfaces ae0 aggregated-ether-options lacp system-id 00:00:02:02:00:04
-
服务器聚合以太网接口(通常称为 Linux 中的粘合接口)的配置细节超出了此 NCE 的范围。请注意,对于服务器,只有标准聚合以太网配置。与 ESI-LAG 相关的语句仅应用于叶设备。
注意:启动基准配置通过
set chassis aggregated-devices ethernet device-count 1
配置语句支持聚合以太网接口。您必须为聚合设备启用机箱支持,或者未创建聚合接口。 -
对叶设备和服务器应用这些更改并提交这些更改后,确认两个叶上的 ae0 接口是否正常运行。为了澄清起见,下面的示例输出已缩短。
user@leaf2> show interfaces ae0 Physical interface: ae0, Enabled, Physical link is Up Physical interface: ae0, Enabled, Physical link is Up [...] Current address: b8:c2:53:ba:8b:80, Hardware address: b8:c2:53:ba:8b:80 Ethernet segment value: 00:02:02:02:02:02:02:02:00:04, Mode: all-active Last flapped : 2022-09-07 14:57:53 UTC (01:06:43 ago) [...] Egress queues: 12 supported, 5 in use Queue counters: Queued packets Transmitted packets Dropped packets 0 81129 81129 0 3 0 0 0 4 0 0 0 7 4135 4135 0 8 64 64 0 [...] Protocol eth-switch, MTU: 1514, Generation: 266, Route table: 7, Mesh Group: __all_ces__, EVPN multi-homed status: Forwarding, EVPN multi-homed ESI Split Horizon Label: 0, Next-hop: 1665, vpls-status: up Local Bias Logical Interface Name: vtep.32769, Index: 554, VXLAN Endpoint Address: 10.1.255.11 Flags: Is-Primary
还要验证 Server 1 是否能够 ping Server 2(未显示为简洁性)。
配置
此示例说明如何使用远程端口镜像实例在 ESI-LAG 级别启用远程端口镜像。此方法支持租户特定(叠加 VLAN 内)匹配标准,以便有选择地镜像流量。
-
在叶 1 和叶 2 上配置端口镜像实例。服务器 1 可通过其任一 LAG 成员接口发送 VLAN 101 的流量。ECMP 意味着流量可以到达任一叶。IP 地址 172.16.1.2 是监控站。
user@leaf1# set forwarding-options port-mirroring instance mirror-leaf1-v101 family inet output ip-address 172.16.1.2
-
接下来,在两个叶上分配给 VLAN 101 的子网上创建匹配的防火墙过滤器。目标是镜像服务器 1 到叶 1 或叶 2 发送的所有 VLAN 内部 101 流量。要捕获 VLAN 间流量,请为目标地址指定目标 VLAN 的子网。
如果您需要过滤多个源或目标 IP 地址,请考虑在过滤器中使用
source-prefix-list
和/或destination-prefix-list
。这样就可以更改前缀列表,而无需修改过滤器定义。[edit firewall family ethernet-switching filter mirror-leaf-1] user@leaf1# set term 1 from ip-source-address 10.1.101.0/24 user@leaf1# set term 1 from ip-destination-address 10.1.101.0/24 user@leaf1# set term 1 then accept user@leaf1# set term 1 then port-mirror-instance mirror-leaf1-v101 user@leaf1# set term 1 then count from-s1-v101 user@leaf1# set term 2 then accept
注意:如果您只想镜像路由流量(VLAN 间),请使用
family inet
应用于 VLAN IRB 接口的过滤器。每个 VLAN 仅定义一个 IRB 接口。因此,应用于 VLAN IRB 接口的过滤器会捕获关联 VLAN 的所有 VLAN 间流量,而不管信息流入口位于哪个前面板端口。此示例中显示的方法适用于 VLAN 间和 VLAN 内部流量,但需要根据其 VLAN 成员资格将过滤器应用于面向服务器的接口。
inet
应用于 IRB 接口的过滤器不会显示桥接(VLAN 内部)流量。 -
将远程端口镜像防火墙过滤器应用到 ae0.0 接口,作为两个叶上的输入过滤器。
user@leaf1# set interfaces ae0 unit 0 family ethernet-switching filter input mirror-leaf-1
注意:在 QFX5110 和 QFX5120 交换机上,防火墙过滤器无法在传出方向启用或在连接到主干设备的接口上使用。
-
由于 GRE 隧道在监控站终止,边界叶 3 不需要配置为执行 GRE 解封装。但是,叶 3 确实需要将监控站的子网的可访问性通告到交换矩阵的底层。配置连接到监控站的 xe-0/0/33:1 接口。
user@bl-leaf3# set interfaces xe-0/0/33:1 unit 0 family inet address 172.16.1.1/24
修改边界叶 3 的底层导出策略以通告监控站的前缀。我们的拓扑结构使用 EBGP 底层。我们只是为现有的底层出口政策添加一个新的术语。
[edit policy-options policy-statement send-direct] user@bl-leaf3# set term 2 from protocol direct user@bl-leaf3# set term 2 from route-filter 172.16.1.0/24 exact user@bl-leaf3# set term 2 then accept
-
叶 1 显示了对起始基准的更改。
#user@leaf1# show | compare base [edit interfaces xe-0/0/0] + gigether-options { + 802.3ad ae0; + } [edit interfaces xe-0/0/0] - unit 0 { - family ethernet-switching { - vlan { - members v101; - } - } - } [edit interfaces] + ae0 { + esi { + 00:02:02:02:02:02:02:02:00:04; + all-active; + } + aggregated-ether-options { + lacp { + active; + system-id 00:00:02:02:00:04; + } + } + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members v101; + } + filter { + input mirror-leaf-1; + } + } + } + } [edit] + forwarding-options { + port-mirroring { + instance { + mirror-leaf1 { + family inet { + output { + ip-address 172.16.1.2; + } + } + } + } + } + } + firewall { + family ethernet-switching { + filter mirror-leaf-1 { + term 1 { + from { + ip-source-address { + 10.1.101.0/24; + } + ip-destination-address { + 10.1.101.0/24; + } + } + then { + accept; + port-mirror-instance mirror-leaf1; + count from-s1; + } + } + term 2 { + then accept; + } + } + } + }
您已通过 EVPN-VXLAN ERB 交换矩阵上的叶设备成功配置远程端口镜像。
验证
-
验证从叶 1 到监控站的底层连接。
在叶 1 上,显示到 172.16.1.0/24 的路由。
user@leaf1> show route 172.16.1.0/24 inet.0: 12 destinations, 13 routes (12 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.1.0/24 *[BGP/170] 4d 00:56:23, localpref 100 AS path: 65001 65013 I, validation-state: unverified > to 10.1.11.1 via et-0/0/48.0
注意:严格地说,叶站和监控站之间只需要简单的连接。我们在监控站上配置了一个静态路由,使其能够到达交换矩阵底层。这样,ping 测试就可作为故障隔离工具进行。
对监控站进行 Ping 以确认连接。
user@leaf1> ping 172.16.1.2 count 2 source 10.1.255.11 PING 172.16.1.2 (172.16.1.2): 56 data bytes 64 bytes from 172.16.1.2: icmp_seq=0 ttl=62 time=1.380 ms 64 bytes from 172.16.1.2: icmp_seq=1 ttl=62 time=7.614 ms --- 172.16.1.2 ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max/stddev = 1.380/4.497/7.614/3.117 ms
输出确认从叶 1 到监控站的预期底层可访问性。我们必须从叶的环路地址获取 ping,因为我们的底层导出策略只会通告环路地址可达性。精简主干情况下不需要从环路地址采购。这是因为主干和边界叶共享一个直接连接的结构链路。
-
确认叶 1 上的端口镜像实例。
在叶 1 上,验证远程端口镜像状态是否为
up
。user@leaf1> show forwarding-options port-mirroring detail Instance Name: mirror-leaf1 Instance Id: 2 Input parameters: Rate : 1 Run-length : 0 Maximum-packet-length : 0 Output parameters: Family State Destination Next-hop inet up 172.16.1.2 et-0/0/48.0
输出确认端口镜像实例的正确定义。的状态
up
表示叶有到监控站的底层路由。回想一下 GRE 是无状态协议。因此,像上一步一样,验证叶站和监控站之间的连接是一个好主意。 -
验证应用于叶 1 和叶 2 的过滤器是否正确反射测试信息流。通过交换矩阵在 Server 1 和 Server 2 之间开始 ping。
user@server1> ping 10.1.101.20 count 10 rapid PING 10.1.101.20 (10.1.101.20): 56 data bytes !!!!!!!!!! --- 10.1.101.20 ping statistics --- 10 packets transmitted, 10 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.731/0.800/1.300/0.167 ms
验证应用于叶 1 和叶 2 的过滤器是否正确反射信息流。我们的示例拓扑只有一个 VLAN 和一对服务器。这样可以轻松关联测试流量以过滤匹配项。任何非零计数都表明过滤器正常工作。
由于 ECMP 行为,单 ping 流仅对聚合以太网接口的成员链路之一有哈希。这意味着测试流量预计会发送至一枝叶,或另一叶,但不会同时发送。如果 Server 1 生成大量流,则希望看到使用两个成员接口转发至两个叶的数据包。
在生成任何 ping 之前清除计数器。
user@server1> clear firewall all
现在显示叶 1 和叶 2 上的防火墙计数器。
user@leaf1> show firewall user@leaf1# run show firewall Filter: mirror-leaf-1 Counters: Name Bytes Packets from-s1 0 0
输出显示叶 1 中未显示任何数据包。这表示此流的服务器散列到 Leaf 2。
检查 Leaf 2 上的防火墙计数器:
user@leaf2> show firewall Filter: mirror-leaf-1 Counters: Name Bytes Packets from-s1 1020 10
Leaf 2 的防火墙计数器正确反映了生成的测试流量。
-
确认在 Leaf 1 和/或 Leaf 2 上发送的 Server 1 和 Server 2 之间的流量镜像,以便传输到监控站。
再次生成 Server 1 和 2 之间的流量(未显示为简洁性)。使用 ping 命令的快速选项生成更大的数据包量,使检测更加轻松。
监控边界叶 3 中的接口信息流计数器,以验证到达监控站的测试流量。
user@bl-leaf3> monitor interface xe-0/0/33:1 bl-leaf3 Seconds: 17 Time: 19:58:30 Delay: 1/0/1 Interface: xe-0/0/33:1, Enabled, Link is Up Encapsulation: Ethernet, Speed: 10000mbps Traffic statistics: Current delta Input bytes: 1019608 (0 bps) [0] Output bytes: 5699872 (4752824 bps) [3382190] Input packets: 10115 (0 pps) [0] Output packets: 34752 (3126 pps) [17801]
输出确认信息流已发送至监控站。由于监控站不会对其收到的 GRE 流量生成任何响应,因此预计不会出现输入数据包的缺失。
-
使用 Wireshark 或等效分析器应用程序捕获并解码镜像的信息流。
图 7:镜像流量分析捕获显示,Server 1 将 ping 流量发送至 Server 2。回复流量未镜像,因为我们只在输入方向的叶 1 和叶 2 应用了过滤器。在 Leaf 4 上应用类似的端口镜像实例和过滤器配置,以镜像回路信息流。请回想一下,在精简主干情况下,镜像的信息流显示 VXLAN 封装。在此 ERB 叶式案例中,我们在第 2 层流量被封装到 VXLAN 之前对其进行镜像。用于镜像信息流的过滤器在面向服务器的 ae0.0 接口上作为输入过滤器应用。入口没有 VXLAN 封装。
这类似于将过滤器应用于 VLAN 的 IRB 接口的情况。在 IRB 过滤案例中,镜像的信息流也不包含 VXLAN 封装。IRB 过滤器仅在 IP 层处理 VLAN 间流量。因此,对于 IRB 过滤器案例,仅镜像第 3 层 IP 流量。
解码显示 GRE 隧道位于叶 2 与监控站之间,通过底层。服务器 1 发送的以太网帧和 IP 数据包也解码。分配给服务器的 IP 地址可见性(10.1.100.x/24),服务器 1 生成的 IP/ICMP 数据包的详细信息也可见。
您已在拓扑上成功配置了端口镜像。
示例:在 ESI-LAG 接口启用远程分析器实例
概述
以太网分段标识符 (ESI) 是标识以太网分段的唯一 10 字节编号。ESI 在连接到服务器的接口上启用。当多个链路形成链路聚合组 (LAG) 时,结果是 ESI-LAG(也称为 EVPN LAG)接口。在某些情况下,您需要为进入或离开 ESI-LAG 接口的所有或部分流量启用端口镜像。
EVPN-VXLAN 交换矩阵中的叶设备上的 ESI-LAG 接口支持出口和入口分析器实例。这在数据中心很有用,管理员需要将进入或离开给定 ESI-LAG 端口的所有流量发送到或从远程主机发送。使用本节在 EVPN-VXLAN ERB 交换矩阵的 ESI-LAG 级别启用分析器实例。
分析器实例与端口镜像实例不同,因为分析器在输入、输出或两个方向上工作。此外,它会镜像接口上 的所有 流量。例如,如果 Server 1 使用中继接口有 10 个 VLAN,则所有 10 个 VLAN 的流量将发送至监控站。在上一个端口镜像示例中,过滤器用于从一个 VLAN 或 VLAN 中的特定 IP 地址选择性地镜像流量。
分析器实例不使用防火墙过滤器进行细粒度匹配。指定接口上指定方向上的所有信息流都镜像。
拓扑
此配置示例使用 “要求”中显示的硬件和软件组件。拓扑中的设备从 附录:完整设备配置中提供的基准配置开始。
在此示例中,服务器 1 和叶 1 和叶 2 之间使用 ESI-LAG(也称为 EVPN LAG)接口。查看 EVPN LAG 配置优秀实践 的最佳实践。
您可以在运行 Junos OS Evolved 22.3R1 或更高版本的 ACX7100 交换机上配置分析器实例。
图 8 显示了此示例的拓扑。

接口 ae0.0 是连接到 Server 1 的 ESI-LAG 接口。服务器 1 被分配为 10.1.101.10/24 的 IP 地址,并与 VLAN 101 相关联。目标是配置分析器实例,以转发叶 1 和叶 2 上的 ae0.0 接口上发送和接收的所有流量。镜像的信息流置于 GRE 隧道中并发送至监控站。与以前一样,您必须确保监控站子网可到达 EBGP 底层。
这两个主干都在这种拓扑中运行。ECMP 表示叶 1 和叶 2 可通过任一主干设备发送流量。为了减少图纸上的杂乱无章,我们以主干 1 设备为焦点,展示流量和镜像路径。
开始之前
如果您从 附录:完整设备配置中显示的基准配置开始,请在开始之前按照这些步骤修改拓扑。
-
修改 Leaf 1 和 Leaf 2 的配置以支持 Server 1 的多宿主附件。我们首先将现有 xe-0//0/0 接口重新命名为新的 ae0.0 接口。此可通过 xe-0/0/0 接口的任何配置来节省一些时间。
user@leaf1# rename interfaces xe-0/0/0 to ae0 user@leaf1# set interfaces ae0 esi 00:02:02:02:02:02:02:02:00:04 user@leaf1# set interfaces ae0 esi all-active user@leaf1# set interfaces ae0 aggregated-ether-options lacp active user@leaf1# set interfaces ae0 aggregated-ether-options lacp system-id 00:00:02:02:00:04
服务器聚合以太网接口(通常称为 Linux 中的粘合接口)的配置细节超出了此 NCE 的范围。值得注意的是,对于服务器,只有标准聚合以太网配置。与 ESI-LAG 相关的语句仅应用于叶设备。
注意:启动基准配置支持使用配置语句的
set chassis aggregated-devices ethernet device-count 1
聚合以太网设备。您必须为聚合设备启用机箱支持,或者未创建聚合接口。 -
对叶设备和服务器应用这些更改并提交这些更改后,确认两个叶上的 ae0 接口是否正常运行。为了澄清起见,下面的示例输出已缩短。
user@leaf2> show interfaces ae0 Physical interface: ae0, Enabled, Physical link is Up Physical interface: ae0, Enabled, Physical link is Up [...] Current address: b8:c2:53:ba:8b:80, Hardware address: b8:c2:53:ba:8b:80 Ethernet segment value: 00:02:02:02:02:02:02:02:00:04, Mode: all-active Last flapped : 2022-09-07 14:57:53 UTC (01:06:43 ago) [...] Queue counters: Queued packets Transmitted packets Dropped packets 0 81129 81129 0 3 0 0 0 4 0 0 0 7 4135 4135 0 8 64 64 0 [...] Protocol eth-switch, MTU: 1514, Generation: 266, Route table: 7, Mesh Group: __all_ces__, EVPN multi-homed status: Forwarding, EVPN multi-homed ESI Split Horizon Label: 0, Next-hop: 1665, vpls-status: up Local Bias Logical Interface Name: vtep.32769, Index: 554, VXLAN Endpoint Address: 10.1.255.11 Flags: Is-Primary
验证 Server 1 是否能够 ping Server 2(未显示为简洁性)。
配置
此示例说明如何使用远程分析器实例在 ESI-LAG 级别启用远程端口镜像。
-
ae0.0 接口是 ESI-LAG 接口,租户服务器 1 用于连接该接口。此 ESI-LAG 在叶 1 和叶 2 上均终止。为 ae0.0 接口配置两个叶上的分析器实例。请注意,您为输入和输出方向配置远程分析器。
[edit forwarding-options analyzer my-analyzer1] user@leaf1# set input ingress interface ae0.0 user@leaf1# set input egress interface ae0.0 user@leaf1# set output ip-address 172.16.1.2
-
由于 GRE 隧道在监控站终止,边界叶 3 不需要配置为执行 GRE 解封装。但是,叶 3 确实需要将监控站的子网的可访问性通告到交换矩阵的底层。
配置连接到监控站的 xe-0/0/33:1 接口。
user@bl-leaf3# set interfaces xe-0/0/33:1 unit 0 family inet address 172.16.1.1/24
修改边界叶 3 的底层导出策略以通告监控站的前缀。我们的拓扑结构使用 EBGP 底层。我们只是为现有的底层出口政策添加一个新的术语。
[edit policy-options policy-statement send-direct] user@bl-leaf3# set term 2 from protocol direct user@bl-leaf3# set pterm 2 from route-filter 172.16.1.0/24 exact user@bl-leaf3# set term 2 then accept
-
叶 1 显示了从起始基准更改。
user@leaf1# show | compare base [edit interfaces xe-0/0/0] + gigether-options { + 802.3ad ae0; + } [edit interfaces xe-0/0/0] - unit 0 { - family ethernet-switching { - vlan { - members v101; - } - } - } [edit interfaces] + ae0 { + esi { + 00:02:02:02:02:02:02:02:00:04; + all-active; + } + aggregated-ether-options { + lacp { + active; + system-id 00:00:02:02:00:04; + } + } + unit 0 { + family ethernet-switching { + interface-mode access; + vlan { + members v101; + } + } + } + } [edit] + forwarding-options { + analyzer { + my-analyzer1 { + input { + ingress { + interface ae0.0; + } + egress { + interface ae0.0; + } + } + output { + ip-address 172.16.1.2; + } + } + } + }
您已通过 EVPN-VXLAN ERB 交换矩阵上的叶设备成功配置远程端口镜像。
验证
-
验证从叶 1 和叶 2 到监控站的底层连接。
在叶 1 上,显示到 172.16.1.0/24 的路由。
user@leaf1> show route 172.16.1.0/24 inet.0: 12 destinations, 13 routes (12 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.1.0/24 *[BGP/170] 4d 00:56:23, localpref 100 AS path: 65001 65013 I, validation-state: unverified > to 10.1.11.1 via et-0/0/48.0
注意:严格地说,叶站和监控站之间只需要简单的连接。我们在监控站上配置了一个静态路由,使其能够到达交换矩阵底层。这样,ping 测试就可作为故障隔离工具进行。
对监控站进行 Ping 以确认连接。
user@leaf1> ping 172.16.1.2 count 2 source 10.1.255.11 PING 172.16.1.2 (172.16.1.2): 56 data bytes 64 bytes from 172.16.1.2: icmp_seq=0 ttl=62 time=1.380 ms 64 bytes from 172.16.1.2: icmp_seq=1 ttl=62 time=7.614 ms --- 172.16.1.2 ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max/stddev = 1.380/4.497/7.614/3.117 ms
输出确认从叶 1 到监控站的预期底层可访问性。我们必须从叶的环路地址获取 ping,因为我们的底层导出策略只会通告环路地址可达性。精简主干示例中不需要从环路地址采购,因为主干和边界叶通过共享结构链路子网直接连接。
-
确认叶 1 和叶 2 上的分析器实例。
在叶 1 上,验证远程分析器状态是否为
up
。user@leaf1> show forwarding-options analyzer Analyzer name : my-analyzer1 Mirror rate : 1 Maximum packet length : 0 State : up Ingress monitored interfaces : ae0.0 Egress monitored interfaces : ae0.0 Destination IP : 172.16.1.2
输出确认分析器实例的正确定义。的状态
up
表示叶有到监控站的底层路由。回想一下 GRE 是无状态协议。因此,像上一步一样,验证叶站和监控站之间的连接是一个好主意。 -
确认服务器 1 和 Server 2 之间的流量由叶 1 和/或叶 2 镜像到监控站。
再次生成 Server 1 和 2 之间的流量(未显示为简洁性)。我们使用 ping 命令的快速选项来生成更大的数据包量,以便于检测。
监控边界叶 3 中的接口信息流计数器,以验证到达监控站的测试流量。
user@bl-leaf3> monitor interface xe-0/0/33:1 bl-leaf3 Seconds: 17 Time: 19:58:30 Delay: 1/0/1 Interface: xe-0/0/33:1, Enabled, Link is Up Encapsulation: Ethernet, Speed: 10000mbps Traffic statistics: Current delta Input bytes: 1019608 (0 bps) [0] Output bytes: 5699872 (4752824 bps) [3382190] Input packets: 10115 (0 pps) [0] Output packets: 34752 (3126 pps) [17801]
输出确认到达监控站的信息流。由于监控站不会对其收到的 GRE 流量产生任何响应,因此预计不会出现输入数据包的缺失。
-
使用 Wireshark 或等效分析器应用程序捕获并解码镜像的信息流。
图 9:镜像流量分析捕获显示,Server 1 将 ping 流量发送至 Server 2。由于将分析器实例应用于 ae0.0 接口的两个方向,回复信息流也会镜像。由于分析器在接口级别工作,因此 LACP(聚合以太网接口上使用的链路级别协议)也会镜像。请回顾一下,在精简主干案例中,镜像的信息流显示了 VXLAN 封装。在此 ERB 叶式案例中,我们在第 2 层流量被封装到 VXLAN 之前捕获该流量。入口没有 VXLAN 封装。
这类似于将过滤器应用于 VLAN 的 IRB 接口的情况。在这种情况下,镜像的信息流也不包含 VXLAN 封装。基于 IRB 的过滤器仅在 IP 层捕获 VLAN 间流量。因此,对于 IRB 过滤器案例,仅镜像非 VXLAN 封装的第 3 层 IP 流量。
解码显示 GRE 隧道在叶 2 (10.1.12.2) 与监控站之间(通过底层)。服务器 1 发送的以太网帧和相关 IP 数据包也解码。分配给服务器的 IP 地址可见性(10.1.100.x/24),服务器 1 生成的 IP/ICMP 数据包的详细信息也可见。Server 2 的回复也会镜像,因为分析器实例将双向应用在我们的示例中。
您已在拓扑上成功配置了端口镜像。