修改 Docker Overlay 网络上数据包的外部 IP TOS

修改 Docker Overlay 网络上数据包的外部 IP TOS

我有一个数据包从自定义覆盖网络上的容器发送,使用docker create network --driver=overlayTOS 0x08。但是,docker 覆盖网络使用 VXLAN 标头以及外部 udp、ip 和以太网来包装此 L2 数据包。因此,外层IP数据包的TOS不再与内层IP数据包的TOS匹配,因此当它前往物理NIC时,数据包无法再按照原始流量控制规则进行处理(控制流量进入不同的队列)。例如。使用 tshark 捕获的数据包如下所示。在此输入图像描述

如图所示,外部 IP TOS 现在设置为 T0。

在外部 IP TOS 到达 TC qdisc 之前,我该如何更改它?我尝试查看 iptables 并发现它们可能会通过过滤器的表链OUTPUT和/或 mangle 的表链,POSTROUTING如下所示

# mangle
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
POSTROUTING_direct  all  --  anywhere             anywhere


# filter
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
OUTPUT_direct  all  --  anywhere             anywhere

我认为这是因为我发送了大量的数据包并看到这些表上的数据包计数器上升。但是,我对 iptables 的了解不够先进,无法完成我想要的任务。还有其他办法吗?

相关内容