A-A+

如何实现低成本site to site vpn ?

2015年12月29日 站长资讯 暂无评论

当企业有这样的需求时,你该如何实现呢?

公司有5个分部,都需要访问总公司内部资源。老板要求使用较低的费用实现。最好不要使用专用设备。你知道的,专用设备价格都比较给力,性能缺不一定很好。

我这里给你一个简单的解决方案:

在总部的Internet Edge安装一台OpenBSD Server, 各分公司的Internet出口处也安装一台OpenBSD。通过GRE协议,在分公司和总公司的OpenBSD服务器之间建立tunnel. 实现Site to Site VPN。 分公司局域网和总公司的局域网就可以互通。

方案优点:

1、成本低:你知道的,OpenBSD运行要求很低,512Mb内存的主机,10Gb硬盘,CPU嘛,现在能买到的都能满足。

2、实现简单:总共不超过15条命令。

缺点:

1、GRE协议其实只是重新封装了数据包,并没有对数据包进行加密,所以,如果是机密数据传输,最好能使用GRE报头验证,或者结合IPSEC使用。下一步我研究GRE+IPSEC方式。当然,IPSEC会损耗一定的性能。

2、排故手段少:如果你按照步骤配置完,发现网络不通,排查的手段比较少。这就考验你的网络知识的时候了。

这里假设总公司要和两个分公司之间建立GRE Tunnel。下面是拓扑图:

配置步骤:

  1. Site A OpenBSD Server:Tunnel to Site B,C  
  2.      1. route add default 218.4.144.2  
  3.      2. sysctl net.inet.ip.forwarding=1  
  4.      3. sysctl net.inet.gre.allow=1  
  5.      4. sysctl net.inet.gre.wccp=1  
  6.      5. ifconfig gre0 create  
  7.      6. ifconfig gre0 inet 172.16.1.1/24  
  8.      7. ifconfig gre0 tunnel 218.4.144.1 222.92.36.1  
  9.      8. ifconfig gre0 link0 up  
  10.      9. route add 192.168.2.0/24 172.16.1.2  
  11.      #配置到达Site C的GRE Tunnel  
  12.      10.ifconfig gre1 create  
  13.      11.ifconfig gre1 inet 172.16.2.1/24  
  14.      12.ifconfig gre1 tunnel 218.4.144.1 58.34.217.1  
  15.      13.ifconfig gre1 link0 up  
  16.      14.route add 192.168.3.0/24 172.16.2.2   

备注,如果要保存配置,则需要做如下配置:

在/etc/sysctl.conf文件中,找到2,3,4步对应的内容,执行修改操作。

新建/etc/hostname.gre0文件,并把下面内容写入:

  1. 172.16.1.1 172.16.1.2 netmask 0xffffffff link0 up  
  2. tunnel 218.4.144.1 222.92.36.1  
  3. !route add -net 192.168.2.0 -netmask 255.255.255.0 172.16.1.2  

新建/etc/hostname.gre1文件,并把下面内容写入:

  1. 172.16.2.1 172.16.2.2 netmask 0xffffffff link0 up  
  2. tunnel 218.4.144.1 58.34.217.1  
  3. !route add -net 192.168.3.0 -netmask 255.255.255.0 172.16.2.2  
  4. B OpenBSD Server:Tunnel to Site A  
  5. 1. route add default 222.92.36.2  
  6. 2. sysctl net.inet.ip.forwarding=1  
  7. 3. sysctl net.inet.gre.allow=1   
  8. 4. sysctl net.inet.gre.wccp=1  
  9. 5. ifconfig gre0 create  
  10. 6. ifconfig gre0 inet 172.16.1.2/24  
  11. 7. ifconfig gre0 tunnel 222.92.36.1 218.4.144.1   
  12. 8. ifconfig gre0 link0 up  
  13. 9. route add 192.168.1.0/24 172.16.1.1  

备注,如果要保存配置,则需要做如下配置:

在/etc/sysctl.conf文件中,找到2,3,4步对应的内容,执行修改操作。

新建/etc/hostname.gre0文件,并把下面内容写入:

  1. 172.16.1.2 172.16.1.1 netmask 0xffffffff link0 up  
  2. tunnel 222.92.36.1 218.4.144.1   
  3. !route add -net 192.168.1.0 -netmask 255.255.255.0 172.16.1.1  
  4. C OpenBSD Server:Tunnel to Site A  
  5. 1. route add default 58.34.217.2  
  6. 2. sysctl net.inet.ip.forwarding=1   
  7. 3. sysctl net.inet.gre.allow=1  
  8. 4. sysctl net.inet.gre.wccp=1  
  9. 5. ifconfig gre0 create  
  10. 6. ifconfig gre0 inet 172.16.2.2/24  
  11. 7. ifconfig gre0 tunnel 58.34.217.1 218.4.144.1   
  12. 8. ifconfig gre0 link0 up  
  13. 9. route add 192.168.1.0/24 172.16.2.1  

备注,如果要保存配置,则需要做如下配置:

在/etc/sysctl.conf文件中,找到2,3,4步对应的内容,执行修改操作。

新建/etc/hostname.gre0文件,并把下面内容写入:

  1. 172.16.2.2 172.16.2.1 netmask 0xffffffff link0 up  
  2. tunnel 58.34.217.1 218.4.144.1   
  3. !route add -net 192.168.1.0 -netmask 255.255.255.0 172.16.2.1  

备注:如果所有Site用户还需要利用OpenBSD服务器上网,那就要在服务器上启用NAT功能。可选的方案有很多。其实pf包过滤防火墙挺不错的。如果不会,自己就搜索一下吧。

标签:

给我留言