首页 > 其他分享 >GRE隧道和ipsec隧道

GRE隧道和ipsec隧道

时间:2024-04-23 16:16:03浏览次数:102  
标签:隧道 配置 接口 GRE IP地址 数据包 ipsec

GRE隧道

GRE隧道实现原理:

GRE(通用路由封装)隧道的实现原理是通过在封装数据包的头部添加额外的信息来创建一个虚拟的点对点连接,从而在不同网络之间传输数据。下面是GRE隧道的基本实现原理:

  1. 封装数据包: 当数据包从源主机发送时,GRE路由器会接收该数据包,并在原始数据包的头部添加GRE头部信息。这个GRE头部包含了必要的控制信息,如源和目的地址、GRE协议类型等。

  2. 传输数据包: 封装后的数据包在网络中传输,通常是通过公共互联网或专用网络。

  3. 解封数据包: 当数据包到达目标GRE路由器时,它会被解封,即从GRE头部中提取出原始数据包。

  4. 转发数据包: 解封后的原始数据包被转发到目标主机,就好像它们是直接从源主机发送到目标主机一样。

GRE隧道的实现原理相对简单,它提供了一种有效的方法来在不同网络之间传输数据,尤其适用于构建虚拟专用网络(VPN)或连接远程分支机构到中心网络的场景。


 

转自:GRE隧道是什么?他的作用是什么? - 知乎 (zhihu.com)

在学习GRE隧道之前,我们首先需要了解GRE隧道是什么,它的作用是什么。

通用路由封装(GRE) 是一种协议,用于将使用一个路由协议的数据包封装在另一协议的数据包中。“封装”是指将一个数据包包装在另一个数据包中,就像将一个盒子放在另一个盒子中一样。GRE 是在网络上建立直接点对点连接的一种方法,目的是简化单独网络之间的连接。它适用于各种网络层协议。

要了解其工作原理,请想像一下汽车和渡轮之间的区别。汽车在陆地上行驶,而渡轮在水上行驶。汽车通常不能在水上行驶,但是可以将汽车装载到渡轮上。

在这个类比当中,地形类型好比是支持某些路由协议的网络,而车辆则好比是数据包。GRE 是一种将一种类型的数据包装载到另一种类型的数据包中的方式,以便第一个数据包可以穿越它通常无法穿越的网络,就像一种类型的运输工具(汽车)被装载到到另一种类型的运输工具(渡轮)上,以便穿越原本无法行驶的地形。

例如,假设一家公司需要在位于两个不同办公室的局域网(LAN)之间建立连接。两个 LAN 都使用最新版本的 互联网协议 IPv6。但是,为了从一个办公网络到达另一个办公网络,流量必须通过一个由第三方管理的网络 — 该网络有些过时,仅支持较旧的 IPv4 协议。

借助 GRE,该公司可以将 IPv6 数据包封装在 IPv4 数据包中,然后便可通过此网络传输流量。回到那个类比,IPv6 数据包是汽车,IPv4 数据包是渡轮,而第三方网络则是水。

使用GRE还可以克服IGP协议的一些局限性。

例如,RIP路由协议是一种距离矢量路由协议,最大跳数为15。如果网络直径超过15,设备将无法通信。这种情况下,可以使用GRE技术在两个网络节点之间搭建隧道,隐藏它们之间的跳数,扩大网络的工作范围。

下面我们来做个小实验来体验一下GRE隧道。

 

 

 

图 1 GRE拓扑

对AR1做下面的配置:

# 创建Tunnel接口

interface Tunnel0/0/1

# 配置IP地址

ip address 20.1.12.1 255.255.255.0

# 配置Tunnel接口的隧道协议

tunnel-protocol gre

# 配置Tunnel源地址

source 10.1.12.1

# 指定Tunnel接口的目的IP地址

destination 10.1.12.2

# 配置一条静态路由指向Tunnel

ip route-static 192.168.2.0 24 Tunnel 0/0/1

AR2上的配置与上面类似,这里就不再列出了。

我们在PC1上pingPC2。

 

 

我们抓取AR1与AR2之间传递的GRE报文。

Frame 3: 98 bytes on wire (784 bits), 98 bytes captured (784 bits) on interface 0

Ethernet II, Src: HuaweiTe_53:13:29 (00:e0:fc:53:13:29), Dst: HuaweiTe_d3:05:4f (00:e0:fc:d3:05:4f)

Internet Protocol Version 4, Src: 10.1.12.2, Dst: 10.1.12.1

Generic Routing Encapsulation (IP)

Flags and Version: 0x0000

Protocol Type: IP (0x0800)

Internet Protocol Version 4, Src: 192.168.2.1, Dst: 192.168.1.1

Internet Control Message Protocol

可以看到外层的IP报文源目IP地址分别为10.1.12.2,10.1.12.1。内层源目IP地址则成了192.168.2.1,192.168.1.1。实现了在AR1与AR2之间的透明传输。

我们能够很清楚的看到从PC1到PC2传递的数据,这带来了安全隐患。我们可以对传递的数据进行加密处理。

