当前位置: 首页 > news >正文

网络安全之GRE

GRE

GRE 是一种隧道协议,由 Cisco 开发,后来成为标准(RFC 2784,以及增强版 RFC 2890 增加了 Key 和 Sequence Number)。它的核心作用是:将一种网络协议的数据报封装在另一种网络协议中传输。最常见的是IP over IP,即把 IP 报文封装在另一个 IP 报文中。

通俗理解:就像把一个包裹(原始IP包)装进另一个包裹(新IP头),通过中间网络运送,到达目的地后再拆开。

为什么需要 GRE?

普通 IP 路由只能基于目的 IP 转发,无法做到:

  • 传递多播或广播报文(IPsec 只能传递单播)

  • 封装非 IP 协议(如 IPX、AppleTalk)

  • 在路由协议(如 OSPF、EIGRP)穿越 NAT 或非广播网络时保持邻居关系

而 GRE 隧道可以:

  • 把任意协议的数据包(包括组播、广播)封装在单播 IP 中,穿越 Internet。

  • 为路由协议(如 OSPF)提供逻辑直连链路,使两个远距离路由器成为“邻居”。

GRE是可以支持组播的,所以总部和分部可以运行OSPF,这就是GRE非常大的优点。


GRE的配置

现在这个Tunne;10/0/0这个接口是Down的(需要在这个隧道上配置地址)

这个接口要去处理IP报文的话,协议上是要UP的

将私网流量导入到隧道--路由的方式(静态、动态)

AR3上配置


GRE简单配置案例

场景假设

  • 两个办公室,分别使用私有 IP 网段:192.168.1.0/24(左边)和192.168.2.0/24(右边)。

  • 它们通过公网 Internet连接,公网 IP:左路由器 R1 为1.1.1.1,右路由器 R2 为2.2.2.2

  • 需求:让两个私网互通,并且希望在隧道上运行动态路由协议(如 OSPF),以便自动学习对方的路由。

  • 方案:在 R1 和 R2 之间建立GRE 隧道GRE over IPv4),然后把两个私网的路由指向隧道接口。

配置步骤

1. 在 R1 上创建隧道接口

interface Tunnel0 ip address 10.0.0.1 255.255.255.252 # 隧道两端的虚接口IP(同子网) tunnel source 1.1.1.1 # 本端公网IP tunnel destination 2.2.2.2 # 对端公网IP tunnel protocol gre # 指定为GRE隧道(默认可能就是gre)

2. 在 R2 上创建隧道接口

interface Tunnel0 ip address 10.0.0.2 255.255.255.252 tunnel source 2.2.2.2 tunnel destination 1.1.1.1 tunnel protocol gre

3. 添加路由(静态或动态)

静态路由:将对方私网指向隧道接口。

# R1上 ip route 192.168.2.0 255.255.255.0 Tunnel0 # R2上 ip route 192.168.1.0 255.255.255.0 Tunnel0

动态路由(OSPF):在 Tunnel0 上启用 OSPF,让隧道两端形成邻居,自动交换私网路由。


报文封装过程(核心知识点)

当 R1 内网192.168.1.10访问 R2 内网192.168.2.20时:

1. 原始 IP 包(假设 TCP 80):

| IP头 (s=192.168.1.10, d=192.168.2.20) | TCP数据 |

2.R1 查路由:发现去往192.168.2.0/24的出口是 Tunnel0,于是把该包交给隧道接口。

3. 隧道封装(GRE):

  • 先加上GRE 头(至少 4 字节,包含协议类型 0x0800 表示内层是 IPv4)。

  • 再加上新 IP 头(源 IP = 1.1.1.1,目的 IP = 2.2.2.2,协议号 =47表示 GRE)。

  • 新 IP 头 + GRE 头 + 原始 IP 包 = 完整的隧道报文。

| 新IP头 (s=1.1.1.1,d=2.2.2.2, proto=47) | GRE头 | 原始IP包 (s=192.168.1.10,d=192.168.2.20) |

4. 公网转发:该报文通过公网路由到达 R2(公网路由器只看外层 IP 头)。

5. R2 解封装:

  • 收到协议号=47 的报文,交给 GRE 处理模块。

  • 剥掉新 IP 头和 GRE 头,恢复原始 IP 包。

  • 查路由:目的192.168.2.20是本地直连,转发给对应内网主机。

关键点:GRE 本身不加密、不认证,所有数据在公网上是明文的。

验证命令

show interface Tunnel0 # 查看隧道接口状态,是否 up/up show ip route | include Tunnel0 # 查看通过隧道路由 show ip ospf neighbor # 若跑OSPF,查看邻居是否建立 ping 10.0.0.2 source 10.0.0.1 # 测试隧道直连IP
http://www.jsqmd.com/news/767866/

相关文章:

  • 基于 Simulink 的数字控制延时补偿与稳定性分析深度实战教程
  • Java调用海康SDK的NET_DVR_STDXMLConfig接口,手把手教你获取设备信息(附完整代码)
  • 迭代器模式是行为型设计模式的一种,其核心思想是提供一种方法顺序访问一个聚合对象中的各个元素
  • 开源三指机械爪OpenClaw:从Arduino控制到ROS集成的完整实现指南
  • 英语全局通用・元音弱读规律
  • 赛博“听诊器”:手把手教你用Windows命令给电脑做体检
  • Promise/A+ 02
  • 【数据库操作全指南:从表创建到高级查询】
  • LyricsX:让Mac音乐体验更完美的智能歌词同步神器 [特殊字符]
  • 服务器重启后 Docker Compose 容器如何自动恢复运行
  • 用立创EDA复刻蓝桥杯省赛真题电路:手把手搭建一个简易电压采集与显示系统(2022模拟题2)
  • DeepSeek-V4-pro 接入 Claude Code 教程
  • 三步轻松备份QQ空间说说历史记录:GetQzonehistory完整指南
  • Docker 27 医疗容器认证实操手册:从镜像签名、SBOM生成到FDA 21 CFR Part 11审计就绪,一步不踩坑
  • 软件评测师基础知识专项刷题:软件工程
  • C语言选择结构自用讲解
  • 03-二叉树——从递归遍历到非递归实现
  • 别再只盯着CAN了!手把手教你用CAN FD收发器搞定汽车ECU的8Mbps高速通信
  • 2026年质量好的江苏熔模铸造推荐品牌厂家 - 行业平台推荐
  • HTML 与 ISO-8859-1 编码
  • 2026新疆小包团定制旅行社推荐:纯玩无购物/口碑靠谱旅行社榜单排行 - 栗子测评
  • 专业干货:AI教材写作全攻略,低查重技巧与优质工具大揭秘!
  • AwesomeQt:最小的Qt6系列迷你版本教程发布!
  • 以物理定律约束智能算法,用镜像技术重构时空感知
  • Rust 错误处理实战:优雅应对异常情况
  • 【 LangChain v1.2 入门系列教程】【五】记忆管理,让 Agent 记住对话
  • Python热力学计算革命:iapws如何解决工程中的水蒸气物性计算难题
  • 贝叶斯语言模型SBP:小样本场景下的NLP新突破
  • 分布式锁从Redis到Redisson的演进
  • 2026年知名的鹤壁婚房装修/鹤壁旧房装修热选公司推荐 - 品牌宣传支持者