华山派通过部署SSL VPN,让大家都可以远程办公,不但解决了自用问题,还向全社会推广,在关键时期赢得了社会的广泛赞誉。
不过,大家普遍反映一个问题:
连上SSL VPN以后,为什么上网变慢了呢?
原来,问题在这里——
可见,用户在连接SSL VPN以后,由于所有的流量都被送去公司内网,包括去往P站的流量也需要进入公司内网,再从公司互联网出口绕行,严重增加了时延,影响了流畅度。
为什么所有流量会被送去公司内网呢?
原来,SSL VPN的实现,依赖于一个小秘密——路由表。
路由表存在于每一个需要连接网络的终端。
举一个栗子:
某Linux虚拟机只有一个网卡,IP地址是192.168.1.16,掩码是255.255.255.0,默认网关是192.168.1.1。
我们在终端敲下route命令以后,可以看到,它有3条路由表,其中default指向的是192.168.1.1,也就是说,除指向同一网段的数据包以外,其他任何下一跳都需要指向这个网关。
而连接了SSL VPN以后,情况发生了变化——
大家经常说,SSL VPN是一个“隧道”。顾名思义,隧道是需要有出入口的。SSL VPN的出入口在这里——
以安装了H3C iNode SSL VPN客户端的Windows计算机为例:
让我们打开Windows的控制面板中的"网络设置",我们发现,在安装了iNode后,多了一个网络设备——
实际上,在运行了iNode VPN并连接成功以后,默认所有的流量都会通往这里。原来,SSL VPN的工作过程看似简单,里面却隐藏了七个步骤——
1. 管理员在SSL VPN网关上创建SSL VPN AC接口,并配置下发给SSL VPN客户端的路由表项;
2. 用户在客户端登录SSL VPN;
3. SSL VPN网关在认证授权通过后,为客户端的虚拟网卡分配IP地址,并发送路由表项给客户端;
4. 客户端为虚拟网卡设置IP地址,并添加路由表项,路由的出接口为虚拟网卡。
5. 用户在客户端上访问企业内网服务器时,访问请求报文匹配添加的路由表项,该报文将进行SSL封装,并通过虚拟网卡发送给SSL VPN网关的SSL VPN AC接口。
6. SSL VPN网关对SSL报文进行解封装,并将IP报文转发给内网服务器。
7. 内网服务器将应答报文发送给SSL VPN网关, SSL VPN网关对报文进行SSL封装后, 通过SSL VPN AC接口将其发送给客户端。
我们发现,在第4步,决定了用户所有的流量都将进入iNode VPN 虚拟网卡,也就是隧道的入口。这样,即使是访问互联网的流量,也将绕行公司内网。
那么,我们只需要在这个地方有所改变,就可以实现让上帝的归上帝,凯撒的归凯撒——
在SSL VPN网关下发路由时,只下发去往企业内网的路由,让去企业内网的流量走VPN隧道,就可以了。
我们看到,流量在入互联网时发生了分离,因此,这种SSL VPN也叫做split tunnel (分离隧道)方式。
使用Split tunnel的好处在于,它使得去互联网的流量勿需绕行企业内网,大大降低了时延,也减轻了SSL VPN网关的负担。当然,坏处是可能会有一些安全上的隐患。
因此,对于金融等特殊行业的客户,需要特殊的SSL VPN部署方式——
如图,金融行业客户需要异构防火墙组网,在两层防火墙中间夹着SSL VPN网关。这样,外层防火墙检查SSL VPN的外层流量,而内层防火墙再检查从SSL VPN网关到虚拟机的合法性。
有了基于SSL VPN的远程办公方案加持,我们相信,中国人民一定能战胜一切困难!