通用防火墙/路由软件必须满足哪些要求才能使 OSI 2 端口镜像正常工作?

网络工程 防火墙 奥西 镜子 交换机端口 转发端口
2022-02-20 21:46:18

基础是显而易见的,但有一些我不明白的网络含义的技术点。

其中一些通用于网络,另一些通用于所有路由/防火墙软件或特定实现。如果特定的实现是相关的,那么我正在考虑通用而不是专门的网络设备——我在这里使用 OpenBSD/FreeBSD 的 pf,这样最有助于说明任何防火墙特定的处理。(即,不询问 Cisco/Juniper 等专用网络固件)。我想 pf或指令将是很好的示例dup-to但在紧要关头“tcpdump”也可能是相关的。spanbridge

我假设最广泛的情况,其中一个端口上的所有数据包都被镜像到另一个端口(OSI 2,暗示还有 OSI 3,没有任何选择性过滤器)。

  1. 如果在镜像端口上发送数据包,镜像端口是否实际上暗示了隐含的“阻止所有入站”规则,以便可以在外部侦听但不会发生其他交互或更改原始流量?
  2. 如果它确实创建了“阻止所有入站”规则的等效项,那么无状态规则参数是否必要和/或足以确保即使在镜像端口上阻止回复(SYN-ACK 等)也能正确镜像数据包?如果没有,那又如何?
  3. 镜像操作可能需要考虑混杂模式(使用tcpdump)或跨端口、dup-to指令或桥接接口(使用pf),以将所有(不仅仅是定向)流量镜像到另一个端口。这 4 种方法是否等效或同样适用于镜像端口?
  4. 镜像需要将源接口上的 ARP、RSTP 和 BGP 等数据包副本视为数据,当适当的服务配置为识别它们时,通常会自动将其视为可操作输入(除非入站阻塞)。这是否会破坏分层/数据包处理模型,因为它似乎需要防火墙实现来主动违反通常的数据/指令规范并将此类数据包作为“镜像”流上的数据转发,同时还将它们作为“真实”流上的指令进行操作?
  5. 转发数据包通常涉及自动生成额外的数据包,例如 ARP who-has、可能的路由协议,以及在数据包上自动生成/更新 MAC 字段,所有这些对于镜像端口流量来说显然是不可取的。显然,这是特定于实现的。这是在通用操作系统上创建镜像端口时的问题吗,因为在转发数据包时必须抑制接口上的这些和其他自动路由方法?(换句话说,副本必须始终退出镜像端口而不进行任何标头修改,并且不会在流中自动添加其他内部来源的数据包,但从技术上讲,通用 fw sw 是否允许逐个端口进行此操作?)

(希望这适用于该站点,如果不是,是否可以将其移至最合适的站点以获得基于技术网络工程的答案?)

1个回答

端口镜像一般不是路由器/防火墙(OSI 第 3 层)功能,它是网桥/交换机(OSI 第 2 层)功能,其中一个接口、接口组或 VLAN 的所有第 2 层帧也是发送到指定的网桥/交换机镜像接口。接收帧的网桥/交换机镜像接口上的主机必须将其接口配置为允许所有帧(混杂、监控模式等),无论第 2 层目标地址如何(常规配置的 NIC 将丢弃未寻址到它们的帧)。主机通常无法使用其接口进行正常的网络通信,因此它通常还有一个不同的常规接口连接到网络。

帧被镜像到的网桥/交换机接口仍然是一个普通的网桥/交换机接口,并且很容易通过向其发送超出其处理能力的流量而超额订阅。例如,在具有 1 Gbps 接口的 48 端口交换机上,很容易有 10 Gbps 的流量,将所有帧发送到镜像 1 Gbps 接口将导致您丢失 90% 的要捕获的帧。将帧从多个交换机捕获到 VLAN 以进行镜像可能会加剧这种情况。

接收帧的目标主机必须运行忽略所有标题的软件,并将所有内容复制到用于分析的任何进程。