GRE 协议 - 和 ISP 用的协议不一样怎么办
GRE 出现的背景:
随着网络(公司)规模的增大,越来越多的公司需要在跨区域之间建设自己的分公司。但随之也就出现了这样的问题,考虑这样一个场景。公司 A 在北京和上海间开设了两家公司,由于业务的需要,需要实现两家公司间的数据通信。公司考虑到未来的发展,在北京和上海启动了 IPV6 作为网络层的传输协议。但由于使用的 ISP (供应商,比如联通)在公网提供的是 IPV4 的网络层协议,这时想要通信该怎么办呢?
GRE 就是为了解决这个问题而出现的,专业些说解决的就是异种网络的传输问题。
GRE 的原理
GRE 采用了 Tunnel 技术,进行异种网络的传输。

乘客协议(Passenger):想要实现通信的协议,如例子中的 IPV6 协议
封装协议:将乘客协议封装起来的协议,按照一定的规则,进行封装和解封装。
传输协议:ISP 认识的协议,如 IPV4 协议。
将想要通信的协议封装成 GRE 协议,然后传输 GRE 协议,在对方收到 GRE 协议后,解封装,拿出想要通信的协议,然后解析。
- checksum:校验和,用于检测整个 GRE 数据包的准确性,包括图中黄色的部分。
- Protocol Type:使用的协议,比如 Ox0800 表示 IP 协议,公网传输的协议。
- Key:用于隧道的认证
GRE 的配置
这里假设 R2 为 ISP 提供的公网访问接口,R1 和 R3 使用的是公司内网地址。正常来说,内网地址是无法通过公网进行传递的。公网地址接受后会将其丢掉。
如果想实现通信,就可以使用 GRE 协议,目的仅仅是想让 ISP 将 R1 的数据包发送到 R3,就像在 R1 和 R3 中间建立起了一条直连的通道。

# STEP1: R1 config interface
# config default route for R2 because we need R1 to R3 to be reachable
Router(config)# ip route 0.0.0.0 0.0.0.0 12.1.1.2
# open tunnel interface
Router(config)#in tunnel 0
Router(config-if)#tunnel mode gre ip
Router(config-if)#ip 13.1.1.1 255.255.255.0
Router(config-if)#tunnel source 12.1.1.1
Router(config-if)#tunnel destination 23.1.1.2
Router#show running-config interface tunnel 0
# transfer network traffic to Tunnel0 Interface
Router(config)#ip route 192.168.2.0 255.255.255.0 Tunnel 0
# STEP2: R2 config interface
# STEP3: R3 config interface
# config default route for R2 because we need R3 to R1 to be reachable
Router(config)# ip route 0.0.0.0 0.0.0.0 23.1.1.1
# open tunnel interface
Router(config)#in tunnel 0
Router(config-if)#tunnel mode gre ip
Router(config-if)#ip 13.1.1.2 255.255.255.0
Router(config-if)#tunnel source 23.1.1.2
Router(config-if)#tunnel destination 12.1.1.1
Router#show running-config interface tunnel 0
# transfer network traffic to Tunnel0 Interface
Router(config)#ip route 192.168.1.0 255.255.255.0 Tunnel 0
这里从 Router1 的接口抓包:

