vpn知识

GRE、MGRE

端口映射:端口映射是Nat地址转换的一种,就是将内网中的主机的一个端口映射到外网主机的一个端口,提供相应的服务。当用户访问外网IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。这不是将真IP地址直接转到内部提供www服务的主机。如果这样的话,有两个弊端,一是内部机器不安全,因为除了WWW之外,外部网络可以通过地址转换功能访问到这台机器的所有功能;二是当有多台机器需要提供这种服务时,必须有同样多的IP地址进行转换,从而达不到节省IP地址的目的。端口映射功能是将一台主机的假IP地址映射成一个真IP地址,当用户访问提供映射端口主机的某个端口时,服务器将请求转到内部提供这种特定服务的主机;利用端口映射功能还可以将一台真IP地址机器的多个端口映射成内部不同机器上的不同端口。端口映射功能还可以完成一些特定的代理功能,比如代理POPSMTP、 TELNET等协议。

VPN----虚拟专用网络

   依靠ISP(运营商网络)或者其他公用网络基础设施上构建专用的安全数据通信网络。---只不过这个专用网络是逻辑的而非物理的。(不能转发实际的数据。)

虚拟:用户不再需要拥有实际的长途数据电缆,而是使用公共网络资源建立自己的专用网络。

专用:可以定制最符合自身需求的网络。

核心技术:封装技术。

A不能通多B去访问C,因为在公有设备无法存在私有网段路由。

因为公网要有私有网络就会出现跟上图问题,要是两个私网网段相同,公网网络就会把数据包各发一部分跟私网网络,两个私网都能读取数据包。

GRE---通用路由封装(点到点)

红色线路为隧道线路,即虚拟线路。

GRE封装之后新的数据包格式:新IP|GRE|原IP。原IP是两个私网IP 即192.168.1.0/24,新IP是两个私网设备的边界设备出接口IP。即 12.0.0.1/24。

注:这不是加密技术。

配置:

   [r1]interface Tunnel 0/0/0 ---创建隧道接口

   [r1-Tunnel0/0/0]Ip address 192.168.3.1 24 ---配置隧道IP该ip地址必须为私网地址。

   [r3-Tunnel0/0/0]Ip address 192.168.3.2 24 ---配置r3

   此时我们会发现Tunnel接口协议层面为down的状态,因为接口默认通讯的基本协议是IP协议,但tunnel隧道通讯的协议必须是gre协议。

解决方法:

   [r1-Tunnel0/0/0]tunnel protocol gre ----定义封装方式

   [r1-Tunnel0/0/0]source 12.0.0.1  ---定义封装内容,该IP必须为真实的公网出口IP。

[r1-Tunnel0/0/0]destination 23.0.0.3/24   ----目的IP地址

易错:destination 23.0.0.3/24 ---目的IP地址

      description 23.0.0.3/24 ---描述信息

最后r1配置通过隧道到r3的路由:

   [r1]ip route-static 192.168.1.0 24 192.168.3.2  

r3配置跟r1相同,配置完后r1即可跟r3ping通。

GRE报文格式

乘客协议就是最开始构造的ip数据包。封装协议就是最开始GRE的封装头部,传输协议就是新构造的假的数据包。

