V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Creed
V2EX  ›  问与答

策略路由 iproute2+纯 ip 和 iptables+ipset 有区别?

  •  
  •   Creed · 2015-01-11 18:50:38 +08:00 · 7069 次点击
    这是一个创建于 3638 天前的主题,其中的信息可能已经有所发展或是发生改变。
    tomato的路由器上用iptables+dnsmasq自动给指定域名解析得到的IP打上fwmark,然后配合ip rule 匹配相应的路由表,但是问题来了:

    VPN客户端拨号后建立了MASQUERADE

    1:这个方案是纯手动操作的:成功。
    VPN拨号后,
    ip rule add to xxx.xxx.xxx.xxx table 100
    ip route add default dev $vpn_dev table 100
    ip route flush cache

    xxx换成twitter的ip,访问成功。

    2:这个方案不管手动还是自动都失败:
    VPN拨号时候自动添加路由规则
    ip route add default dev $vpn_dev table 100

    ip rule,iptables和ipset命令都是路由开机就自动执行。

    dnsmasq里面设置ipset=/twitter.com/vpn和server=/twitter.com/127.0.0.1#dnscrypt_port

    tracert twitter.com的结果从vpn客户端IP节点之后全部无响应,直到30跳结束。
    ping twitter.com无响应。
    twitter页面无法访问。


    两种方案对比了iptables 规则除了后者多了MARK,其余无差别。但是后者估计被路由丢包了,但是想不通为啥会这样。

    求指教。
    2 条回复    2015-02-28 11:27:46 +08:00
    efi
        1
    efi  
       2015-01-11 19:12:01 +08:00
    iptables不用设计用来做路由的,路由的问题不要往这方面想。
    squallvivi
        2
    squallvivi  
       2015-02-28 11:27:46 +08:00
    前些日子也用openwrt倒腾策略路由,一开始也碰到同样的问题,后来发现IP打fwmark分流的命令要放在ip route,ip rule规则之后才奏效
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2804 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 07:22 · PVG 15:22 · LAX 23:22 · JFK 02:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.