[NetWork] GRE VPN

2022-11-30 16:27:33 浏览数 (2)

GRE VPN 概述

> GRE

GRE(Generic Routing Encapsulation) 在任意一种网络协议上传送任意一种其他网络协议的封装方法 我们先本质上还是同种协议封装 也是就IP over IP

> GRE VPN

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

GRE的封装格式

协议B头: 也就是我们的<code>载荷协议</code>封装我们的内网源IP目的IP GRE头: 就是我们的<code>封装协议</code>告诉对方我放用的什么协议 协议A头: 也就是我们的<code>承载协议</code> 里面包含了我们外网的源IP目的IP 链路层头: 就是我们二层的源MAC和目的MAC

IP over IP 的GRE封装格式

GRE的IP协议号为47 其中 载荷协议0x0800就是我们的IP层头部 也就是说 公网IP头使用协议号47来标识GRE头部 而 GRP头部使用0x0800来标识我们内网IP头部

> IP头部格式(回顾)

其中Protocol字段就是将该数据包解封装后交给哪个协议处理 在GRP的封装格式中此项被协议号47代替

> 解封装

GRE隧道处理的流程

【1】 隧道起点路由查找 查找私网路由,数据包发往Tunnel口 【2】 开始封装 数据包在Tunnel口进行封装公网IP头部 【3】 承载协议路由转发 根据公网IP头部查找路由表,并转发 【4】 中途转发 就是数据包在公网转发传输 【5】 解封装 查到公网路由后,由公网路由进行解封装,解除公网封装头部,查看GRE封装部分 【6】 隧道终点路由查找 最后查找私网路由,并转发给目的主机

Tunnel多隧道冗余

为了提升可靠性,可以组建多个Tunnel隧道 只需要开区KeepAlive来检测隧道运行状态即可

GRE VPN的优点

  • 支持多种协议
  • 支持组播,因此可以在隧道中运行路由协议
  • 配置简单,部署容易

GRE VPN的缺点

  • 点到点隧道,多站点配置复杂(和静态路由一样)
  • 金泰配置隧道参数,配置复杂(缺乏灵活性,要手动指定源公网地址、目的公网地址)
  • 缺乏安全性(不对数据包做加密等处理,且报文在公网上传播,因此基本上都是搭配IPsec)
  • 不能隔离地址空间(不能解决私网地址冲突的问题)

相关配置命令

代码语言:javascript复制
interface tunnel [id] mode gre
/*&#x521B;&#x5EFA;GRE&#x96A7;&#x9053;&#x53E3;*/
source [ip-address / interface-name]
/*&#x914D;&#x7F6E;&#x7528;&#x4E8E;&#x96A7;&#x9053;&#x5C01;&#x88C5;&#x7684;&#x6E90;&#x5730;&#x5740;&#x6216;&#x8005;&#x6E90;&#x63A5;&#x53E3;*/
destination [ip-address / interface-name]
/*&#x914D;&#x7F6E;&#x7528;&#x4E8E;&#x96A7;&#x9053;&#x5C01;&#x88C5;&#x7684;&#x76EE;&#x7684;&#x5730;&#x5740;&#x6216;&#x8005;&#x76EE;&#x7684;&#x63A5;&#x53E3;*/
keepalive [interval times]
/*&#x914D;&#x7F6E;&#x96A7;&#x9053;&#x4FDD;&#x6D3B;&#xFF0C;&#x6765;&#x68C0;&#x6D4B;&#x96A7;&#x9053;&#x5B58;&#x6D3B;&#x72B6;&#x6001;*/

1 人点赞