一、VPN(virtual private network)——虚拟专用网

1.背景

Internet网络不安全

通过专线连接分支机构成本高

PSTN拨号成本高,速率低

2.作用

利用共享公网构建专有私有网——跨域公网,能访问私有主机

3.优势

部署简单快捷;

与私有网络一样提供安全性、可靠性和可管理性;

通过Internet互联,不接受地理位置限制,成本低;

简化用户方的配置和维护工作。

4.隧道技术(VPN技术)

定义:使用一种协议去封装另一种协议。

封装包格式     :

协议A头封装协议协议B头载荷数据

                        承载协议                封装协议                载荷协议

载荷数据:被封装的原始数据

载荷协议:被封装在内层的协议(私网IP头部)

封装协议:对载荷协议的封装方式(标识用哪种VPN)

承载协议:再次封装的外层协议(公有IP头部)

5.分类

按使用场景:

(1)site-to-site vpn:站点到站点的VPN,用于连接不同分支机构的VPN,双方的公网地址必须是静态的。

IPsec VPN:一种网络层的安全保障技术,在公网上为两个私有网络提供安全通信通道,通过加密通道保证连接的安全。

GRE VPN:最简单的VPN,一般和IPsec VPN搭配使用。

(2)access vpn:用于把单个移动用户接入到公司内网

L2TP VPN:隧道到传送PPP网络,二层VPN,用L2TP VPN构建access vpn——已被淘汰

SSL VPN:SSL VPN是解决远程用户访问公司敏感数据最简单最安全的技术。

按工作层次:

二层VPN:L2TP VPN

三层VPN:IPsec VPN、GRE VPN

七层VPN:SSL VPN

二、GRE

1.简介

Genric Routing Encapsulation,同用路由封装,标准的三层隧道技术,是一种点对点的隧道,在任意一种网络协议上传送任意一种其他网络协议的封装方法。

2.GRE VPN

直接使用GRE封装建立的GRE隧道,在一种协议的网络上传送其他协议;虚拟的隧道接口(Tunnel)

3.GRE报文结构

链路层头协议A头GRE头协议B头载荷数据

                                                承载协议                                载荷协议

载荷数据:被封装的原始数据

载荷协议:被封装在内层的协议(私网IP头部)

封装协议:对载荷协议的封装方式——GRE头

承载协议:再次封装的外层协议

4.GRE VPN工作过程

隧道起点找到私网路由,数据包发往Tunnel口

数据包在Tunnel口进行封装隧道使用的协议和公网IP头部

根据公网IP头部查找路由表,并转发

数据包在公网进行传输

查找公网路由并解除公网IP头部封装

睡到终点查找私网路由并转发至目的主机

5.GRE VPN的优缺点

(1)优点

可以用当前最为普遍的IP网络作为承载网络

支持多种网络层协议

支持组播和动态路由协议

配置简单、部署容易

(2)缺点

点对点隧道

静态配置隧道参数

布置复杂连接关系式时,代价巨大

缺乏安全性

不能分割地址空间(不能解决私网地址冲突问题)

6.多Tunnel口冗余

作用:主隧道转发数据,备用隧道处于空闲状态;需要开启Keepalive来检测隧道运行状态

三、实验

1.实验要求

(1)按照图示配置IP地址
(2)在R1和R3上配置默认路由是公网区域互通
(3)在R1和R3上配置GRE VPN ,使两端私网能够互相访问,Tunnel口IP如图
(4)在R1和R3上配置RIPv2或者ospf或者静态,来传递两段私网路由

2.网络拓扑图

3.实验思路

(1)配置IP地址

(2)搞通公网

(3)配置GRE VPN 

        创建隧道接口

        配置隧道协议

        配置公网的IP地址

(4)配置路由协议,传递两段私网路由

(5)测试

4.配置

(1)PC1、PC2

(2)R1配置

[R1]INT g0/0/0
[R1-GigabitEthernet0/0/0]ip address 192.168.1.254 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip address 100.1.1.1 24

(3)R2配置

