1. 介绍
随着互联网技术的不断发展和接入价格的不断降低,越来越多的公司把自己的网络从专网移到了互联网上,建立新的分支机构也越来越简单。当分支机构间通过公共的、共享的网络进行连接时,如何对数据流进行保密成为一个必须解决的问题。VPN (虚拟专网) 技术解决了这一个问题。
IPSec是最重要的一种连接公网上节点的VPN技术,一段时间以来处于垄断地位。 SSL VPN的出现打破了这个局面。SSL VPN这几年慢慢被接受,并用于公司的移动办公人员远程接入,但IPSec VPN仍然是机构点对点互联的主流VPN技术。

Mikrotik IPSec VPN支持多样化的部署。基于策略的VPN和基于路由的VPN都支持星形部署,可以用来连接分支机构和总部。SSL VPN的免维护、自动安装、自动升级的部署方式是远程用户理想的VPN接入技术。 SSL VPN和IPSecVPN 都可以基于路由,为用户带来端到端的网络层的连接能力。
IPSec VPN技术成熟,有许多厂家提供硬件加速的解决方案。和SSL VPN相比,较高的性能和较高的容量使IPSec VPN成为远程办公室点对点接入的首选技术。
Mikrotik IPSec VPN 支持:
● IPSec性能高达8Gbps,多达30000条隧道
● 标准的技术使Mikrotik IPSec VPN能和国际VPN厂商互通
● 全面的加密算法支持,包括AES256、Diffie-Hellman Group 5
● 预共享密钥和PKI支持
● 基于路由的VPN和基于策略的VPN支持
● VPN星形部署
● 对端失连检测 (DPD) 支持
● NAT穿越支持
● 支持静态IP对端、动态IP对端、拨号VPN对端
● 支持VPN上的QoS
● 支持防重放(Anti-Replay)功能
● 支持响应方设置commit位(responder-set-commit)功能
● 支持VPN上的应用控制
● 支持VPN上的路由协议
● 支持GRE和GRE-over-IPSec
● 支持VPN/GRE/GRE-over-IPSec上的路由协议
2. IKE和IPSec的实现
IPSec VPN以及相应的密钥协商协议IKE包括一系列的IETF标准(RFC),这意味着不同厂家的VPN设备应该能够互通。Mikrotik的IPSec方案经过测试能和多家世界VPN厂商互通,这些厂商包括Cisco、Juniper、Netscreen、WatchGuard等。
IPSec和IKE标准经ā过多年的安全和漏洞分析,保证了技术的严密性和安全性。Mikrotik对IKE协议的安全极度重视,RouterOS的IKE协议栈经过了多种漏洞扫描测试。
IPSec
RouterOS在IPSec方面支持全面的算法和特性:
● 加密算法:DES、3DES、AES128、AES192、AES256。AES128一般来说比3DES要快,安全性相仿。AES256是一个超强的加密算法,可以在最高级别保证数据的安全性。所有这些算法在Mikrotik平台上都有硬件加速(RFC2405,RFC1851,RFC3602)
● 哈希算法:MD5,SHA-1。这两种算法在Mikrotik平台上都有硬件加速(RFC2403,RFC2404)
● ESP (RFC2406) 和AH (RFC2402):这两种方式在Mikrotik平台上都支持硬件加速
● 对IPSec报文的UDP封装:Mikrotik RouterOS支持多个版本的封装,达到最大程度的互通性(draft-ietf-ipsec-udp-encaps-00.txt、draft-ietf-ipsec-udpencaps-02.txt、RFC3948)
● 对IPSec报文的防重放检测:Mikrotik RouterOS全面支持基于IETF标准的防重放功能,并且支持根据不同的网络情况手工调整防重放窗口大小
IKE
RouterOS IKE支持全系列的相关RFC,包括RFC2401、RFC2407、RFC2408、RFC2409,支持丰富的IKE特性:
● IKE第一阶段支持和前述IPSec同样全面的加密算法和哈希算法
● 主模式和野蛮模式的支持
● Diffie-Hellman组:Group 1、2、5。要为如AES256等高强度的加密算法产生密钥必须要有对Group 5的支持
● 预共享密钥和证书(PKI)认证
● Perfect Forward Secrecy (PFS):Group 1、2、5或no-PFS。PFS在IKE里保证了即使老的密钥被破解,在IKE rekey(换密钥)后不会影响到新的密钥的保密性
● 对端失连检测(DPD):自动检测两端的连接,如果失连可以把隧道关闭
● NAT穿越的协商:RouterOS支持多个版本NAT穿越的协商,达到最大程度的互通性(draft-ietf-ipsec-nat-t-ike-01.txt、draft-ietf-ipsec-nat-t-ike-02.txt、RFC3947)
● 响应方设置commit位(responder-set-commit):用户可以配置使响应方设置commit位,从而防止出现丢包和时间差现象
其他特性
● DF bit拷贝/设置/清除:不分片(DF)比特在IP包头里控制了所经ā路由器对
一些超过出接口MTU的大包的处理
● 手动第二阶段ID配置:在VPN互通上经常出现的问题是由于第二阶段ID的
不匹配。管理员可以在Mikrotik设备上手动配置第二阶段ID和对端设备匹配,以
达到双方设备的互通
● Mikrotik设备可以只做IKE的发起方或应对方,或既可以发起也可以应对
(双向)
● Mikrotik设备有自动重连接的功能,自动发起IKE,不用利用数据流激发
高容量,高性能
所有的Mikrotik设备都支持对IPSec的硬件加速。每一个CPU核都有一个内嵌的IPSec处理引擎,这保证了在CPU核数增加时,IPSec的性能得到相应提高,不会成为瓶颈。Mikrotik设备的IPSec吞吐率可以达到8Gbps,达到和防火墙一样的性能和设备极限。
Mikrotik领先的硬件技术造就了高性能、高容量的硬件平台。Mikrotik设备最多可支持30000条隧道,均可通过IKE进行密钥协商。可拓展的VPN技术实现了在IPSec性能上30000条和1条相差无几。
3. Mikrotik VPN 解决方案
点对点VPN
在点对点VPN上,Mikrotik VPN支持静态IP对端。如果一个点的IP可能随时间改变,可以配置FQDN的域名,同时可以利用DDNS技术,在IKE协商时动态解析域名获得IP进行协商。
有一些VPN对端是动态IP,又不适用FQDN域名,可以用动态IP VPN。IKE的认证可以通过FQDN的ID配置,一方的本地ID必须和另一方的对端ID相匹配,相反,一方的对端ID必须和对方的本地ID匹配。
基于路由的VPN
基于路由的VPN把VPN隧道虚拟成一个接口,这在RouterOS里就是隧道(tunnel)接口。这个接口和普通接口相似,RouterOS可以在其上支持与普通接口相同的功能:
● 可以在隧道接口上配置NAT转换。当我们需要把两个有地址冲突的网段用VPN连起来的时候,我们可以在双方的隧道接口上把冲突的地址转换成新的不冲突的地址,然后再进入隧道
● MTU(最大传输单元)和MSS(TCP最大传输大小)可以在隧道接口上配置,控制隧道中数据流的特性
● 可以对VPN流量配置QoS。管理员可以利用各种QoS流控,如流量、整形、限流、优先级队列和IP队列等,对VPN隧道中的数据流进行控制
● 可以在隧道接口上配置路由协议。例如,一个公司可以在分支机构间的VPN上运行OSPF路由协议
● 对基于路由的VPN,可以在相应的防火墙策略上配置P2P和IM的控制配置、URL和内容过滤的配置以达到对VPN隧道中数据流的应用安全功能
● VPN的负载均衡和主备倒换可以用路由的负载均衡和不同权值来实现RouterOS支持标准的ECMP(Equal cost multiple path)和WCMP(Weighted ECMP)。这种路由的负载均衡和主备关系可以是VPN路由之间的,也可以是VPN路由和其他路由之间的
● RouterOS支持多种路由种类:基于源的路由(SBR)、基于源接口的路由(SIBR)、基于策略的路由(PBR),所有这些路由种类都可以在隧道接口上配置
● RouterOS支持GRE和GRE-over-IPSec,支持在一个隧道接口上配置多条VPN/GRE/GRE-over-IPSec,和其上的OSPF路由协议。
基于路由的VPN在技术上可以和网络技术自然地融合,便于把网络配置和安全配置分开,清晰地管理网关设备。
基于策略的VPN
基于策略的VPN是VPN和防火墙策略的结合,这是传统的VPN配置方法。管理员可以在策略上配置一些安全特性:
● 对VPN隧道中的数据流进行P2P/IM 控制
● 对VPN隧道中的数据流进行基于策略的QoS
● 对VPN隧道中的数据流进行URL 和内容过滤
星形VPN部署
许多公司的网络结构包括总部和多处分支机构,为了达到分支机构之间的互通我们可以采用全连通(Full Mesh)的部署。但这种方法拓展性不好,当分支机构的数目增多时,VPN数量以N2的速度增长,而且每增加一个分支机构,其他每一个点的VPN配置都需要做改动,增加一个VPN隧道到新增的分支。当我们处理成百上千的分支机构时,每个分支的设备需要建成百上千的隧道,提高了设备的成本。这几点显然都是不能接受的。
星形部署VPN解决了这个问题。每一个分支机构只建一个VPN到总部,这条VPN不仅作为分支到总部的加密通道,而且分支机构之间的通信也是通过它完成,分支机构通过总部通信。

