VPN与Internet互联
一般VPN内的用户只能相互通信,不能与Internet用户通信,也不能接入Internet。但VPN的各个site可能有访问Internet的需要。为了实现VPN与Internet互联,需要满足以下条件:
- 要访问Internet的用户设备必须有到达Internet目的地址的路由;
- 有从Internet返回的路由;
- 与非VPN用户与Internet互联方式相同,必须采用一定的安全机制(如使用防火墙)。
有三种实现方法:
在骨干网边缘设备PE侧实现。该PE负责区别两种不同的数据流,并分别转发至VPN及Internet。同时,在VPN与Internet两个域之间提供防火墙功能。
在Internet网关侧实现。这里的Internet网关是指接入Internet的运营商设备,必须具备VPN路由管理功能。例如:Internet网关可以是不接入任何VPN用户的PE设备。
在用户侧实现。此时,由私网边缘设备CE区分两种不同的数据流,并分别引到两个不同的域:一个通过PE边缘设备接入VPN,一个通过不包含在VPN内的ISP设备接入Internet。同时,CE设备提供防火墙功能。
在骨干网边缘设备PE侧实现
在PE侧实现VPN与Internet互联,一般采用静态缺省路由的方式。
PE设备向CE发出一条去往Internet的缺省路由。
在VPN实例路由表添加一条缺省路由,指向Internet网关。
要实现从Internet返回的路由,需要将去往CE接口的静态路由加入到公网路由表中,并发布到Internet。这通过在PE公网路由表中添加一条静态路由来实现,其目的地址为VPN用户地址,出接口为PE上连接CE侧的接口;并将该路由通过IGP发布到Internet上。
在用户侧实现
在用户侧实现有两种方法:
直接将CE接入Internet,如图2-40所示。
直接将CE接入Internet还可分为两种方式:
将用户其中一个站点(如中心站点)接入Internet。在中心站点的CE上配置到Internet的缺省路由;然后使用VPN骨干网将该缺省路由发布给其他站点。只在中心站点部署防火墙。这种方式中,除中心站点的用户外,其他用户访问Internet的流量都经过VPN骨干网。典型的应用是在Hub and Spoke组网中,将Hub站点接入Internet。
将每个用户站点单独接入Internet,即每个站点的CE都配置到Internet的缺省路由。在每个站点都部署防火墙进行安全保护。所有用户访问Internet的流量都不需要经过VPN骨干网。
另一种是使用单独的接口或子接口接入PE,由PE将CE上的路由注入到公网路由表中,并发布到Internet,并将缺省路由或者Internet路由发布到CE。此时这个接口不属于任何VPN,即不关联任何VPN实例。也就是说,该用户既以VPN用户的角色接入PE,又以普通非VPN用户接入PE,如图2-41所示。
建议在接入Internet的VPN骨干网设备与接入CE的PE之间建立隧道,使Internet路由通过隧道传递,P不接收Internet路由。
三种方法的比较
在PE侧实现,与VPN接入使用同一个接口,节约接口资源,并且不同的VPN可以共享一个公网IP地址;缺点是在PE上实现复杂,且存在安全隐患:PE设备可能受到Internet的DoS(Denial of Service)攻击,来自Internet的恶意的大流量攻击会使得PE-CE链路饱和,从而使得正常的VPN数据包无法传输。
在Internet网关处实现,比在PE侧实现安全性高,但Internet网关要创建多个VPN实例,负担重。且Internet网关要使用多个接口接入Internet,每个接口占用一个公网IP地址,每个VPN使用一个接口和一个公网IP地址。
在用户侧实现,其实现方法简单,公网和私网路由隔离,安全可靠;但缺点是需使用单独的接口,占用接口资源,并且每个VPN都需要单独使用一个公网地址。