【发布时间】:2021-12-23 18:23:25
【问题描述】:
谁能解释一下,因为我不明白以下概念。 在 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的“入口”部分,所以当“重定向”发生时,这个数据就变成了“出口”? 为什么是“出口”? 我不明白(
【问题讨论】:
标签: linux trafficshaping