一、基础知识

VPN(Virtual Private Network)虚拟专有网络,即虚拟专网。VPN可以实现在不安全的网络上,安全的传输数据,好像专网!VPN只是一个技术,使用PKI技术,来保证数据的安全三要素(C、I、A)

1.1 VPN的类型

1)远程访问VPN:(Remote Access VPN)

一般用在个人到安全连接企业内部!
一般出差员工/在家办公,安全连接内网时使用!(需要有单独的VPN服务器)
一般公司部署VPN服务器,员工在外拨号连接VPN即可!
常见RA-VPN协议:PPTP VPN、L2TP VPN、SSTP VPN、(过时了)

                                EZvpn/easyvpn(思科私有的)、SSL VPN (目前最流行的)             

2)点到点VPN

一般用在企业对企业安全连接!
一般需要在两个企业总出口设备之间建立VPN通道!
常见的点到点VPN:IPsecVPN

1.2 IPsecVPN

1)属于点到点VPN,可以在2家企业之间建立VPN隧道!

2)VPN隧道优点:安全性!合并俩家企业内网!

3)VPN隧道技术:

  • 传输模式:只加密上层数据,不加密私有IP包头,速度快
  • 隧道模式:加密整个私有IP包,包括IP包头,更安全,速度慢

4)VPN隧道技术:重新封装技术+加密认证技术

5)IPsecVPN分为2大阶段

第一阶段:管理连接

目的:通信双方设备通过非对称加密算法 加密 对称加密算法 所使用的 对称密钥
命令:

conf t 
crypto isakmp policy 1          ( IKE     传输集/策略集,可以多配置几个策略集)
  encryption des/3des/aes         (加密算法类型)
  hash md5/sha                        (完整性校验算法类型)
  group 1/2/5                              (使用D-H算法的版本?)
  authentication pre-share          (预共享密钥算法,身份验证方式)
  lifetime 秒 (默认86400秒)      (可以不配置,对称密钥有效时间,如果双方不一致,取min,最好一致)
  exit
crypto isakmp key 预共享密钥 address 对方的公网IP地址

第二阶段:数据连接

目的:通过 对称加密算法 加密 实际所要传输的私网数据!

定义VPN触发流量:
access-list 100 permit ip 192.168.1.0 0.0.0.255 172.16.0.0 0.0.255.255

定义加密及认证方式:
conf t
crypto ipsec transform-set 传输模式名 esp-des/3des/aes esp/ah-md5/sha-hmac
例:
crypto ipsec teansform-set wencoll  esp-aes esp-sha-hmac

  • ESP:支持加密及认证(身份验证+完整性)
  • AH:只支持认证,没得加密(身份验证+完整性)

创建MAP映射表

conf t
crypto map map名 1 ipsec-isakmp         (1是隧道1)
  match address ACL表名               (阶段2里面的ACL表名)
  set transform-set 传输模式名
  set peer 对方的公网IP
  exit

eg:

crypto map wenmap 1 ipsec-isakmp
  match address 100
  set transform-set wentran
  set peer 200.1.1.2
  exit
crypto map wenmap 2 ipsec-isakmp          (2是隧道2)
  match address 101
  set transform-set wentran
  set peer 150.1.1.2
  exit

将map表应用到外网端口

int f0/1(外网端口)
  crypto map wenmap
  exit
****注意:一个接口只能应用一个map表!!!!

查看命令:

show crypto isakmp sa               查看第一阶段状态
show crypto ipsec sa                  查看第二阶段状态

show crypto isakmp policy          查看第一阶段的策略配置集
show crypto ipsec transform-set 查看第二阶段的传输模式

路由器的工作原理:内网--to--外网: 路由--NAT--VPN--出去

实验1:北京--上海--建立VPN隧道,并验证(这篇文章所做的
实验2:在实验1的基础上,要求2个公司能上网,但不影响VPN隧道(因为流量经过路由器时,先NAT再VPN,但是如果经过NAT转换的流量就无法匹配到VPN的需求了。于是需要在NAT的ACL表中豁免来源是192目标是172的流量)

acc 101 deny ip 192.168.1.0 0.0.0.255 172.16.1.0 0.0.0.255
acc 101 permit any

实验3:在实验1和2的基础上,要求北京总部与广州新成立的分公司也建立VPN隧道(北京那里有俩隧道,NAT的ACL表里再加一条豁免)
可选:
实验4:在1-3的基础上,要求广州和上海之间不建立VPN隧道,但广州和上海可以互相安全的通信!(俩路由器都加一条VPN的ACL。)

远程访问VPN:(扩展知识点)
在公司需要搭建VPN服务器
VPN服务器需要对VPN客户端进行身份验证
VPN服务器需要给VPN客户端下发权限及IP地址

 二、实验过程

VPP与EIOT关系 vp与vpp的区别_VPN

 

 要求在中间路由器R2没有设置路由转发表的前提下,北京——上海建立VPN隧道互通。

1)如实验拓扑图给PC主机配置静态IP、子网掩码、网关

 

VPP与EIOT关系 vp与vpp的区别_IP_02

 

VPP与EIOT关系 vp与vpp的区别_R3_03

 2)给路由器配置接口IP与路由表项

