Linux 上使用 MPTCP 如何指定出站网卡?可有偿求教!

2023-01-21 04:26:18 +08:00
 hawthornn

单位有需求要使用 MPTCP 技术分流。机器上有 3 个网卡,想要实现入站流量从 3 个网口进,但是出站流量从其中的 2 个网口出,并利用 MPTCP 对出站分流。我之前对这方面了解不多,才折腾好内核编译,国外文档和回忆视频看了一些,还是有懵,求求各位大佬指点一下,担心年后被裁,😂有偿求教!!!

补充:做的是个路由转发类程序,入站流量是普通 tcp ,出站流量才需要用 mptcp 分流,出站目的地是另一个服务端程序,同城异地,假设已经配置好接受 mptcp 流量了。

2078 次点击
所在节点    程序员
10 条回复
pagxir
2023-01-21 08:21:45 +08:00
配路由,路由怎么配就怎么走,很啥 tcp ,udp ,icmp 没有关系
iwishing
2023-01-21 08:52:41 +08:00
tcpdump -n -i <interface> tcp
hawthornn
2023-01-21 10:13:09 +08:00
@pagxir 感谢,我再研究一下,说的是配置 ip route add 和 ip rule add 这些是吧?之前这方面了解得少。(尴尬脸
hawthornn
2023-01-21 10:14:10 +08:00
@iwishing 这个说的是 linux 抓包吧,好像不是我问的东西。。。
realpg
2023-01-21 13:00:50 +08:00
黑宽带公司?
lambdaq
2023-01-21 13:11:11 +08:00
chatgpt 编了一个答案

For example, if you want to enable MPTCP for the "eth0" interface, you would use the following command:

sysctl -w net.ipv4.tcp_congestion_control_set_on_interface.eth0=mptcp
hawthornn
2023-01-23 06:01:40 +08:00
@realpg 虽然不知道你说的是啥,但是对你的恶意揣摩感到恶心😇,如果无法解答也请保持善意。
hawthornn
2023-01-23 06:02:30 +08:00
@lambdaq 感觉 chatgpt 有毒😂
LGA1150
2023-01-23 20:42:45 +08:00
感觉是个 X-Y 问题,一定要用 MPTCP 吗?
nlfiasel
2023-01-23 21:59:53 +08:00
mptcp 有两个版本的,5.6 内核之后有个集成到内核的版本,官方页面上也有提示,里面有个 wiki 可以看看了解下思路。
另外你这个描述,入站是普通 tcp ,出站是 mptcp 分流挺让人疑惑的。入站和出站是完全没有关系的不同的连接嘛?
如果是这样子的话,然后出站目的地是个 mptcp 的 server 端,那么在集成到内核里的版本的逻辑应该就是添加 subflow 。
可以参照一下上面的 wiki 里面提到的示例: https://www.tessares.net/mptcp-proxy-setup-at-home-easier-now/

sudo ip mptcp limits set subflow 2
sudo ip mptcp endpoint add 192.168.10.2 dev usb0 subflow
sudo ip rule add from 192.168.10.2 table 42
sudo ip route add default via 192.168.10.1 table 42

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/910112

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX