V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Ljcbaby
V2EX  ›  宽带症候群

Openwrt 中, PPTP 指定多 wan 的出口问题

  •  
  •   Ljcbaby · 2022-03-26 00:35:52 +08:00 · 3401 次点击
    这是一个创建于 973 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网络环境

    家中

    一条电信宽带

    有 ddns 和 pptp server

    寝室

    4 条宽带

    (括号中为跃点数)

    2 电信:ct (40)、vwan1 (41)

    2 移动:cm (60)、vwan2 (61)

    PPTP 回家

    Wan 区域中添加了一个 PPtP 接口,配合 mwan3 分流回家

    分流规则

    配合 mwan3helper

    见图

    目前问题

    PPTP 连接回家时,会出现走 移动 宽带的情况,导致延迟和速度都不理想

    想要使 PPTP 连接走电信宽带

    (绑定其中一条或者两条间自动切换倒是无所谓)

    已有尝试和结果

    /etc/config/network

    对 PPTP 接口 手动添加 option ifname ct/pppoe-ct

    无效

    mwan3

    按 PPTP 端口、DDNS 域名 分流均无效

    mwan3 status 发现 DDNS 的 ip 被标记为直连

    搜索关键字(帮助后来人)

    PPTP 指定出口

    mwan3 PPTP

    PPTP ifname

    24 条回复    2022-03-29 14:12:26 +08:00
    lly8666
        1
    lly8666  
       2022-03-26 01:53:59 +08:00 via Android
    mwan3 全局页面里指定“本地源接口”后 mwan3 就能接管路由器本身流量
    lly8666
        2
    lly8666  
       2022-03-26 01:54:59 +08:00 via Android
    最好还是自己写 mwan3 规则,配合 ipset
    ericbize
        3
    ericbize  
       2022-03-26 08:16:19 +08:00 via iPhone
    从理论上来说, 就是 策略路由,ddns 解析出地址,然后那个地址走 ct 的出口。

    亦或是 把家里的 IP 池大概搞一下, 写静态路由
    ericbize
        4
    ericbize  
       2022-03-26 08:17:52 +08:00 via iPhone
    或者是 策略路由, 所有 pptp out 走电信!

    不要问我怎么实现,openwrt 我不会😓 ,mikrotik 倒是可以教你
    lcy630409
        5
    lcy630409  
       2022-03-26 08:37:39 +08:00
    写脚本 获取家里的 ip 自动添加路由
    wangweitung
        6
    wangweitung  
       2022-03-26 10:37:37 +08:00
    你的 PPTP 在编译完就可以用吗?为啥我的总是连不上。。
    flynaj
        7
    flynaj  
       2022-03-26 11:13:55 +08:00
    mwan3+smartdns. 还要路由表
    或者只打开电信的 ipv6,ipv6 直连速度最快。
    zhouzm
        8
    zhouzm  
       2022-03-26 11:16:11 +08:00
    linux 可以这样处理,openwrt 没试过,但好像差不多:
    假定电信连接为 wan0 或者是拨号的 ppp0 ,网关 ip 为 $gate ,电信 ip 为$ip ,家里 ip 是$ip_home ,建路由表名称为 ctcc

    ip route add default via $gate dev wan0(ppp0) table ctcc
    ip rule add from $ip table ctcc
    ip rule add fwmark 111 table ctcc # 有标记 111 的走 ctcc 路由表
    # 使用 iptables 对目标地址包做标记
    iptables -A PREROUTING -t mangle -d $ip_home -j MARK --set-mark 111
    jdjingdian
        9
    jdjingdian  
       2022-03-26 12:34:59 +08:00
    @zhouzm openwrt 也是 linux ,可以这样的,指定 pptp 服务器的 ip 地址从哪个接口出就完事了
    zhouzm
        10
    zhouzm  
       2022-03-26 13:30:50 +08:00
    最后一句的 PREROUTING 只处理了内网流量,应该改成(或添加) OUTPUT 处理路由器本地进程发的包
    Ljcbaby
        11
    Ljcbaby  
    OP
       2022-03-26 16:05:09 +08:00
    @lly8666 #1 目前的 本地源接口 设置


    之前设置了 mwan3 分流不生效会看到 家里的 IP 出现在这个里面

    mwan3 status 打印出来的


    @ericbize #3
    @lcy630409 #5
    @zhouzm #8
    @jdjingdian #9
    我现在是在 Dnsmasq 里添加了这两行

    ```text
    server=/ddns.mydomin.example/223.5.5.5
    ipset=/ddns.mydomin.example/ct
    ```

    因为 ct 是 mwan3helper 已经添加的表,而且我的分流规则里也有指定了,这样添加进去后应该不用我加另外的指令了

    准备先用几天观察一下。


    @flynaj #7 我校校园网,电信给公网 v4 ,无 v6 ,移动给公网 v6+内网 v4

    @wangweitung #6 正常编译完就可以啊。结合系统日志看看是少包还是相关端口被屏蔽了
    Ljcbaby
        12
    Ljcbaby  
    OP
       2022-03-26 16:15:42 +08:00
    @flynaj #7 移动的 ipv6 我也没开,主要是双栈负载均衡真的搞不起
    flynaj
        13
    flynaj  
       2022-03-26 18:14:09 +08:00
    @Ljcbaby #12 就是只开一个接口开启,ipv6 不需要设置什么,速度飞快。
    Ljcbaby
        14
    Ljcbaby  
    OP
       2022-03-27 14:56:02 +08:00
    @lly8666 @ericbize @lcy630409 @zhouzm @jdjingdian 抱歉还要再打扰一下

    现在似乎还是不行
    ipset 确认已经有对应 ip ,但 mwan3 status 中也出现了这个 IP ,好像就不走 mwan3 设置的规则了
    lly8666
        15
    lly8666  
       2022-03-27 15:03:33 +08:00
    你要不先确认下路由器本身其他程序出口流量受不受 mwan3 控制,比如弄个 mtr 看看。以我折腾 mwan3 这么多年的小白经验,有些内核版本的 openwrt 路由器本身流量不受 mwan3 控制。

    最近我把主路由换成 ros 了,除了没有 fullcone ,其他一切都太爽了。
    Ljcbaby
        16
    Ljcbaby  
    OP
       2022-03-27 15:06:56 +08:00
    @lly8666 #15 在 ipset 的 ct 和 cmcc 表里随便挑了两个 ip traceroute ,出口是符合的
    lly8666
        17
    lly8666  
       2022-03-27 15:43:01 +08:00
    @Ljcbaby 那就是 pptp 走的不是 mwan3 那个路由表
    Ljcbaby
        18
    Ljcbaby  
    OP
       2022-03-27 15:49:19 +08:00
    @lly8666 #17 应该是的,我估计是 mwan3 自动把 wan 口连接的 ip 加入直连列表里了
    Ljcbaby
        19
    Ljcbaby  
    OP
       2022-03-27 22:10:25 +08:00
    不确定是 PPtP 拨号 还是其他,会自动添加 route ,形成直连规则
    lly8666
        20
    lly8666  
       2022-03-27 22:56:50 +08:00
    在接口里把电信线路的网关跃点设置成最低的。
    Ljcbaby
        21
    Ljcbaby  
    OP
       2022-03-27 22:57:51 +08:00
    @lly8666 #20 已经是了,就很迷

    (括号中为跃点数)

    2 电信:ct (40)、vwan1 (41)

    2 移动:cm (60)、vwan2 (61)
    lly8666
        22
    lly8666  
       2022-03-27 23:08:00 +08:00
    把 mwan3 删光了自己只写一条电信试试
    Ljcbaby
        23
    Ljcbaby  
    OP
       2022-03-27 23:29:51 +08:00
    我在 mwan3 的通知里加上了如下代码段

    if [ "${INTERFACE}" = "pptp-Home" ] ; then
    route add -host ddns.mydomin.example dev pppoe-ct
    fi

    似乎还是会被附加通向移动的路由,但因为优先级不够会被忽略。

    这个配置可以先观察几天了
    titanium98118
        24
    titanium98118  
       2022-03-29 14:12:26 +08:00
    @Ljcbaby #23 我是把 metric 加上,使用很长一段时间了,没问题。
    ip route add 1.1.1.1 via 192.168.1.1 dev eth0.300 proto static metric 2
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   921 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:02 · PVG 05:02 · LAX 13:02 · JFK 16:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.