Router(config)#ho R1
R1(config)#int f0/1
R1(config-if)#ip add 192.168.1.254 255.255.255.0
R1(config-if)#no sh

R1(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up
exit
R1(config)#int f0/0
R1(config-if)#ip add 100.1.1.1 255.255.255.0
R1(config-if)#no sh

R1(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
exit
R1(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.2
Router(config)#ho R2
R2(config)#int f0/0
R2(config-if)#ip add 100.1.1.2 255.255.255.0
R2(config-if)#no sh

R2(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
exit
R2(config)#int f0/1
R2(config-if)#ip add 200.1.1.1 255.255.255.0
R2(config-if)#no sh

R2(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up
exit
Router(config)#ho R3
R3(config)#int f0/1
R3(config-if)#ip add 200.1.1.2 255.255.255.0
R3(config-if)#no sh

R3(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up
exit
R3(config)#int f0/0
R3(config-if)#ip add 172.16.1.254 255.255.255.0
R3(config-if)#no sh

R3(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
exit
R3(config)#ip route 0.0.0.0 0.0.0.0 200.1.1.1

 

3)管理连接、创建连接、创建map映射表、将map表应用到外网端口

R1(config)#crypto isakmp policy 1
R1(config-isakmp)#encryption aes
R1(config-isakmp)#group 2
R1(config-isakmp)#hash sha
R1(config-isakmp)#authentication pre-share 
R1(config-isakmp)#exit
R1(config)#crypto isakmp key coderge address 200.1.1.2
R1(config)#
R1(config)#acc 100 permit ip 192.168.1.0 0.0.0.255 172.16.1.0 0.0.0.255
R1(config)#crypto ipsec transform-set getran esp-aes esp-sha-hmac 
R1(config)#
R1(config)#
R1(config)#crypto map gemap 1 ip
R1(config)#crypto map gemap 1 ipsec-isakmp 
% NOTE: This new crypto map will remain disabled until a peer
        and a valid access list have been configured.
R1(config-crypto-map)#set peer 200.1.1.2
R1(config-crypto-map)#match address 100
R1(config-crypto-map)#set transform-set getran
R1(config-crypto-map)#exit
R1(config)#
R1(config)#
R1(config)#int f0/0 
R1(config-if)#crypto map gemap
*Jan  3 07:16:26.785: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON

 

可以通过命令查看当前连接未建立

VPP与EIOT关系 vp与vpp的区别_R3_04

 继续配置另一端的路由器,Giao!!!

crypto isakmp policy 2
encryption aes
group 2
hash sha
authentication pre-share 
exit
crypto isakmp key coderge address 100.1.1.1

acc 102 permit ip 172.16.1.0 0.0.0.255 192.168.1.0 0.0.0.255
crypto ipsec transform-set ge2tran esp-aes esp-sha-hmac 

crypto map ge2map 1 ipsec-isakmp 
set peer 100.1.1.1
match address 102
set transform-set ge2tran
exit

int f0/1
crypto map ge2map

 现在就ping的通了、(试验成功!!!)

VPP与EIOT关系 vp与vpp的区别_VPN_05

 最后在R1查看一下状态

VPP与EIOT关系 vp与vpp的区别_VPP与EIOT关系_06

R1(config)#do sh crypto ipsec sa

interface: FastEthernet0/0
    Crypto map tag: gemap, local addr 100.1.1.1

   protected vrf: (none)
   local  ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0)
   remote  ident (addr/mask/prot/port): (172.16.1.0/255.255.255.0/0/0)
   current_peer 200.1.1.2 port 500
    PERMIT, flags={origin_is_acl,}
   #pkts encaps: 271, #pkts encrypt: 271, #pkts digest: 0
   #pkts decaps: 240, #pkts decrypt: 240, #pkts verify: 0
   #pkts compressed: 0, #pkts decompressed: 0
   #pkts not compressed: 0, #pkts compr. failed: 0
   #pkts not decompressed: 0, #pkts decompress failed: 0
   #send errors 1, #recv errors 0

     local crypto endpt.: 100.1.1.1, remote crypto endpt.:200.1.1.2
     path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0
     current outbound spi: 0x720A552B(1913279787)

     inbound esp sas:
      spi: 0x10D639AC(282474924)
        transform: esp-aes esp-sha-hmac ,
        in use settings ={Tunnel, }
        conn id: 2004, flow_id: FPGA:1, crypto map: gemap
        sa timing: remaining key lifetime (k/sec): (4525504/3448)
        IV size: 16 bytes
        replay detection support: N
        Status: ACTIVE

     inbound ah sas:

     inbound pcp sas:

     outbound esp sas:
      spi: 0x720A552B(1913279787)
        transform: esp-aes esp-sha-hmac ,
        in use settings ={Tunnel, }
        conn id: 2005, flow_id: FPGA:1, crypto map: gemap
        sa timing: remaining key lifetime (k/sec): (4525504/3448)
        IV size: 16 bytes
        replay detection support: N
        Status: ACTIVE

     outbound ah sas:

     outbound pcp sas:

VPP与EIOT关系 vp与vpp的区别_VPP与EIOT关系_07