Ljcbaby
V2EX  ›  宽带症候群

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

By Ljcbaby at 2022 年 3 月 26 日 · 4460 次点击

网络环境

家中

一条电信宽带

有 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 年 3 月 26 日 via Android
mwan3 全局页面里指定“本地源接口”后 mwan3 就能接管路由器本身流量
lly8666
   2
lly8666  
   2022 年 3 月 26 日 via Android
最好还是自己写 mwan3 规则,配合 ipset
ericbize
   3
ericbize  
   2022 年 3 月 26 日 via iPhone
从理论上来说, 就是 策略路由,ddns 解析出地址,然后那个地址走 ct 的出口。

亦或是 把家里的 IP 池大概搞一下, 写静态路由
ericbize
   4
ericbize  
   2022 年 3 月 26 日 via iPhone
或者是 策略路由, 所有 pptp out 走电信!

不要问我怎么实现,openwrt 我不会😓 ,mikrotik 倒是可以教你
chengran630
   5
chengran630  
   2022 年 3 月 26 日
写脚本 获取家里的 ip 自动添加路由
wangweitung
   6
wangweitung  
   2022 年 3 月 26 日
你的 PPTP 在编译完就可以用吗?为啥我的总是连不上。。
flynaj
   7
flynaj  
   2022 年 3 月 26 日
mwan3+smartdns. 还要路由表
或者只打开电信的 ipv6,ipv6 直连速度最快。
zhouzm
   8
zhouzm  
   2022 年 3 月 26 日
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 年 3 月 26 日
@zhouzm openwrt 也是 linux ,可以这样的,指定 pptp 服务器的 ip 地址从哪个接口出就完事了
zhouzm
   10
zhouzm  
   2022 年 3 月 26 日
最后一句的 PREROUTING 只处理了内网流量,应该改成(或添加) OUTPUT 处理路由器本地进程发的包
Ljcbaby
   11
Ljcbaby  
OP
   2022 年 3 月 26 日
@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 年 3 月 26 日
@flynaj #7 移动的 ipv6 我也没开,主要是双栈负载均衡真的搞不起
flynaj
   13
flynaj  
   2022 年 3 月 26 日
@Ljcbaby #12 就是只开一个接口开启,ipv6 不需要设置什么,速度飞快。
Ljcbaby
   14
Ljcbaby  
OP
   2022 年 3 月 27 日
@lly8666 @ericbize @lcy630409 @zhouzm @jdjingdian 抱歉还要再打扰一下

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

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

(括号中为跃点数)

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

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

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

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

这个配置可以先观察几天了
titanium98118
   24
titanium98118  
   2022 年 3 月 29 日
@Ljcbaby #23 我是把 metric 加上,使用很长一段时间了,没问题。
ip route add 1.1.1.1 via 192.168.1.1 dev eth0.300 proto static metric 2
© 2026 V2EX · 40ms · 3.9.8.5