Tunnel 接口配置 IP 的作用:
简化流量引入的配置过程。上面的配置通过静态路由将去往 192.168.2.0 的流量引入到 Tunnel 口中。
但加入存在多个网段,这样配置较为繁琐。
所以可以将 R1 和 R3 的接口运行动态路由协议,进而不用在去手动管理。
GRE 协议 - 和 ISP 用的协议不一样怎么办的更多相关文章
- 在网络7层协议中,如果想使用UDP协议达到TCP协议的效果,可以在哪层做文章?(QQ 为什么采用 UDP 协议,而不采用 TCP 协议实现?)
为了解决这题,可以具体看看下面这个讨论. 解灵运工程师 185 人赞同 某次架构师大会上那个58同城做即时通信的人说:原因是因为当时没有epoll这种可以支持成千上万tcp并发连接的技术,所以他们使用 ...
- 协议 - OSI七层网络协议模型
摘自:https://www.cnblogs.com/oneplace/p/5611094.html 互联网协议 本文全文转载阮一峰老师的两篇文章,自己做了一些添加内容 参考:互联网协议入门(一) 互 ...
- 【Win 10开发】协议-上篇:自定义应用协议
就像系统许多内置应用可以通过URI来启动(如ms-settings-bluetooth:可以打开蓝牙设置页),我们自己开发的应用程序,如果需要的话,可以为应用程序自定义一个协议.应用程序协议在安装时会 ...
- HTTP协议—— 简单认识TCP/IP协议
大学没读计算机专业,所以很多的专业知识都不知道.既然已经从事了IT这个行业,就势必要去了解下网络底层,虽然实际工作中这些东西用不到.高楼大厦,起于平川.不积跬步,无以至千里,不积小流,无以成江海.我现 ...
- ZeroMQ接口函数之 :zmq_tcp – 使用TCP协议的ØMQ网络单播协议
ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq-tcp zmq_tcp(7) ØMQ Manual - ØMQ/4.1.0 Name zmq_t ...
- 基于UDP协议模拟的一个TCP协议传输系统
TCP协议以可靠性出名,这其中包括三次握手建立连接,流控制和拥塞控制等技术.详细介绍如下: 1. TCP协议将需要发送的数据分割成数据块.数据块大小是通过MSS(maximum segment siz ...
- https协议了解,以及相关协议的解析
HTTPS简介 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版. ...
- 基于SSL协议的双向认证 - SSL协议 [1]
1 概要说明 在互联网通信方式中,目前用的最广泛的是HTTPS配合SSL和数字证书来保证传输和认证安全了. 2 详细介绍 2.1 HTTPS HTTPS全称:Hypertext Transf ...
- RTSP RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议
RTSP 编辑 RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学.网景和RealNetwo ...
随机推荐
- vue : 自定义脚手架提示
做项目做烦了就想找点乐子. 比如,我们可以自定义脚手架提示. webpack.dev.conf.js 54-78 行 module.exports = new Promise((resolve, ...
- 数字孪生,数据驱动下的北京 CBD 智能楼宇三维可视化系统
前言 楼宇作为建筑基础设施的主体,为人们提供着重要的生存空间.随着物联网.人工智能概念的兴起以及智慧城市如火如荼的开展,智能楼宇的重要性越发突显. 随着城市现代化建设的发展,建筑的智能化,特别是公用建 ...
- Shell基本语法---for语句
for语句 格式 ()for 变量名 in 值1 值2 值3 do 执行动作 done ()for 变量名 in `命令` do 执行动作 done ()for (( 条件 )) do 执行动作 do ...
- C++语法小记---异常处理
异常处理(C语言) 异常是对代码中可以预知的问题进行处理:代码中不可以预知的问题叫Bug: if () { ... } else { ... } setjmp和longjmp #include < ...
- OFDM通信系统的MATLAB仿真(2)
关于OFDM系统的MATLAB仿真实现的第二篇随笔,在第一篇中,我们讨论的是信号经过AWGN信道的情况,只用添加固定噪声功率的高斯白噪声就好了.但在实际无线信道中,信道干扰常常是加性噪声.多径衰落的结 ...
- .net core 自带分布式事务的微服务开源框架JMS
事务的统一性是微服务的一个重点问题,简洁有效的控制事务,更是程序员所需要的.JMS的诞生,就是为了更简单.更有效的控制事务. 先看一段调用微服务的代码: using (var ms = new JMS ...
- Monster Audio 使用教程 (六) 发送音轨的设置
因为最近有些用户,不太清楚怎么发送给混响音轨,所以这里我简单介绍一下. Monster Audio的音轨,主要分为两种类型: 1.白色推子:表示普通音轨 2.蓝色推子:表示“可接收发送音轨”,其他音轨 ...
- three.js 数学方法之Matrix3
今天郭先生来说一说three.js的三维矩阵,这块知识需要结合线性代数的一些知识,毕业时间有点长,线性代数的知识大部分都还给了老师.于是一起简单的复习了一下.所有的计算都是使用列优先顺序进行的.然而, ...
- Ansible 远程服务器连接 Internet 测试
Email 连接: lonnyliu@126.com 需求 在使用Ansible过程中不可避免需要了解远端服务器是否能够联通外网,以便进行在线安装软件或者其他.对于运维人员来说普遍的办法有 1. 登录 ...
- sql数据管理语句
一.数据管理 1.增加数据 INSERT INTO student VALUES(1,'张三','男',20); -- 插入所有字段.一定依次按顺序插入 -- 注意不能少或多字段值 如只需要插入部分字 ...