GRE封装和解封装过程

  1. 设备从连接私网的接口接收到数据包后,检查报文头部中的目的IP地址字段,在路由表中查找出接口,如果发现出接口为隧道接口,则将报文发送给隧道模块(Tunnel模块)进行处理。
  2. 隧道模块接收到报文后,首先根据乘客的协议类型和当前GRE隧道配置的校验和参数,对报文进行GRE封装。(添加GRE头部
  3. 然后,设备给报文添加新的传输协议,该协议的源IP就是隧道源地址,目的IP为隧道目的地址。(不是隧道配的IP,而是定于的源和目的)
  4. 最后,设备根据新的条件的IP报文头部中的目的地址,在路由表中查找对应的出接口并发送报文。
  5. 接收端设备从连接公网的接口收到报文后,首先分析IP报文头部信息(不会解封装),如果发现协议字段类型值为47(GRE协议号),表示数据部分由GRE模块进行处理
  6. GRE模块去掉IP报文头部和GRE白文头部,并根据GRE报文头部的协议类型字段来判断乘客协议内容。从而交给对应模块处理。

Keepalive检测机制

   Keepalive若检测到r1和r3连通失败会干掉tunnel接口。Keepalive是定期发送keepalive报文,5秒一次,若3次未检测到回包,怎认定为连通失败。

   Keepalive包是被tunnel模块处理。为了稳定性思考,keepalive只需要在一端配置,另一端无条件配合。

配置:

   [r1-Tunnel0/0/0]keepalive p

   [r1-Tunnel0/0/0]keepalive period 2---发送间隔

   [r1-Tunnel0/0/0]keepalive period 2 retry-time 5---检测次数

MGRE(多个点到点连接)

近似于NBMA网络,只能进行单播,可以理解为P2MP(点到多点)。

由MGRE搭建的网络结构被称为Hub—spoke架构,中心到节点的一种架构方式。(此结构多用于政府网络)中心又被称为下一跳服务器(NHS)

一个中心,和多个节点,节点之间在刚开始的时候是不互相连接的。且中心节点IP地址必须固定。

配置; ub节点配置

[r1]interface Tunnel 0/0/0

[r1-Tunnel0/0/0] ip address 192.168.5.1 24

[r1-Tunnel0/0/0]tunnel-protocol gre p2mp  ---修改接口封装协议为GRE,且为点到多点模式。

[r1-Tunnel0/0/0]source 15.0.0.1

[r1-Tunnel0/0/0]nhrp network-id 100 ---配置区域id类似于ospf的区域号。(不强制配置)

Spoke节点配置

[r2]interface 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 ---以这个接口配置的IP为我的封装原IP

[r2-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 register --第一个IP是中心节点tunnel口的IP,第二个IP是物理接口的IP,register是注册。(向中心设备注册并介绍自己的信息)

[r1]display nhrp peer all  ---查看nhrp映射表,查看边缘节点的虚拟IP跟物理IP的对应关系。

配置好了之后让r2去ping r3 然后在r1的0/0/0接口抓包会发现r1对一个报文处理四次。 

此时如果有很多路由器向r1发送消息,r1的数据处理量

会非常大,会占用r1的大量性能。那如何解决的就需要

用到DSVPN技术。

NHRP---下一跳地址解析协议。

这个协议是典型的c/s架构,即客户端到服务端。

NHRP映射表有两种:

  1. 静态表项

由网络管理员手工配置,且构造出来的VPN隧道是静态隧道(spoke与hub之间)

  1. 动态表项

由NHRP协议动态生成。

Hub节点被动获取搭配spoke节点发来的注册信息。

各个spoke节点通过NHRP协议获取到对端的spoke节点的映射关系。

老化时间:7200s。

NHRP映射表建立过程

  建立spoke到hub直接的mgre隧道

  1. spoke向hub发送注册请求报文。
  2. hub向spoke发送注册应答报文。

Hub发送应答报文后才会生成NHRP映射表。

   分之间路由学习

      DSVPN支持两种分支见的路由学习方式:

  1. 分支间互相学习路由---非shortcut方式

每个分支需要学习到所有对端的路由数据,且吓一跳为分支本身。

  1. 分支路由汇聚到总部---shortcut方式

下一跳为hub设备

   建立spoke与spoke之间的mgre隧道

  

   非shortcut方式的建立:r2想访问r4,先查看自己的路由表,

发现要走tunnel接口,然后需要封装,所以再查看NHRP表,发现只有到r1的信息,所以只能封装到r1的Ip,把数据发给r1,r1收到数据后查看路由表和NHRP表并进行重新封装,再把消息分送给r4。

此时r2知道自己的NHRP表是有缺陷的,r2会给r1发送icmp报文的同时会给r1再发送一个NHRP报文(向r1请求r4的NHRP映射表),r1收到报文后,把icmp报文发送给r4同时会告诉r4,r1在要你的NHRP映射关系,r4同意后直接将NHRP表发给r1.

R4把消息发给r2之前会在自己生成一个local属性的NHRP表,再把这个表分送给r2。

shortcut方式的建立:r2给r4发消息,因为shortcut方式

下一跳为hub设备,所以r2会认为自己的封装没有问题,所以就不会再去要r4的信息。此时r1收到r2的icmp报文后会自行判断(需要r1开启重定向功能。),会去提醒r2,让r2提出申请要r4的NHRP表(r2要使能shortcut功能)。此后步骤跟非shortcut一致。

在shortcut方式下需要添加的配置

中心:[r1-Tunnel0/0/0]nhrp redirect ---开启重定向功能,默认情况下为未启动。

分支:[r2-Tunnel0/0/0]nhrp shortcut ---使能shortcut功能

非shortcut用于小型网络,shortcut用于大型网络

DSVPN ---动态智能VPN

MGRE环境+NHRP协议组成。

缺点:DSVPN不支持广播和组播。

   因为传统的VPN技术存在问题。---分部之间无法直接通讯(源分支无法获取目的分支的公网地址,也就无法建立VPN隧道),导致所有的的分支之间的通讯数据只能通过总部HUB设备进行中转。

   MGRE:是GRE发展的技术,近似NBMA的形式构建的网络。

   MGRE接口:是用于连接MGRE环境的接口。

   MGRE隧道: 两个接口建立起来的逻辑隧道,逻辑隧道之间包含着隧道源地址(GRE封装的报文源地址)、目的地址是通过NHRP获取的、接口IP

   此技术不支持keepalive检测。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值