策略路由如何处理本机流量? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cwbsw
V2EX    宽带症候群

策略路由如何处理本机流量?

  •  
  •   cwbsw 2018-07-06 20:57:03 +08:00 896 次点击
    这是一个创建于 2741 天前的主题,其中的信息可能已经有所发展或是发生改变。
    iptables -t mangle -A OUTPUT -m set --match-set vpn dst -j MARK --set-mark 0x88 iptables -t mangle -A PREROUTING -m set --match-set vpn dst -j MARK --set-mark 0x88 ip route add default dev vpn table 88 ip rule fwmark 0x88 lookup 88 

    一直以来都是用如上方式在路由器上部署 vpn 科学上网本机产生的流量也都能正确分流。 今天突然想到这样做了两次 NAT,于是在路由器上去掉了 vpn 接口的 NAT 规则,然后在 vps 上配置到 lan 侧的路由后,在 lan 上的设备就能正常通过 vpn 访问外网了,但是路由器本身的流量却出现了异常,在 vpn 接口上能看到发包,但是源地址却是 pppoe-wan 的,这样自然回程就不通了。但是

    ip rule to 8.8.8.8 lookup 88

    或者

    ip route add 8.8.8.8 dev vpn

    又都能让本机到 8.8.8.8 的流量正常走 vpn 接口。

    所以这个的原理是什么?该如何让本机流量根据 MARK 分流呢?

    3 条回复    2018-07-07 20:18:53 +08:00
    LGA1150
        1
    LGA1150  
       2018-07-07 03:05:18 +08:00 via Android
    ip route add default dev vpn table 88 src <vpn 接口地址>
    cwbsw
        2
    cwbsw  
    OP
       2018-07-07 09:43:46 +08:00
    @LGA1150
    这样还是不行啊,奇怪的是 ip rule to 8.8.8.8 lookup 88 就能行得通,有 MARK 的包也确实是从 vpn 接口发出去了。
    cwbsw
        3
    cwbsw  
    OP
       2018-07-07 20:18:53 +08:00
    似乎 Linux 协议栈选择路由决定源地址是在 OUTPUT 链之前,查询的是默认路由表,所以要改变本机流量的源地址只能做 NAT。
    https://upload.wikimedia.org/wikipedia/commons/3/37/Netfilter-packet-flow.svg
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3630 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 04:18 PVG 12:18 LAX 20:18 JFK 23:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86