加载中...

GRE协议

一、GRE(通用路由封装协议)协议简介

1.1 GRE协议特点

​ 通用路由封装协议GRE(Generic Routing Encapsulation)可以对某些网络层协议(如IPX、IPv6、AppleTalk等)的数据报文进行封装,是一种隧道协议,由 Cisco 提出,用于在不同网络间传输数据包。

​ GRE 隧道通过在封装数据包的基础上增加一个新的 GRE 头部和一个新的 IP 头部,使得原始数据包可以通过不同网络传输。GRE 协议被广泛应用于 VPN(虚拟专用网络)和 MPLS(多协议标签交换)网络中。

二、GRE(通用路由封装协议)协议结构

2.1 GRE报文格式

img

image-20250317055708619

RE头字段 字段解释
C 校验和验证位。
K 关键字位。
Recursion 表示GRE报文被封装的层数。完成一次GRE封装后将该字段加1。如果封装层数大于3,则丢弃该报文。
Flags 预留字段。当前必须置为0。
Version 版本字段。必须置为0。
Protocol Type 标识乘客协议的协议类型。常见的乘客协议为IPv4协议,协议代码为0800。
Checksum 对GRE头及其负载的校验和字段。
Key 关键字字段,隧道接收端用于对收到的报文进行验证

三、GRE(通用路由封装协议)协议机制

[!NOTE]

GRE是单向的隧道

3.1 GRE封装机制

image-20250317060057340

  1. 隧道建立
    • 两端路由器配置隧道接口,指定隧道源IP和目的IP(需路由可达)。
  2. 数据封装
    • 原始数据包进入隧道接口(路由表查询到隧道接口)后,添加GRE头和乘客协议头。
  3. 数据传输
    • 封装后的报文通过公网传输到对端隧道接口。
  4. 解封装
    • 对端路由器剥离外层IP头和GRE头,还原原始数据包并转发。

3.2 GRE的Tunnel路由

对于GRE隧道的接口,需要指定其协议类型为GRE,同时配置源地址或源接口、目的地址。

ip route-static 10.2.1.0 255.255.255.0 tunnel1 #流量引入到隧道

#
interface Tunnel0/0/0
ip address 10.1.12.1 255.255.255.0 
tunnel-protocol gre

# 在源端设备和目的端设备上都必须存在经过Tunnel转发的路由
source 1.1.1.1 
destination 1.1.1.2
posted @ 2025-03-18 20:15  江寒雨  阅读(395)  评论(0)    收藏  举报