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

IP 协议的源路由功能支持怎么样?用来穿墙不错,但是实测无效...

  •  1
     
  •   gamexg · 2014-08-04 11:35:53 +08:00 · 5322 次点击
    这是一个创建于 3553 天前的主题,其中的信息可能已经有所发展或是发生改变。
    IP源路由会将IP包目的地址设置为指定的路由器,按IP协议到达指定的路由器后路由器会自动地将目的地址改成实际的目的地址,这样墙应该就识别不到真实的目的地址了,但是实测无法使用,我这里联通的网连 tracert 都无法用,连查问题的原因都查不到。

    IP源路由功能现在支持怎么样?这是特例还是都是这样呢?

    使用源路由功能PING不通google的服务器。
    >ping -j 72.14.239.17 173.194.127.144

    正在 Ping 173.194.127.144 具有 32 字节的数据:
    请求超时。
    请求超时。
    请求超时。
    请求超时。

    173.194.127.144 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),

    不使用源路由功能就没问题。
    >ping 173.194.127.144

    正在 Ping 173.194.127.144 具有 32 字节的数据:
    请求超时。
    来自 173.194.127.144 的回复: 字节=32 时间=44ms TTL=54
    来自 173.194.127.144 的回复: 字节=32 时间=49ms TTL=54
    来自 173.194.127.144 的回复: 字节=32 时间=42ms TTL=54

    173.194.127.144 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 3,丢失 = 1 (25% 丢失),
    往返行程的估计时间(以毫秒为单位):
    最短 = 42ms,最长 = 49ms,平均 = 45ms




    通过 http://tracert.org/traceroute/ 做的 TRACEROUTE 。
    1 75.125.232.57 (75.125.232.57) 0.605 ms 0.574 ms 0.331 ms
    2 te1-4.dsr02.hstntx2.networklayer.com (74.55.252.113) 0.632 ms 0.502 ms 0.346 ms
    3 ae17.bbr02.sr02.hou02.networklayer.com (173.192.18.238) 0.400 ms 0.272 ms 0.411 ms
    4 ae3.bbr02.eq01.dal03.networklayer.com (173.192.18.220) 9.198 ms 10.075 ms ae3.bbr01.eq01.dal03.networklayer.com (173.192.18.218) 5.459 ms
    5 50.97.16.37 (50.97.16.37) 5.294 ms 5.276 ms 5.322 ms
    6 * * 50.97.16.37 (50.97.16.37) 6.726 ms
    7 * 66.249.95.198 (66.249.95.198) 195.207 ms 195.490 ms
    8 66.249.95.198 (66.249.95.198) 196.542 ms 66.249.95.89 (66.249.95.89) 47.368 ms 66.249.95.198 (66.249.95.198) 197.481 ms
    9 66.249.95.89 (66.249.95.89) 49.558 ms 49.570 ms 48.642 ms
    10 64.233.174.177 (64.233.174.177) 148.835 ms 144.531 ms 209.85.243.249 (209.85.243.249) 146.566 ms
    11 66.249.94.30 (66.249.94.30) 186.507 ms 209.85.243.249 (209.85.243.249) 147.781 ms 66.249.94.30 (66.249.94.30) 200.962 ms
    12 72.14.239.17 (72.14.239.17) 192.761 ms 192.759 ms 192.805 ms
    13 hkg03s13-in-f16.1e100.net (173.194.127.144) 192.513 ms 192.480 ms 192.553 ms
    15 条回复    2016-01-28 19:08:51 +08:00
    pfitseng
        1
    pfitseng  
       2014-08-04 11:45:57 +08:00   ❤️ 1
    这要一路上路由都支持吧
    gamexg
        2
    gamexg  
    OP
       2014-08-04 11:51:05 +08:00
    理论上只要指定的那台路由器支持就行。源路由会将ip包的目的地址改成指定的路由器,对中间的路由器来讲只是一个目的地址为那台路由器的包,只有到达那台路由器之后才会被处理并将目的地址改成实际的目的地址。
    mhycy
        3
    mhycy  
       2014-08-04 12:49:06 +08:00   ❤️ 1
    运营商的路由(用户端开始第一个路由)会自动丢弃不属于这网段的数据包,所以伪造IP头没用
    gamexg
        4
    gamexg  
    OP
       2014-08-04 14:43:15 +08:00 via Android
    @mhycy 不是伪造原地址,而是设置的目的地址。

    不过我发现由于源站路由可以做源站路由攻击,win系统九几年会收到源站路由的
    mhycy
        5
    mhycy  
       2014-08-04 14:49:49 +08:00   ❤️ 1
    @gamexg 不知道伪造目标IP意义何在,伪造目标IP连数据包都不可达还怎么通讯
    gamexg
        6
    gamexg  
    OP
       2014-08-04 14:50:42 +08:00 via Android
    @mhycy 不是伪造原地址,而是设置的目的地址。

    不过我发现由于源站路由可以做源站路由攻击,win系统九几年会丢弃收到源站路由的包。linux系统不清楚具体情况。

    不过这样也可以加到翻墙软件上用来混淆流量。
    gamexg
        7
    gamexg  
    OP
       2014-08-04 14:54:20 +08:00 via Android
    @mhycy 理论上一样可达真实的目的地址。但是现在由于源站路由攻击的问题,造成系统会抛弃源站路由的包。恐怕得专门配置的翻墙服务器才能接受源站路由的包,只能用来做流量混淆了。
    mhycy
        8
    mhycy  
       2014-08-04 14:54:53 +08:00   ❤️ 1
    @gamexg 一般翻墙软件不够底层没法伪造。并且用户端路由都会丢弃不属于自己网段的IP包。
    lehui99
        9
    lehui99  
       2014-08-04 14:55:07 +08:00   ❤️ 1
    你确定72.14.239.17支持source routing?只有安装了对应tunnel的才会支持,默认是不开放这个功能的。
    mhycy
        10
    mhycy  
       2014-08-04 14:56:10 +08:00   ❤️ 1
    @gamexg
    "不是伪造原地址,而是设置的目的地址。"
    到底伪造的是源地址还是目的地址?伪造了目的地址就数据包不可达,伪造源地址也就欺骗一下GFW而已。
    lehui99
        11
    lehui99  
       2014-08-04 14:58:54 +08:00   ❤️ 1
    @mhycy 不是伪造,而是替换。将目的地址替换成router的地址,将真正的目的地址放入ip option中,Loose source routing,rfc的标准。
    mhycy
        12
    mhycy  
       2014-08-04 15:02:18 +08:00   ❤️ 1
    @lehui99 还是你的表达比较清晰,请原谅我智商比较低.....
    这协议还真想不到商业路由有啥理由启用这个选项。。。。
    goophile
        13
    goophile  
       2014-08-08 21:05:21 +08:00   ❤️ 1
    为了安全性,ISP一般都把这个功能关了。。。
    wangxiaomu
        14
    wangxiaomu  
       2016-01-28 14:43:04 +08:00
    在 TCP/IP 详解第一卷中,也说到了 Source Routing ,应用在了 traceroute 上
    Google 了一下找到了下面这个内核参数: net.ipv4.conf.all.accept_source_route ,来表示是否支持 Source Routin 。
    但是除了那个 traceroute ,没有找到其他成熟的 Source Routing 的应用

    不知道大家有没有使用过或者实现过分享下?
    gamexg
        15
    gamexg  
    OP
       2016-01-28 19:08:51 +08:00 via Android
    @wangxiaomu
    国外 vps 开启源路由支持,然后加上 snat ,应该就能实现,但是不清楚本地的 api 是否提供这个选项。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4386 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:06 · PVG 18:06 · LAX 03:06 · JFK 06:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.