RouterOS对基于路由的VPN和基于策略的VPN都支持星形VPN部署。
拨号VPN
在总部-分支机构的案例里,当分支机构的数量增加时,在总部的配置也变得越来越繁琐。拨号VPN应运而生。拨号VPN在总部配置一个VPN模板。当一个分支机构连入时,一个动态的VPN隧道在总部方自动产生。
例如,在图表3里,当总部和3个分支机构相连时,我们在总部需要配置3条点对点VPN。如果我们采用拨号VPN,我们只需要配置一条VPN(VPN-t是一个模板)。

拨号VPN可以使用预共享密钥或证书(PKI)做认证。如果用预共享密钥,RouterOS利用强制的方法给每个分支机构分配不同的密钥,而且这些密钥不能够互相导出.
最后,Mikrotik支持基于用户的访问控制。可以基于用户的ID和分组来决定每一个用户的访问权限。拨号VPN可以和基于用户的访问控制相结合。在拨号VPN的情况下,每一个VPN连接都会有一个用户关联,利用这个关联用户的ID和组信息来做访问控制。
4. 结论
Mikrotik RouterOS嵌入式操作系统支持丰富的IPSec VPN功能。这些功能和系统的网络、安全功能和协议全面结合,支持多种部署方式;和Mikrotik的SSL VPN(Secure Connect)技术结合,给网络安全市场提供了完整的VPN解决方案。

