基础是显而易见的,但有一些我不明白的网络含义的技术点。
其中一些通用于网络,另一些通用于所有路由/防火墙软件或特定实现。如果特定的实现是相关的,那么我正在考虑通用而不是专门的网络设备——我在这里使用 OpenBSD/FreeBSD 的 pf,这样最有助于说明任何防火墙特定的处理。(即,不询问 Cisco/Juniper 等专用网络固件)。我想 pf或指令将是很好的示例dup-to,但在紧要关头“tcpdump”也可能是相关的。spanbridge
我假设最广泛的情况,其中一个端口上的所有数据包都被镜像到另一个端口(OSI 2,暗示还有 OSI 3,没有任何选择性过滤器)。
- 如果在镜像端口上发送数据包,镜像端口是否实际上暗示了隐含的“阻止所有入站”规则,以便可以在外部侦听但不会发生其他交互或更改原始流量?
- 如果它确实创建了“阻止所有入站”规则的等效项,那么无状态规则参数是否必要和/或足以确保即使在镜像端口上阻止回复(SYN-ACK 等)也能正确镜像数据包?如果没有,那又如何?
- 镜像操作可能需要考虑混杂模式(使用
tcpdump)或跨端口、dup-to指令或桥接接口(使用pf),以将所有(不仅仅是定向)流量镜像到另一个端口。这 4 种方法是否等效或同样适用于镜像端口? - 镜像需要将源接口上的 ARP、RSTP 和 BGP 等数据包副本视为数据,当适当的服务配置为识别它们时,通常会自动将其视为可操作输入(除非入站阻塞)。这是否会破坏分层/数据包处理模型,因为它似乎需要防火墙实现来主动违反通常的数据/指令规范并将此类数据包作为“镜像”流上的数据转发,同时还将它们作为“真实”流上的指令进行操作?
- 转发数据包通常涉及自动生成额外的数据包,例如 ARP who-has、可能的路由协议,以及在数据包上自动生成/更新 MAC 字段,所有这些对于镜像端口流量来说显然是不可取的。显然,这是特定于实现的。这是在通用操作系统上创建镜像端口时的问题吗,因为在转发数据包时必须抑制接口上的这些和其他自动路由方法?(换句话说,副本必须始终退出镜像端口而不进行任何标头修改,并且不会在流中自动添加其他内部来源的数据包,但从技术上讲,通用 fw sw 是否允许逐个端口进行此操作?)
(希望这适用于该站点,如果不是,是否可以将其移至最合适的站点以获得基于技术网络工程的答案?)