diff --git "a/sig/high-perf-network-sig/content/projects/SMC/4_\347\233\270\345\205\263\345\267\245\345\205\267-\344\275\277\347\224\250\346\214\207\345\215\227.md" "b/sig/high-perf-network-sig/content/projects/SMC/4_\347\233\270\345\205\263\345\267\245\345\205\267-\344\275\277\347\224\250\346\214\207\345\215\227.md" index 263c3eb091d745487f0af3139d0bcda9cc19a652..c48ab3a76e57543b0c7858f2d2e62a9442362fae 100644 --- "a/sig/high-perf-network-sig/content/projects/SMC/4_\347\233\270\345\205\263\345\267\245\345\205\267-\344\275\277\347\224\250\346\214\207\345\215\227.md" +++ "b/sig/high-perf-network-sig/content/projects/SMC/4_\347\233\270\345\205\263\345\267\245\345\205\267-\344\275\277\347\224\250\346\214\207\345\215\227.md" @@ -354,9 +354,10 @@ ACTIVE 00000 0156729 192.168.99.21:60214 192.168.99.22:8090 000 smc-ebpf 提供了对 SMC 启用策略的配置能力,即允许用户对特定的端口进行屏蔽或加白。在端口粒度上对 SMC 的启用进行管理。比如我们可以对 1003 端口进行加白,只有 1003 端口下才允许进行 SMC 协议协商,其他的端口则不会协商 SMC 协议。包括屏蔽特定端口,放行特定端口等。这样允许基于更小粒度的控制 SMC 协议的使用范围。 -注1: 目前 smc-ebpf 暂不支持 netns 下的配置管理。 - -注2: 目前 smc-ebpf 相关功能仍在持续推进上游社区标准化中,未来存在接口的变动的可能,目前仅作为实验性功能。 +- smc-ebpf 只对 SMC 连接生效,它控制的是 SMC 连接是否应该提前回退到 TCP。和是否创建 SMC 连接无关,应用需要使用 smc_run 或 tcp2smc 等方式来创建 SMC 连接。 +- smc-ebpf 需要在待配置的连接 创建前完成加载,即 smc-ebpf 对在其加载前创建的连接无效。 +- smc-ebpf 目前策略是全局生效的,暂不支持 netns 下的配置管理。 +- smc-ebpf 相关功能仍在持续推进上游社区标准化中,未来存在接口的变动的可能,目前仅作为实验性功能。 - 查看 smc-ebpf 使用指南 @@ -389,46 +390,61 @@ smc-ebpf 提供了对 SMC 启用策略的配置能力,即允许用户对特定 smc-ebpf policy config --port 80 --mode disable ``` -- 允许所有端口使用 SMC 协议 + ***加载*** + +在配置策略前,需要加载 smc-ebpf ``` [root ~]# smc-ebpf policy load -[root ~]# smc-ebpf policy config --port 0 --mode enable ``` +***默认行为*** -- 禁止所有端口使用 SMC 协议 +在没有匹配的策略的情况下,smc-ebpf 会执行默认行为。你可以通过对端口 0 进行配置来修改这个行为。 -``` +- 修改默认行为:在没有匹配的策略的情况下,启用 SMC。 + + ``` [root ~]# smc-ebpf policy load -[root ~]# smc-ebpf policy config --port 0 --mode disable +[root ~]# smc-ebpf policy config --port 0 --mode enable ``` -其等效于 +- 修改默认行为:在没有匹配的策略的情况下,禁止使用SMC。 + ``` +[root ~]# smc-ebpf policy load +[root ~]# smc-ebpf policy config --port 0 --mode disable ``` +这也是加载后的默认行为,即其和 + + ``` [root ~]# smc-ebpf policy load ``` +等价。 -因为默认加载后没有任何配置,等同于默认禁止所有端口使用SMC +***配置策略*** -- 对 80/443 端口 禁用 SMC 协议 +- 除 80 端口外都使用 SMC 协议 ``` [root ~]# smc-ebpf policy load +[root ~]# # 修改默认行为:无配置时默认启用。 +[root ~]# smc-ebpf policy config --port 0 --mode enable [root ~]# smc-ebpf policy config --port 80 --mode disable -[root ~]# smc-ebpf policy config --port 443 --mode enable ``` +解释:加载后默认行为是禁止所有端口使用 SMC,因此在这基础上先将默认行为修改为 无匹配配置时默认启用, 再单独关闭 80端口。 -- 只允许1003 端口 使用 SMC 协议 +- 只允许 80 端口使用 SMC 协议 ``` [root ~]# smc-ebpf policy load -[root ~]# smc-ebpf policy config --port 1003 --mode enable +[root ~]# smc-ebpf policy config --port 80 --mode enable ``` +解释:加载后的默认行为是禁止所有端口使用 SMC,因此只需要在这基础上,再单独打开 80 端口即可。 + -- 清除所有的配置 +***清除策略*** ``` [root ~]# smc-ebpf policy load @@ -438,5 +454,4 @@ smc-ebpf 提供了对 SMC 启用策略的配置能力,即允许用户对特定 [root ~]# smc-ebpf policy clear ``` -注: clear 后所有配置不存在,则等同于默认禁止所有端口使用SMC - +注: clear 后所有配置将会被删除,包括默认行为的配置。__因此,此时默认行为将恢复到:在没有匹配的策略的情况下,禁止使用SMC。__