Red Hat Training

A Red Hat training course is available for RHEL 8

第 14 章 端口镜像

网络管理员可以使用端口镜像复制从一个网络设备传输到另一个网络设备的入站和出站网络流量。管理员使用端口镜像来监控网络流量,并收集网络流量,用于:

  • 调试网络问题并调整网络流
  • 检查并分析网络流量,来对网络问题进行故障排除
  • 检测入侵

14.1. 使用 nmcli 对网络接口进行镜像

您可以使用 NetworkManager 配置端口镜像。以下流程将流量从 enp1s0 镜像到 enp7s0,方法是添加流量控制 (tc) 规则并过滤到 enp1s0 网络接口。

先决条件

  • 一个镜像网络流量的网络接口。

流程

  1. 添加您要镜像网络流量的网络连接配置集:

    # nmcli connection add type ethernet ifname enp1s0 con-name enp1s0 autoconnect no
  2. prio qdisc 附加到带有 10: handle 的出口(传出)流量的 enp1s0

    # nmcli connection modify enp1s0 +tc.qdisc "root prio handle 10:"

    在没有子项的情况下附加 prio qdisc 可允许附加过滤器。

  3. 为入口流量添加 qdisc,使用 ffff: handle:

    # nmcli connection modify enp1s0 +tc.qdisc "ingress handle ffff:"
  4. 添加以下过滤器,以匹配入口和出口 qdiscs 上的数据包,并将其镜像到 enp7s0

    # nmcli connection modify enp1s0 +tc.tfilter "parent ffff: matchall action mirred egress mirror dev enp7s0"
    
    # nmcli connection modify enp1s0 +tc.tfilter "parent 10: matchall action mirred egress mirror dev enp7s0"

    matchall 过滤器与所有数据包匹配,mirred 操作会将数据包重定向到目的地。

  5. 激活连接:

    # nmcli connection up enp1s0

验证步骤

  1. 安装 tcpdump 工具:

    # yum install tcpdump
  2. 显示目标设备上镜像的流量 (enp7s0):

    # tcpdump -i enp7s0