V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lsylsy2
V2EX  ›  程序员

多个机房的机器如何建立“网状”VPN?

  •  
  •   lsylsy2 · 2014-02-24 15:36:42 +08:00 · 6343 次点击
    这是一个创建于 3931 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想把ABC三个机房的机器用VPN划到一个子网里面(远程API、数据库之类加密,比如Redis)
    一个机房A做主的话,连上去的B和C之间的通讯都要经过A吧?
    有没有好的方法可以提高效率?改路由表?
    以及你们做反代CDN之类,考虑中间人攻击么?
    18 条回复    2015-12-03 12:36:26 +08:00
    a2z
        1
    a2z  
       2014-02-24 15:41:11 +08:00
    iptables转发,还有路由表
    lsylsy2
        2
    lsylsy2  
    OP
       2014-02-24 15:58:03 +08:00
    @a2z VPN层面怎么做?
    rrfeng
        3
    rrfeng  
       2014-02-24 16:11:33 +08:00
    划到同一个网段里?那只能做二层的 vpn 了,这得找运营商才行。
    简单的办法是用三个网段 IPsec VPN 互相连接,路由打通,三网全通了。

    另外 redis 隔着机房远程使用真的合适吗?
    tywtyw2002
        4
    tywtyw2002  
       2014-02-24 16:33:33 +08:00
    点对点互联,3层走gre 考虑加密走 gre over ipsec。
    二层,多点不好玩l2tp是解决方案。

    找运行商的话就是mpls 价格不过北美这边是$5/mbps 100m起。
    jasontse
        5
    jasontse  
       2014-02-24 16:35:44 +08:00 via iPad
    其实LZ是要在一个私有子网里建立起P2P的关系
    lsylsy2
        6
    lsylsy2  
    OP
       2014-02-24 16:59:21 +08:00
    @rrfeng 只是用来举例,Redis是比较经典的不能暴露外网
    @tywtyw2002 我还是自己做吧……先研究
    @jasontse 恩,就是这样
    julyclyde
        7
    julyclyde  
       2014-02-24 17:01:36 +08:00
    各机房之间分别做隧道,然后起个zebra运行OSPF就得了
    octopus_new
        8
    octopus_new  
       2014-02-24 17:03:44 +08:00
    "网状"......, 新名词压力山大啊, 嘿嘿 :)
    你是想说全互联吧? 比较省钱的办法做site-to-site VPN, Linux+OpenVPN就可以做到, 或者可以买专门的设备来做.
    相对于独立线路来讲, MPLS相对来说也算比较省钱的办法, 当然啦, 还得看你预算有多少.....
    tywtyw2002
        9
    tywtyw2002  
       2014-02-24 17:21:08 +08:00 via iPhone
    @julyclyde 说实话 这种架构很坑爹 跑ospf就更坑爹了 ospf在tunnel下有些问题
    感觉rip吧简单。


    @lsylsy2 之前高过这种 为了降低延时中间接了几台中专服务做动态调整 算rtt和丢包…
    一台服务器一个内网c 绑到dummy0上比较好
    bdahz
        10
    bdahz  
       2014-02-24 23:58:42 +08:00
    不知道tinc对lz有没有用
    julyclyde
        11
    julyclyde  
       2014-02-26 14:50:50 +08:00
    @tywtyw2002 不要做环形嘛,做全网格跑ospf就得了。我们用OpenVPN;我不了解ospf在tunnel下的问题是指哪方面,我没遇到
    lsylsy2
        12
    lsylsy2  
    OP
       2014-02-26 16:18:15 +08:00
    @tywtyw2002
    @bdahz
    @julyclyde
    感谢,正在研究tinc和openvpn下的ospf
    tywtyw2002
        13
    tywtyw2002  
       2014-02-26 16:19:26 +08:00
    @julyclyde 其实是网络形状的问题,ospf这东西其实已经把延时这东西给忽略了,在公网上起隧道最难办的事情就是丢包和延时导致的线路劣化,ospf是最短路径优先。 可能一条丢包率20% RTT=100ms 0跳的线路会被ospf自动选择而代替了一条0%丢包RTT=110ms 1跳得线路。

    以前大概8个服务器吧 分成3个ospf区(按线路) 然后每天丢包愁死了。。。

    慢慢研究了后发现ospf这东西真的不怎么适合公网的tunnel上,虽然ospf可以按照物理链路分区,然后在层次化组网,但是数据包必须走zone0,分区会导致rtt、丢包出口问题愁人 如果不分区的话路由更加的乱了。 这你妹是增加了复杂度。

    后来其实没啥后来了,写了个利用虚拟下一跳 去动态跳路由的东西。 结果也不失很理想,线路太烂没啥好办法。


    这个可能是特例吧。
    julyclyde
        14
    julyclyde  
       2014-02-26 16:44:15 +08:00
    @tywtyw2002 谢谢。那还是我们这里用得不够深,没注意到这些劣势。
    lsylsy2
        15
    lsylsy2  
    OP
       2014-02-26 18:00:13 +08:00
    @tywtyw2002 唔,那我试试tinc好了
    不过看了下,tinc也只支持“两两直接相连”而不支持自动寻找最优路径,最优路径在1.1开始测试,测试了几年还是测试……
    Hosinoruri
        16
    Hosinoruri  
       2014-02-27 10:10:51 +08:00
    如果机房和机房之间非要强制用VPN的话,节点(机房数目)不是很多的情况下,建议实用普通的isakmpVPN,就是点到点的VPN连起来。
    节点较多,而且不希望中心节点负载较大的话,推荐Cisco的DMVPN(NHRP+GRE),EZVPN等几个解决方案。

    以下有几个参考资料希望可以帮到LZ。
    http://www.ringline.com.tw/epaper/Forum970801.htm
    http://baike.baidu.com/view/6234935.htm?fromId=876129
    http://baike.baidu.com/view/1738192.htm
    tempdban
        17
    tempdban  
       2014-02-27 18:59:39 +08:00 via Android
    n2nvpn node不参与包转发
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1097 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:05 · PVG 03:05 · LAX 11:05 · JFK 14:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.