[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip address 100.1.1.2 24
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip address 100.2.2.1 24

(4)R3配置

[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip address 100.2.2.2 24
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip address 192.168.2.254 24

(5)R1配静态缺省

[R1]ip route-static 0.0.0.0 0 100.1.1.2

(6)R3配静态缺省

[R3]ip route-static 0.0.0.0 0 100.2.2.1

(7)配置GRE VPN

建隧道

[R1]int Tunnel 0/0/0
[R1-Tunnel0/0/0]ip address 192.168.3.1 24
[R1-Tunnel0/0/0]tunnel-protocol gre
[R1-Tunnel0/0/0]source 100.1.1.1
[R1-Tunnel0/0/0]destination 100.2.2.2

[R3]int Tunnel 0/0/0
[R3-Tunnel0/0/0]ip address 192.168.3.3 24
[R3-Tunnel0/0/0]tunnel-protocol gre
[R3-Tunnel0/0/0]source 100.2.2.2    #隧道封装的源地址
[R3-Tunnel0/0/0]destination 100.1.1.1    #隧道封装的目标地址

检查隧道是否能ping通

使用静态路由,将私网的数据包导到隧道上面去,传递两端的私网路由

使用动态路由传递私网路由

先删除之前配置的静态路由:

[R1]undo ip route-static 192.168.2.0 24 Tunnel 0/0/0
[R3]undo ip route-static 192.168.1.0 24 Tunnel 0/0/0

OSPF:

[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]a 0
[R1-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255 #宣告网段
[R1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]a 0
[R3-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255

rip:

先删除之前配置的OSPF

[R1]rip 1
[R1-rip-1]version 2    #选择版本
[R1-rip-1]undo summary     #关闭自动汇总
[R1-rip-1]network 192.168.3.0 #宣告网段
[R1-rip-1]network 192.168.1.0
[R3]rip 1
[R3-rip-1]version 2
[R3-rip-1]undo summary
[R3-rip-1]network 192.168.3.0
[R3-rip-1]network 192.168.2.0

5.测试

ospf:

rip:

四、MGRE

1.简介

定义:多点通用路由封装协议,适合多个分公司需要和总部连接的情况

特点:通过构建公共隧道实现总部和分部、分部与分部之间的通信

           所有私网中,有一方的公网地址必须固定,其他私网地址可以不固定

NHRP协议——下一跳解析协议

工作原理:

在私网中选择一个NHRP中心站点,其出口的公网IP必须是固定的

NHRP中心站点要求所有分支都需要将自己物理接口IP和隧道IP发给中心站点

NHRP中心站点会将所有的分支的地址映射关系动态的记录在本地,发送信息时查询即可

分支之间需要发送信息也要获取这个映射关系,就需要访问NHRP中心站

2.实验

1.实验要求

(1)按图示配置IP地址

(2)配置静态路由协议,搞通公网

(3)配置GMRE VPN

(4)NHRP配置

(5)配置RIP路由协议来传递两端私网路由

(6)测试全网通

2.网络拓扑图

3.配置

R1先配置内网地址(环回口模拟的)

[R1]int l0
[R1-LoopBack0]ip address 192.168.1.1 24
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip address 15.0.0.1 24

R2配置

[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip address 25.0.0.2 24
[R2]int l0
[R2-LoopBack0]ip address 192.168.2.2 24

R3配置

[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip address 35.0.0.3 24
[R3-GigabitEthernet0/0/0]int l0
[R3-LoopBack0]ip address 192.168.3.3 24

R4配置

[R4]int g0/0/0
[R4-GigabitEthernet0/0/0]ip address 45.0.0.4 24
[R4-GigabitEthernet0/0/0]int l0
[R4-LoopBack0]ip address 192.168.4.4 24

R5配置:

[ISP]int g0/0/0
[ISP-GigabitEthernet0/0/0]ip address 15.0.0.5 24
[ISP-GigabitEthernet0/0/0]int g0/0/1
[ISP-GigabitEthernet0/0/1]ip address 25.0.0.5 24
[ISP-GigabitEthernet0/0/1]int g0/0/2
[ISP-GigabitEthernet0/0/2]ip address 45.0.0.5 24
[ISP-GigabitEthernet0/0/2]int g4/0/0
[ISP-GigabitEthernet4/0/0]ip address 35.0.0.5 24

配置静态缺省,使公网通

[R1]ip route-static 0.0.0.0 0 15.0.0.5
[R2]ip route-static 0.0.0.0 0 25.0.0.5
[R3]ip route-static 0.0.0.0 0 35.0.0.5
[R4]ip route-static 0.0.0.0 0 45.0.0.5

测试:

配隧道:

#R1
[R1]int Tunnel 0/0/0
[R1-Tunnel0/0/0]ip address 192.168.5.1 24
[R1-Tunnel0/0/0]tunnel-protocol gre p2mp 	#隧道协议,MGRE
[R1-Tunnel0/0/0]source 15.0.0.1            #封装公网地址,源地址
#R2
[R2]int Tunnel 0/0/0
[R2-Tunnel0/0/0]ip address 192.168.5.2 24    #隧道地址+掩码
[R2-Tunnel0/0/0]tunnel-protocol gre p2mp
[R2-Tunnel0/0/0]source GigabitEthernet 0/0/0
#R3
[R3]int Tunnel 0/0/0
[R3-Tunnel0/0/0]ip address 192.168.5.3 24
[R3-Tunnel0/0/0]tunnel-protocol gre p2mp
[R3-Tunnel0/0/0]source GigabitEthernet 0/0/0
#R4
[R4]int Tunnel 0/0/0
[R4-Tunnel0/0/0]ip address 192.168.5.4 24
[R4-Tunnel0/0/0]tunnel-protocol gre p2mp
[R4-Tunnel0/0/0]source GigabitEthernet 0/0/0

NHRP的配置

#R1
[R1]int Tunnel 0/0/0
[R1-Tunnel0/0/0]nhrp network-id 100    #创建NHRP域
#R2
[R2]int Tunnel 0/0/0
[R2-Tunnel0/0/0]nhrp network-id 100
[R2-Tunnel0/0/0]nhrp entry 15.0.0.1 192.168.5.1 register    #分支找中心注册自己的信息
#R3
[R3]int Tunnel 0/0/0
[R3-Tunnel0/0/0]nhrp network-id 100
[R3-Tunnel0/0/0]nhrp entry 15.0.0.1 192.168.5.1 register
#R4
[R4]int Tunnel 0/0/0
[R4-Tunnel0/0/0]nhrp network-id 100
[R4-Tunnel0/0/0]nhrp entry 15.0.0.1 192.168.5.1 register

配置路由协议(动态)

#R1
[R1]rip 1
[R1-rip-1]v 2    #选择版本
[R1-rip-1]undo summary
[R1-rip-1]network 192.168.1.0    #路由
[R1-rip-1]network 192.168.5.0    #宣告隧道接口
[R2]rip 1
[R2-rip-1]undo summary
[R2-rip-1]NET 192.168.2.0
[R2-rip-1]NET 192.168.5.0
[R3]rip 1
[R3-rip-1]v 2
[R3-rip-1]netw 192.168.3.0
[R3-rip-1]netw 192.168.5.0
[R3-rip-1]undo summary
[R4]rip 1
[R4-rip-1]v 2
[R4-rip-1]undo summary
[R4-rip-1]net 192.168.4.0
[R4-rip-1]net 192.168.5.0

开启中心站点广播功能

[R1]int Tunnel 0/0/0
[R1-Tunnel0/0/0]nhrp entry multicast dynamic

关闭RIP的防环机制

#R1
[R1]int Tunnel 0/0/0
[R1-Tunnel0/0/0]undo rip sp
[R1-Tunnel0/0/0]undo rip split-horizon
#R2
[R2]int Tunnel 0/0/0
[R2-Tunnel0/0/0]undo rip sp
[R2-Tunnel0/0/0]undo rip split-horizon
#R3
[R3]int Tunnel 0/0/0
[R3-Tunnel0/0/0]undo rip sp
[R3-Tunnel0/0/0]undo rip split-horizon
#R4
[R4]int Tunnel 0/0/0
[R4-Tunnel0/0/0]undo rip sp
[R4-Tunnel0/0/0]undo rip split-horizon