【理论基础】

需要封装和传输的数据报文,称之为净荷(Payload),净荷的协议类型为乘客协议(Passenger Protocol)。系统收到一个净荷后,首先使用封装协议(Encapsulation Protocol)对这个净荷进行GRE封装,即把乘客协议报文进行了“包装”,加上了一个GRE头部成为GRE报文;然后再把封装好的原始报文和GRE头部封装在IP报文中,这样就可完全由IP层负责此报文的前向转发(Forwarding)。通常把这个负责前向转发的IP协议称为传输协议(Delivery Protocol或者Transport Protocol)。

根据传输协议的不同,可以分为GRE over IPv4和GRE over IPv6两种隧道模式。

后面会从数据包角度分析整个封装过程。

【拓扑和软件】

本文实验采用的交换机是H3C模拟器,下载地址如下: http://forum.h3c.com/forum.php? mod=viewthread&tid=109740&highlight=H3C%E6%A8%A1%E6% 8B%9F%E5%99%A8 有兴趣的朋 友可以在论坛上去下载

【组网需求】

R1和R2之间假设通过Internet连接,两台路由器之间使用GRE建立隧道互联。

【配置脚本】

R1:

#

interface Serial0/6/0

link-protocol ppp

ip address 1.1.1.1 255.255.255.0

#

interface LoopBack0

ip address 172.16.1.1 255.255.255.255

#

interface Tunnel0

ip address 10.1.1.1 255.255.255.0

source 1.1.1.1

destination 2.2.2.2

#

ip route-static 0.0.0.0 0.0.0.0 Tunnel0

#

R2:

#

interface Serial0/6/0

link-protocol ppp

ip address 2.2.2.2 255.255.255.0

#

interface LoopBack0

ip address 172.16.2.1 255.255.255.255

interface Tunnel0

ip address 10.1.1.2 255.255.255.0

source 2.2.2.2

destination 1.1.1.1

#

ip route-static 0.0.0.0 0.0.0.0 Tunnel0

#

【验证】

<R2>dis interface tu

<R2>dis interface Tunnel 0

Tunnel0 current state: UP

Line protocol current state: UP

Description: Tunnel0 Interface

The Maximum Transmit Unit is 1476

Internet Address is 10.1.1.2/24 Primary

Encapsulation is TUNNEL, aggregation ID not set

Tunnel source 2.2.2.2, destination 1.1.1.1

Tunnel keepalive disable

Tunnel protocol/transport GRE/IP

GRE key disabled

Checksumming of GRE packets disabled

Last 300 seconds input:  0 bytes/sec, 0 packets/sec

Last 300 seconds output:  0 bytes/sec, 0 packets/sec

0 packets input,  0 bytes

0 input error

0 packets output,  0 bytes

0 output error

<R2>ping 172.16.1.1

PING 172.16.1.1: 56  data bytes, press CTRL_C to break

Reply from 172.16.1.1: bytes=56 Sequence=1 ttl=255 time=4 ms

Reply from 172.16.1.1: bytes=56 Sequence=2 ttl=255 time=25 ms

Reply from 172.16.1.1: bytes=56 Sequence=3 ttl=255 time=15 ms

Reply from 172.16.1.1: bytes=56 Sequence=4 ttl=255 time=26 ms

Reply from 172.16.1.1: bytes=56 Sequence=5 ttl=255 time=4 ms

--- 172.16.1.1 ping statistics ---

5 packet(s) transmitted

5 packet(s) received

0.00% packet loss

round-trip min/avg/max = 4/14/26 ms

<R2>dis interface Tunnel 0

Tunnel0 current state: UP

Line protocol current state: UP

Description: Tunnel0 Interface

The Maximum Transmit Unit is 1476

Internet Address is 10.1.1.2/24 Primary

Encapsulation is TUNNEL, aggregation ID not set

Tunnel source 2.2.2.2, destination 1.1.1.1

Tunnel keepalive disable

Tunnel protocol/transport GRE/IP

GRE key disabled

Checksumming of GRE packets disabled

Last 300 seconds input:  0 bytes/sec, 0 packets/sec

Last 300 seconds output:  0 bytes/sec, 0 packets/sec

5 packets input,  420 bytes

0 input error

5 packets output,  420 bytes

0 output error

<R2>

实验完成。

从172.168.2.1 ping 172.168.1.1

加封装过程

R1的接口loopback 0 收到172.168.2.1 ipv4协议报文后,首先交由IPV4协议处理;

ipv4协议检查报文头中的目的地址域来确定如何路由此包;

此时检查报文的目的地址要经过Tunnel才能到达,则设备将此报文发给相应的Tunnel接口;

Tunnel接口收到此报文后进行GRE封装,在封装IP报文头后,设备根据此IP包的目的地址及路由表对报文进行转发,从相应的网络接口S0/6/0发送出去。

解封装的过程

解封装过程和加封装的过程相反。

R2从Tunnel接口收到IP报文,检查目的地址;

