• 二、GRE(Generic Routing Encapsulation,通用路由封装协议)


    2 GRE

    2.1 概念

    GRE(Generic Routing Encapsulation,通用路由封装协议),是一种传统的隧道协议技术。GRE对某些网络层协议的数据报进行封装,使这些被封装的数据报能够在IPv4网络中传输。

    2.2 GRE的封装/解封装

    GRE的封装可以细分为两步:
    (1)在私网原始报文的前面添加GRE头;
    (2)在GRE头前面添加新的IP头。
    在防火墙上,封装操作通过一个Tunnel(隧道)接口实现。报文进入Tunnel接口后,防火墙就会为报文封装GRE头和新IP头。防火墙对私网报文进行封装、解封及转发的全过程如图1所示。
    在这里插入图片描述
    图1 GRE报文转发过程
    PC_A通过GRE隧道访问PC_B时,FW_A和FW_B上的报文转发过程为:
    (1)PC_A访问PC_B的原始报文进行FW_A后,首先匹配路由表,根据匹配结果FW_A送到Tunnel接口进行GRE封装,增加GRE头、外层新IP头;
    (2)FW_A根据封装后报文的新IP头的目的地址再次查找路由表,假设FW_A查找到去往FW_B的下一跳地址为1.1.1.2。
    (3)FW_B接收报文后,首先判断报文是不是GRE报文(报文新IP头中的Protocol字段的值为47,即是GRE报文,否则不是),若是GRE报文,则报文送到Tunnel接口解封装,去掉IP头、GRE头,恢复为原始报文。
    (4)FW_B根据原始报文的目的地址再次查找路由表,根据匹配结果将报文发送至PC_B。

    2.3 GRE的安全机制

    恶意用户伪装成FW_A向FW_B发送GRE报文,则伪装者可访问FW_B的资源,为了避免这种情况的发生,GRE配置了以下安全机制。

    2.3.1 关键字验证

    防火墙只处理与自身建立连接GRE隧道的对端设备发送的GRE报文,GRE头中的“Key”字段用来保证这一功能的实现。只有两端设置的Key字段完全一直才能建立隧道。

    2.3.2校验和验证

    虽然GRE隧道两端防火墙实现了通信,但是报文在Internet传输途中可能被篡改,为保证报文传输的完整性,防火墙在封装GRE头时,将GRE头中的Checksum位的值置1,然后根据报文信息计算校验和,并将校验和填到Checksum字段中。当对端收到报文也会计算校验和并与报文中携带的校验和进行比较,一致则接受,否则丢弃。

    2.3.3 Keepalive

    当一端防火墙出现问题时,另一端发送的探测报文无法检测到对端状态,则会关闭隧道,这样避免了对端不可达而造成的数据黑洞。

    2.4 GRE的缺陷

    没有加密功能,通常配合IPSec使用,即GRE over IPSec技术

  • 相关阅读:
    【机器学习】什么是随机马尔科夫决策过程?
    Spring整合RabbitMQ——生产者
    web server apache tomcat11-15-proxy
    【JVM】聊聊常见的JVM排查工具
    Ubuntu Nginx 配置 SSL 证书
    02、利用第三方服务对目标进行被动信息收集防止被发现
    树与二叉树
    [附源码]JAVA毕业设计抗击新冠疫情专题宣传网站(系统+LW)
    MySQL模糊查询你只知道LIKE就OUT了
    IPv6与IPv4的区别 网信办等三部推进IPv6规模部署
  • 原文地址:https://blog.csdn.net/qq_42488216/article/details/126304949