V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
hawthornn
V2EX  ›  程序员

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

  •  1
     
  •   hawthornn · 2023-01-21 04:26:18 +08:00 · 2120 次点击
    这是一个创建于 704 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    10 条回复    2023-01-23 21:59:53 +08:00
    pagxir
        1
    pagxir  
       2023-01-21 08:21:45 +08:00 via Android
    配路由,路由怎么配就怎么走,很啥 tcp ,udp ,icmp 没有关系
    iwishing
        2
    iwishing  
       2023-01-21 08:52:41 +08:00
    tcpdump -n -i <interface> tcp
    hawthornn
        3
    hawthornn  
    OP
       2023-01-21 10:13:09 +08:00
    @pagxir 感谢,我再研究一下,说的是配置 ip route add 和 ip rule add 这些是吧?之前这方面了解得少。(尴尬脸
    hawthornn
        4
    hawthornn  
    OP
       2023-01-21 10:14:10 +08:00
    @iwishing 这个说的是 linux 抓包吧,好像不是我问的东西。。。
    realpg
        5
    realpg  
       2023-01-21 13:00:50 +08:00
    黑宽带公司?
    lambdaq
        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
    hawthornn
        7
    hawthornn  
    OP
       2023-01-23 06:01:40 +08:00 via iPhone
    @realpg 虽然不知道你说的是啥,但是对你的恶意揣摩感到恶心😇,如果无法解答也请保持善意。
    hawthornn
        8
    hawthornn  
    OP
       2023-01-23 06:02:30 +08:00 via iPhone
    @lambdaq 感觉 chatgpt 有毒😂
    LGA1150
        9
    LGA1150  
       2023-01-23 20:42:45 +08:00 via Android
    感觉是个 X-Y 问题,一定要用 MPTCP 吗?
    nlfiasel
        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
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4926 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 01:11 · PVG 09:11 · LAX 17:11 · JFK 20:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.