如果发现目的地是本路由器,则Ro2掉此报文的IP报头,交给GRE协议处理(进行检验密钥、检查校验和及报文的序列号等);

GRE协议完成相应的处理后,剥掉GRE报头,再交由IPV4协议对此数据报进行后续的转发处理。

转载于:https://blog.51cto.com/hciewd/1143422

GRE over ipv4 详解相关推荐

  1. /proc/sys/net/ipv4详解(2)

    前文接http://itnihao.blog.51cto.com/1741976/908012 17) /proc/sys/net/ipv4/tcp_window_scaling 该文件表示设置tcp ...

  2. /proc/sys/net/ipv4 详解2

    17) /proc/sys/net/ipv4/tcp_window_scaling 该文件表示设置tcp/ip会话的滑动窗口大小是否可变.参数值为布尔值,为1时表示可变,为0时表示不可变.tcp/ip ...

  3. 计算机网络进阶 ---- GRE ---- 虚拟专用网络 ---- 详解

    GRE(Generic Routing Encapsulation - 通用路由封装): 属于虚拟的点到点网络类型: 是一种简单的 VPN(Virtual Private Network - 虚拟专用 ...

  4. 计算机网络——IPv4详解

    IPv4地址概述 在TCP/IP体系中,IP地址是一个最基本的概念,我们必须把它弄清楚 IPv4地址就是给因特网(Internet)上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的 ...

  5. OSI七层参考模型及其协议和各层设备详解

    引言 我们在学习计算机网络的时候,都会接触到网络的分层模型,那么,这个分层模型是怎么来的呢? 本次博客,张大帅比将写出自己对于这个网络分层模型的详细理解 分层模型的理解 a.为什么需要分层,分层的作用 ...

  6. IPv4头部结构详解

    IPv4头部结构详解 以下为书中原文摘录:

  7. 【IPv4】地址分类详解

    IPv4 地址分类详解 文章目录 IPv4 地址分类详解 一. IPv4 地址形式 二. IP 地址的分类 1. A 类 IP 2. B 类 IP 3. C 类 IP 4. D 类 IP 5. E 类 ...

  8. GRE配置详解和路由黑洞及检测机制

    GRE配置详解和路由黑洞及检测机制 基本路由配置先省略,直接上GRE配置: 合肥: int tunnel 0/0/1 //创建隧道 ip add 192.168.13.1 24 //给隧道口ip地址, ...

  9. 计算机网络IPv4地址详解——二进制和十进制关系

    计算机网络IPv4地址详解--二进制和十进制 一.二进制和十进制关 二.IPv4地址 一.二进制和十进制关 从上图(8位)我们可以看出一些特征: 二进制每进一位,十进制就乘二: 128之前的二进制数, ...

最新文章

  1. 激光雷达模块支持提高高速公路速度
  2. 在apache中使用 memcache 来作 session 存储
  3. HDU 4333 [SAM WRONG!!!]
  4. python爬虫获取的网页数据为什么要加[0-python爬虫解析页面数据的三种方式
  5. 使用Cython库包对python的py文件(源码)进行加密,把python的.py文件生成.so文件并调用
  6. Wannafly挑战赛29题解
  7. 新浪是如何分析处理32亿条实时日志的?
  8. Jsoup(二)-- Jsoup查找DOM元素
  9. vue 常用ui组件
  10. 软件测试学习之 ---------- MySQL的查询(重中之重)
  11. android 自定义组合键,自定义快捷操作 安卓虚拟Home键设置技巧
  12. 2020-08-22 每日一句
  13. mysql内部联结_关于mysql的内部联结
  14. c语言必背数据结构_严蔚敏数据结构(C语言版)知识点总结笔记课后答案
  15. 360浏览器在b站看直播html5,用360浏览器看Bilibili视频很卡怎么办_360浏览器看B站视频卡如何解决-win7之家...
  16. Windows/Windows Server 控制面板(Control Panel) 打开方式 通用
  17. nginx匹配规则详解
  18. 高德API实现地理逆编码
  19. (多元)偏正态分布、正态分布、对数正态分布的随机数的产生(R语言)
  20. 基于OpenCV DNN模块给黑白老照片上色(附Python/C++源码)

热门文章

  1. Invalid drive: d:\的解决办法
  2. 包装类型是什么?基本类型和包装类型有什么区别?
  3. 多线程线程数经验公式
  4. outlook转发邮件步骤_如何通过快速步骤和规则更好地在Outlook中管理电子邮件
  5. Linux 中的 head 命令详解及C/C++代码实现
  6. NLP 于搜索引擎的关系
  7. 2021通信安全员考试及(安全员)模拟考试单选题答案解析
  8. 三种创建线程方式之Callable接口
  9. 使用xpath时候出现AttributeError: ‘list‘ object has no attribute ‘strip‘解决方法
  10. 如何为笔记本更换升级内存联想Y450,Y460等均适用