有人可以解释一下,因为我不明白以下概念。在 tc 中,您可以添加一个虚拟 qdisc,它可以通过某些特定规则处理一小部分流量。
例如,在这里为 eth0 创建一个显式入口 qdisc。顺便说一句,不知道这有什么意义,例如默认情况下不包含入口 qdisc。
$TC qdisc add dev eth0 ingress handle ffff:0
然后,您应用一个过滤器,该过滤器调用一个操作以将具有某些规则 (0 0) 的传入流量重定向到虚拟设备 (ifb0)。但是过滤后的流量被标记为“出口”!为什么呢?该流量不应该在 ifb0 中也显示为入口吗?
$TC filter add dev eth0 parent ffff: protocol ip prio 10 u32 \
match u32 0 0 flowid 1:1 \
action mirred egress redirect dev ifb0
或者入口是否意味着在 qdisk 内排队的任何流量(传入和传出流量)。因此,假设网卡收到了一些数据,并且在开始使用它之前,内核将它排入了某个 qdisc 中。该数据是入口。当这些数据出队以供系统处理时,它就变成了出口?反之亦然,应用程序将一些数据发送到某个 ip 地址,因此在将这些数据提供给网卡之前,内核会将这些数据放入适当的 qdisc 中。所以当它发生时,这些数据就变成了入口。那么在数据被适当的类处理并被出列传递给网卡之后,这些数据就变成了出口?
或者它的入口是从网卡到内核的所有流量?在这种情况下,为什么有出口
action mirred egress redirect dev ifb0
是不是因为流量是从网卡拥有的根qdisc的“入口”部分获取的,所以当“重定向”发生时,这个数据就变成了“出口”?为什么是“出口”?我不明白(