手机访问pc网站自动跳转手机端网站代码,修改wordpress 2m,兰州市城乡建设局网官网站,oa系统是什么系统昨天我们学习了VPN的基本概念#xff0c;虚拟专用网络在当前企业总部与分支间广泛使用。常用的划分方法为基于协议层次有GRE VPN、IPSec VPN、L2TP VPN、PPTP VPN、SSL VPN等。其实我有考虑该怎么讲#xff0c;因为在IP阶段好像虚拟专用网络讲得不深#xff0c;在IE的阶段会… 昨天我们学习了VPN的基本概念虚拟专用网络在当前企业总部与分支间广泛使用。常用的划分方法为基于协议层次有GRE VPN、IPSec VPN、L2TP VPN、PPTP VPN、SSL VPN等。其实我有考虑该怎么讲因为在IP阶段好像虚拟专用网络讲得不深在IE的阶段会更加深入后面想想还是算了该怎样就怎样吧。 一、GRE通用路由封装协议概述 由于Internet的发展Internet网有了足够的带宽和覆盖通过Internet建立分支-总部内网通信的可行性越来越高GREGeneric Routing Encapsulation通用路由封装协议 就是在这种背景下被提出的。通过GRE隧道分支和总部之间可以基于Internet建立企业网络。 GRE产生背景 通用路由封装协议General Routing EncapsulationGRE是一种三层VPN封装技术。GRE可以对某些网络层协议如IPX、IPv4、IPv6等的报文进行封装使封装后的报文能够在另一种网络中如IPv4传输从而解决了跨越异种网络的报文传输问题。 GRE封装IPV4TO6 GRE隧道的两端是Tunnel接口分别对数据报文进行封装及解封装。负责发送封装后的报文的物理接口叫做隧道源接口对端接收此报文的物理接口叫做隧道目的接口。 总部与分支封装 GRE技术本质上是一种隧道技术。隧道技术类似于一座桥可以在底层网络比如Internet之上构建转发通道用户可以自行构建隧道网络不需要底层网络的管理者比如ISP介入。隧道技术的方案很多常见的隧道技术有MPLSGREL2TPVXLAN等隧道基本原理如下 GRE本质为隧道 GRE隧道能够承载IPv4/IPv6的单播、组播、广播报文GRE报文格式如下 GRE报文格式 C校验和验证位。如果该位置1表示GRE头插入了校验和Checksum字段该位为0表示GRE头不包含校验和字段。 K关键字位。如果该位置1表示GRE头插入了关键字Key字段该位为0表示GRE头不包含关键字字段。 Recursion用来表示GRE报文被封装的层数。完成一次GRE封装后将该字段加1。如果封装层数大于3则丢弃该报文。该字段的作用是防止报文被无限次的封装。 Flags预留字段。当前必须设为0。 Version版本字段必须置为0。Version为1是使用在相关标准的PPTP中。 Protocol Type乘客协议的协议类型。 Checksum对GRE头及其负载的校验和字段。- Key关键字字段隧道接收端用于对收到的报文进行验证。 因为目前实现的GRE头不包含源路由字段所以Bit 1、Bit 3和Bit 4都置为0。 简单说GRE就是利用隧道技术在两端建立tunnel接口通过封装IPV4、IPV6报文使得总部到分支的私有网络报文传输到对端其中涉及到报文的封装与接封装隧道模式等。 二、GRE工作原理 2.1 工作原理 GRE构成要素分为3个部分乘客协议、封装协议和运输协议。 乘客协议是指用户在传输数据时所使用的原始网络协议(IPv4、IPX、IPv6等)。 封装协议的作用就是用来“包装”乘客协议对应的报文使原始报文能够在新的网络中传输如GRE。 运输协议是指被封装以后的报文在新网络中传输时所使用的网络协议如IP协议。 GRE封装示例 上图中报文的封装过程 RTA连接企业分部的接口收到IP数据报文后首先交由IP协议处理。 IP协议检查报文头中目的地址来确定如何转发此报文。若报文的目的地址要经过GRE隧道才能到达则IP协议将此报文发给相应的Tunnel接口。 Tunnel接口收到此报文后为其封装GRE报文头然后再交由IP协议处理。 IP协议再为GRE报文封装新的IP报文头源地址为隧道源接口IP目的地址为隧道目的接口IP然后根据封装后的IP报文的目的地址及路由表对报文进行转发从相应的连接Internet的物理接口隧道源接口发送出去。 解封装过程与封装过程相反具体如下 RTB从连接Internet的物理接口收到IP报文后检查其目的地址。如果目的地址是RTB且IP报文头中的协议号为47表示封装的报文为GRE报文则RTB剥掉此报文的IP报文头交给GRE协议处理。 GRE协议进行校验和关键字识别后剥掉GRE报文头再交由IP协议处理。 IP协议将此数据报文转发到企业总部。 2.2 GRE Keepalive检测 由于GRE协议并不具备检测链路状态的功能如果对端接口不可达隧道并不能及时关闭该Tunnel连接这样会造成源端会不断的向对端转发数据而对端却因隧道不通接收不到报文由此就会形成流量中断。 GRE的Keepalive检测功能可以检测隧道状态即检测隧道对端是否可达。 Keepalive超时时间发送周期默认5 s*重试次数默认3次 GRE Keepalive检测 前面我们讲过需要创建一个tunnel隧道接口用于GRE这个接口类似于环回接口lookback接口没有检测功能不会主动关闭接口因此需要一个机制来实现当GRE两端连接失败时断开GRE隧道。 Keepalive检测功能的实现过程如下 当GRE隧道的源端使能Keepalive检测功能后就创建一个定时器周期地发送Keepalive探测报文同时通过计数器进行不可达计数。每发送一个探测报文不可达计数加1。 对端每收到一个探测报文就给源端发送一个回应报文。 如果源端的计数器值未达到预先设置的值就收到回应报文就表明对端可达。如果源端的计数器值到达预先设置的值——重试次数Retry Times时还没收到回送报文就认为对端不可达。此时源端将关闭隧道连接。但是源端口仍会继续发送Keepalive报文若对端Up则源端口也会Up建立隧道链接。 2.3 GRE隧道安全威胁 GRE隧道的主要作用是将数据在分支-总部之间传递数据并不加密有被篡改的风险。GRE隧道建立也有一定风险通过伪造IP地址可以使得非法设备与合法设备之间建立GRE隧道。 GRE隧道安全威胁 2.3.1 GRE数据校验和验证 校验和验证是指对封装的报文进行端到端校验。 若GRE报文头中的C位标识位置1则校验和有效。发送方将根据GRE头及Payload信息计算校验和并将包含校验和的报文发送给对端。接收方对接收到的报文计算校验和并与报文中的校验和比较如果一致则对报文进一步处理否则丢弃。 GRE数据校验和验证 数据校验是为了确保数据是完整的没有经过篡改的需要开启数据校验将C置位1。 2.3.2 GRE识别关键字 为了防止非法路由器连接GRE或者伪造IP进行连接可以开启密码认证。 识别关键字Key验证是指对Tunnel接口进行校验。通过这种弱安全机制可以防止错误识别、接收其它地方来的报文。若GRE报文头中的K位为1则在GRE头中插入一个四字节长关键字字段收发双方将进行识别关键字的验证。 GRE识别关键字 通过密码来验证GRE对端的建立置位K然后设置一个Key进行验证。 虽然通过上面的计算可以实现合法建立GRE隧道以及数据的完整性但是因为GRE本身没有进行加密因此GRE报文能够清晰地查看到报文的信息存在不安全性。因此一般情况下GRE会结合其它安全机制来搭配使用。 GRE的安全性 总结GRE本质是一种隧道技术利用隧道在分支和总部间建立隧道接口结合数据验证和key对数据完整性、合法性进行校验可以建立起一个虚拟的Tunnel通道GRE可以用于传输单播、组播、广播报文具有其优点但是也存在一些安全性的缺陷简单说只要有部署了Internet能够就有可能使用GRE实现分支互联。 本文由 mdnice 多平台发布