“夫妇1条心,泥土变黄金。。”
VPN的应用场景
VPN:全称virtrual private netewrok 虚拟专用网络。
VPN最主要的有两种应用类型:
总部和分支机构之间的对联。
远程出差人员,通过vpn拨号的方式访问企业内网。
VPN的起源
在如今的互联网,庞大而又复杂,大部分的企业都是依靠着互联网来进行业务的交互。企业的扩张战略布局往往都是在祖国各地上生根发芽......
而企业之间要通过遥远的距离进行通讯传输业务,不可能耗费巨资建立一条光纤专线(其实是可以建立一条专线,但是我们不提这个光纤链路的中继的技术)!
在如今祖国的大局域网中,各家运营商通过BGP .OSPF 等网络协议让各合法的公网IP地址互联互通,虽然能够互相通信,但是都不是一个网段,在土豪企业施行的大部分都是专线(租赁运营商线路,只有自己能用。),而VPN是共享的方式。
从线路传输质量上来说:专线好于VPN。可以用公交车道和其他的道路作为专线和VPN的比较就可以很形象的说明了。
目前专线的类型有:DDN FR SDH MSTP.
专线的缺点显而易见:成本高!
VPN的类型有:ipsec SSL MPLVPN PP2P PPTP GRE
优点:只需要两个公网IP地址就可以实现互相通讯,价格便宜。
缺点:通信质量较差。
再不明白的话,我可以下面的图来表示专线和VPN的区别:
公交专用道:专线。(买断独享)
普通车道:VPN。(共享方式)
VPN的优势
在各大运营商之间的网络中规定是不允许传播带有私网地址的路由报文。所以两地的私网服务想要进行互相通信,在不借助专线和NAT映射(映射的前提需要大量的公网IP地址)以及VPN隧道是无法进行互相通信的。
VPN的类型:
ip-psec
SSL
MPLVPN
PP2P
PPTP
GRE
VPN实验环境拓扑
图中的红色区域代表运营商网络,期内路由设备运行OSPF动态路由协议,area为0,通告各自的网段且全网互通
(注意的是,R1和R4是需把50.0.8.0和60.0.60.0网段通告出去。)
其余为企业内部区域.
R5和R6的缺省路由都分别指向R1和R4的接口地址。
R5和R6通往运营商的出口接口为g0/0/1
配置好企业内部的接口地址。
实现物理地址不同的两个职场内部的服务器实现私网地址互通。
全网的OSPF协议区域为0,进程为 OSPF 1
关键配置:
需要在两个职场内的路由设备上配置默认路由指向运营商颁发的合法IP地址。
双职场区域设备配置缺省路由:
[RYS-H]ip route-static 0.0.0.0 0.0.0.0 50.0.8.1
[RYS-I]ip route-static 0.0.0.0 0 60.0.60.1
为了使得拓扑中的50.0.8.0和60.0.60.0这两个网段能够互相通讯,配置在R1和R4上OSPF协议中宣告这两个网段:
[Bejing-1-ospf-1-area-0.0.0.0]network 50.0.8.0 0.0.0.255
[Yanjiao-1-ospf-1-area-0.0.0.0]network 60.0.60.0 0.0.0.255
也可采用OSPF中精确的宣告其地址:
[Yanjiao-1-ospf-1-area-0.0.0.0]network 60.0.60.3 0.0.0.0
这样的话,我R1上通过OSPF算法就能看到60.0.60.0这个网段了:
站在R5上ping R6的公网地址60.0.60.2,模拟两个职场公网地址间的互相通讯情况。
得到的结果是可以通讯的。
到目前为止,根据拓扑的现有配置可以证明全网的公网IP地之间是可以互相通讯的,但是两个职场间的带有私网地址的目标网络是无法进行互相访问的。
配置GRE VPN
GRE:通用路由封装协议。
(从安全角度先已被淘汰,不推荐使用。)
首先,依照拓扑,我需要在两个职场的出口路由设备上做配置:
在出口路由上的相应的接口建立VPN隧道
[RYS-H]interface Tunnel 0/0/1
隧道协议的选择:
图中的协议有很多,目前做的配置是GRE.
[RYS-H-Tunnel0/0/1]tunnel-protocol gre
指定隧道的源地址和目标地址:
这个源地址和目标地址一定是两个职场间的出口公网接口!
[RYS-H-Tunnel0/0/1]source 50.0.8.2
[RYS-H-Tunnel0/0/1]destination 60.0.60.2
这里注意的是目标地址和描述信息的英文单词极为相似,以下是描述的配置:[RYS-H-Tunnel0/0/1]description 50.0.8.2 to 60.0.60.2
R5的G0/0/1的接口地址配置汇总如下,同样在R6上也是需要这样配置。
R6配置如下:
配置隧道接口地址:
这里的作用就给VPN隧道新增一个全新的网段,这个网段可由你自己来选取。
双职场间的出口路由上配置:
[RYS-I-Tunnel0/0/1]ip address 56.0.13.2 24
配置路由条目(可以是静态、动态)指向VPN隧道内建立的新网段,否则两个私网的设备还是不能够互相通信!
这里我的数据包从192.168.13.0这个网段去192.168.0.2,配置一条静态路由,指向下一条的地址为56.0.13.2
在R5上配置:同样R6上也是配置一条回程路由。
[RYS-H]ip route-static 192.168.0.0 24 56.0.13.2
[RYS-I]ip route-static 192.168.13.0 24 56.0.13.1
这样的话,不论是我站在R5和R6上来说,都能看到去往对方的目标网络的路由条目和下一跳地址:
测试私网地址互相是否可以通信:
站在PC3上 ping PC4的私网地址192.168.0.2
VPN _GRE 传输原理
在整个网络拓扑中我是没法干预运营商区域的路由设备,我所有的VPN配置全部都配置在职场区域内的边界网关上。
初学者会认为,既然双方都已经能够正常通信,是不是代表着运营商网络内可以承载我这个带有192.168.13.2这个IP包文的内容了吗?
答案是不能的!
我抓取R5的g0/0/1的数据报文来看一下:
从抓包上可以观察的到:在数据包文中存在两个数据IP包头
公网IP (s50.0.8.2 d60.0.60.2)
私网IP (s 192.168.13.2 d 192.168.0.2)
数据包所走的真实的物理链路路线,不是虚拟的那个通道,而是真正的运营商实际的链路,数据到达R5后,会增加一个公网的地址IP包头,运营商网络其余的路由器看到这个数据报文,只是看到了表面的公网IP数据包头,不会去关心实际内部的IP变化,它只负责路由转发,一直传到隧道的重点,会把外面的公网IP的包头去掉,露出里面的私网地址从而转发给相应的网段。
通过GRE的封装,运营商的网络设备是不知道期内的数据报文中已经有了私网的IP地址。
那么R5和R6是如何知道去往目标网络的IP报文要给其封装上GRE的协议呢?
原因很简单,观察R5的路由表:
既然知道了通往192.168.0.0的网段下一跳地址为56.0.13.2,
那么56.0.13.0所在的网段接口就是tunnel 0/0/1的接口,(隧道接口),因此出接口就为tunnel0/0/1,从隧道接口的数据报文都会被嵌入一个带有GRE封装的公网数据报头。
我们可以看出GRE的配置还是非常的简单,简单的背后就会有很多致命的缺点:
数据隐私极易被人捕获,从抓包的内容可以看出很多数据内容,比如公网和私网IP地址,ICMP报文里的内容。
为了解决GRE这个致命的缺点,ip-sec VPN就横空出世了..........
ip-secVPN 是比较安全的,其VPN传输的原理和GRE VPN是一致的,都是把私网地址封装,用公网地址进行传输,唯一的区别就是防止数据被窃取篡改
领取专属 10元无门槛券
私享最新 技术干货