而GRE本身并不支持加密,因而通过GRE隧道传输的流量是不加密的。我们将 IPSec技术与GRE相结合,先建立GRE隧道对报文进行GRE封装,然后再建立IPSec隧道对报文进行加密,这样就只可以保证报文传输的完整性和私密性。


华为参考:HiSecEngine USG6000F 产品文档 (huawei.com)

GRE

前提条件

配置GRE前,需要先完成以下基础网络配置。

  1. 完成接口的配置。
  2. 配置路由,保证建立GRE隧道设备之间的公网路由可达。
  3. 配置安全策略,允许网络间相互访问。

背景信息

图1 GRE组网图

本例中interface1和interface2分别代表10GE0/0/1和10GE0/0/2。


管理员可以参照图 GRE组网图,在建立GRE隧道的两台设备上完成下面的操作步骤。

操作步骤

  1. 配置GRE接口。
    1. 选择“网络 > GRE > GRE”。
    2. 单击“新建”。

       

       

    3. 配置GRE接口的各项参数。

       

      参数

      说明

      接口类型

      接口类型默认为Tunnel,不可修改。

      GRE接口(Tunnel接口)的名称由“接口类型”和“序号”组成,如“序号”填写1,列表中显示“接口名称”为Tunnel1。名称必须是唯一的,在同一台设备上不能有重复的名称。例如图 GRE组网图中的“Tunnel1”。

      序号

      指定Tunnel接口的序号。

      VPN实例

      选择Tunnel接口所属的VPN实例。

      安全区域

      选择GRE接口要加入的安全区域。

      IP地址/掩码

      GRE接口的IP地址及掩码。例如图 GRE组网图所示,DeviceA的GRE接口IP地址为“172.16.2.1”,建议隧道两端的GRE接口IP地址设置在同一网段。

      说明:

      此处,Web界面上提供了“[新建安全策略]”的链接,单击此链接可以直接打开“新建安全策略”的配置页面并针对所配置的待加密数据流快速创建对应的安全策略,放行加密流量。此外,在“新建安全策略”的配置页面中还支持“交换源和目的”功能,具体请参考安全策略

      隧道源IP配置方式

      此处选择隧道源IP的配置方式:

      • 源IP地址:直接输入IP地址作为GRE接口的源IP。
      • 接口:使用接口的IP地址作为隧道源IP。

      源IP地址

      输入隧道源接口的IP地址。例如图 GRE组网图中的“1.1.1.1”。

      本端的“源IP地址”需要与对端的“目的IP地址”一致。

      当“隧道源IP配置方式”选择的是“IP地址”时,界面显示此项。

      接口

      选择隧道源接口。例如图 GRE组网图中的10GE0/0/1。

      当“隧道源IP配置方式”选择的是“接口”时,界面显示此项。

      隧道目的IP配置方式

      GRE接口必须指定一个对端设备的公网IP地址作为GRE封装报文的目的地址。此处选择隧道目的IP的配置方式:

      • 目的IP地址:直接输入IP地址作为GRE接口的目的IP。

      目的IP地址

      输入隧道目的接口的IP地址。例如图 GRE组网图中的“5.5.5.5”。

      本端的“目的IP地址”需要与对端的“源IP地址”一致。

      当“隧道目的IP配置方式”为“IP地址”时,界面显示此项。

      说明:

      此处,Web界面上提供了“[新建安全策略]”的链接,单击此链接可以直接打开“新建安全策略”的配置页面并针对所配置的数据流快速创建对应的安全策略,放行相应流量。此外,在“新建安全策略”的配置页面中还支持“交换源和目的”,具体请参考安全策略

      多出口选项

      勾选“多出口选项”后,接口将作为智能选路成员接口。

      智能选路的相关内容请参见智能选路

      源进源出路由控制

      在NAT Server多出口场景下,设备根据路由表查找服务器响应报文的出接口,可能出现请求报文从ISP1进入,服务器响应报文从ISP2返回的情况。这种来回路径不一致的情况可能引起访问速度慢或业务中断等问题,此时可以在ISP1的入接口上启用源进源出功能。

      当设备转发响应报文时,直接使用入接口作为响应报文的出接口,而不是通过查找路由表来确定出接口。

      说明:

      在配置了等价路由的情况下,缺省开启了源进源出功能无需配置。非等价路由的情况下需要配置源进源出功能。

      高级

      隧道校验

      启用GRE隧道校验和功能。如果本端配置了校验和而对端没有配置,则本端将不对接收到的报文进行校验,但对本端发送的报文计算校验和;如果本端没有配置校验和而对端配置,则本端对从对端发来的报文进行校验和检查,但对本端发送的报文不计算校验和。

      隧道识别关键字

      启用隧道识别关键字功能。只有隧道两端设置的识别关键字完全一致时才能通过验证,否则将报文丢弃。

      Keepalive功能

      开启Keepalive功能以后,如果对端不可达,本端VPN就不会选择该GRE隧道,避免造成数据丢失。

      发送周期

      发送keepalive报文的周期。

      发送次数

      如果设备发送的keepalive报文数超过该处的设定值时,还没有收到keepalive的回复报文,就认为对端不可达。

      MTU

      接口的最大传输单元。修改接口的MTU后,需要重启接口以保证配置的MTU生效。

      该参数只在“模式”为“路由”时需要配置。

       

    4. 单击“确定”。
  2. 配置GRE接口的路由,以静态路由为例。

     

    1. 选择“网络 > 路由 > 静态路由”。

    2. 单击“新建”。

    3. 配置静态路由的各项参数。

      参数

      说明

      目的地址/掩码

      目的地址是未进行GRE封装的原始报文的目的地址。例如图 GRE组网图中的“10.1.2.0/24”。

      出接口

      在下拉列表中选择GRE接口作为出接口。

    4. 单击“确定”。
 

