单位有需求要使用 MPTCP 技术分流。机器上有 3 个网卡,想要实现入站流量从 3 个网口进,但是出站流量从其中的 2 个网口出,并利用 MPTCP 对出站分流。我之前对这方面了解不多,才折腾好内核编译,国外文档和回忆视频看了一些,还是有懵,求求各位大佬指点一下,担心年后被裁,😂有偿求教!!!
补充:做的是个路由转发类程序,入站流量是普通 tcp ,出站流量才需要用 mptcp 分流,出站目的地是另一个服务端程序,同城异地,假设已经配置好接受 mptcp 流量了。
1
pagxir 2023-01-21 08:21:45 +08:00 via Android
配路由,路由怎么配就怎么走,很啥 tcp ,udp ,icmp 没有关系
|
2
iwishing 2023-01-21 08:52:41 +08:00
tcpdump -n -i <interface> tcp
|
3
hawthornn OP @pagxir 感谢,我再研究一下,说的是配置 ip route add 和 ip rule add 这些是吧?之前这方面了解得少。(尴尬脸
|
5
realpg 2023-01-21 13:00:50 +08:00
黑宽带公司?
|
6
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 |
7
hawthornn OP @realpg 虽然不知道你说的是啥,但是对你的恶意揣摩感到恶心😇,如果无法解答也请保持善意。
|
9
LGA1150 2023-01-23 20:42:45 +08:00 via Android
感觉是个 X-Y 问题,一定要用 MPTCP 吗?
|
10
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 |