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 ...
随机推荐
- js中实现继承的方法
目录 借用构造函数 组合继承 原型式继承 寄生式继承 寄生组合式继承 借用构造函数 这种技术的基本思想很简单,就是在子类型构造函数的内部调用超类型的构造函数.另外,函数只不过是在特定环境中执行代码的对 ...
- nginx的基础学习+实战
文章目录 一.前言 二.反向代理 三.负载均衡 四.动静分离 参考视频:尚硅谷Nginx教程(2019发布) 参考链接:Windows下Nginx负载均衡实现 一.前言 Nginx (engine x ...
- Jenkins链接Kubernetes集群
Jenkins CI/CD介绍 持续构建与发布是我们工作中必不可少的一个步骤,目前大多公司都采用Jenkins集群来搭建符合需求的CI/CD流程,然而传统的Jenkins Slave一主多从方式会存在 ...
- accpet和connect设置超时
三次握手 TCP连接建立的开始是三次握手,通过三次交互确认连接成功,在客户端调用connect时,客户端发送sync消息给服务端,服务端收到sync消息后,返回一个ack+sync,并等待ack,客户 ...
- APP自动化 -- MobileBy
一.BobileBy源码 selenium中有 By appium就有MobileBy. 二.MobileBy示例 MobileBy就是继承的By,所以,语法基本是一样的.
- java基础(六)--常用转义字符
1.换行:"\n"
- Java线程-- 线程池
1.线程池概念 线程池,其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源. 为什么要使用线程池? 在java中,如果每个请求到达就创 ...
- 解惑,什么是data-attribute ?
在接触 Web前端开发的一段时间,有时会去看Google或者百度的源代码,有某些地方定义了 data-key ,这种语法 但是如果你直接去 Google data-key 或 data-item 可能 ...
- P1359租用游艇(dp+dfs)
好久真的是好久没有做dp的问题了(QWQ)(我有学过这玩意???) 诶,人生呐! 今天来一个动归- 顺便可以回顾一下dfs. 这个题我觉得审题也非常重要 小可爱dp: #include <bit ...
- ./a.o 权限不够
其实如果是-c -o 分开写的,那个不会出现的 如果是一起写的 请加上 chmod +x ./a.o