ipsec隧道

配置点到点IPsec

HiSecEngine USG6000F 产品文档 (huawei.com)

配置点到多点IPsec

HiSecEngine USG6000F 产品文档 (huawei.com)      

标签:隧道,配置,接口,GRE,IP地址,数据包,ipsec
From: https://www.cnblogs.com/yeziwinone/p/18153062

相关文章

  • 22.Postgresql的checkpoint功能
    PostgreSQL中的checkpoint是数据库管理系统(DBMS)中的一项重要机制,用于确保数据的一致性、可恢复性和性能管理。以下是关于PostgreSQLcheckpoint的详细解释:checkpoint的定义与作用定义:Checkpoint是一个在WAL(Write-AheadLog)序列中的点,此时所有数据文件已更新,反映了到该点为止......
  • grep 的使用场景
    场景1:grep中如何同时搜索A或者B?在使用grep命令进行文本搜索时,如果你想要搜索包含"A"或者"B"的行,可以使用以下两种方法:使用-e选项来为每个搜索模式指定一个表达式:grep-eA-eBfilename这里-eA表示搜索包含"A"的行,-eB表示搜索包含"B"的行。使用单个搜索模式并利用正......
  • postgresql重置序列和自增主键
    1.问题背景数据表中插入了几条测试数据,后又手动删除,导致后面插入数据的时候报主键冲突:ERROR:duplicatekeyvalueviolatesuniqueconstraint"tableName_pkey"DETAIL:Key(id)=(1)alreadyexists.12即使采用INSERTIGNORE的方式或者REPLACEINTO的方式还是报错,所以就想......
  • 根据Nginx Ingress指标对指定后端进行HPA
    本文分享自华为云社区《根据NginxIngress指标对指定后端进行HPA》,作者:可以交个朋友。背景生产场景下,NginxIngress的流量会通过域名和path路径最终转发至不同的应用,而有时候cpu和内存并不是nginx的性能瓶颈,此时可以基于nginx_ingress_controller_requests指标,为其对应的应用配......
  • Datax助力轻松迁移SQLServer数据至GreatSQL
    1.环境说明1.1源端SQLSserver版本IP端口MicrosoftSQLServer2017192.168.140.16014331.2目标端GreatSQL版本IP端口GreatSQL-8.0.32192.168.139.8633082.安装环境2.1安装SQLServer环境环境说明:借助Docker使用镜像启动数据库2.1.1安装docke......
  • ingress-nginx-controller在k8s中的部署和使用
    点击查看代码下载deploy文件https://github.com/kubernetes/ingress-nginx/blob/controller-v1.9.6/deploy/static/provider/cloud/deploy.yaml修改deploy文件:有如下几处可按需修改:DaemonSet:修改Deployment为DaemonSet,移除strategy字段;hostNetwork:使用宿主机的网络;......
  • System.AggregateException: 发生一个或多个错误.....
    System.AggregateException:发生一个或多个错误。--->Microsoft.WebTools.Shared.Exceptions.WebToolsException:生成失败。检查输出窗口了解更多详细信息。---内部异常堆栈跟踪的结尾------>(内部异常#0)Microsoft.WebTools.Shared.Exceptions.WebToolsException:生......
  • PostgreSQL源码编译安装指南
    一、版本说明centos7.9postgresql12.2二、配置系统基本环境#1.创建postgres用户groupaddpostgresuseradd-gpostgrespostgresecho"666666"|passwdpostgres--stdin#2.配置用户环境变量su-postgrescat>>~/.bash_profile<<EOFexportPGPORT=1922expor......
  • postgresql数据定时转存mongodb方案
    案例背景很多事件记录在最初一段时间读写比较频繁,存储在postgresql比较合适,后期数据量变大,且仅作为历史记录查询,更适合存储在mongodb中,可能需要定期将postgresql中的数据转存到mongodb。案例分析postgresql数据定时转存mongodb,可以采用jdbc方式将postgresql读入内存,对每条......
  • LightDB兼容扫描 - 事前SQL兼容迁移评估工具24.1支持MySQL --> TDSQL-PostgreSQL兼容
    兼容扫描工具下载地址:事前SQL兼容迁移评估工具使用说明:LightDB-事前SQL兼容迁移评估工具使用手册本次24.1版本新增了对MySQL迁移到TDSQL-pg的兼容性扫描。工具的具体使用方法请阅读使用说明文档,针对本次更新,涉及配置项targetDataBase改为MySQL-to-TDSQL-PostgreSQL。以下是......