GRE

GRE(Generic Routing Encapsulation)概述

GRE是一种最传统的隧道协议,其根本功能就是要实现隧道功能,通过隧道连接的两个远程网络就如同直连,GRE在两个远程网络之间模拟出直连链路,从而使网络间达到直连的效果,为此,GRE需要完成多次封装,总共有3次,换句话说,就是在GRE隧道中传输的数据包都有3个包头,因为我们只谈IP协议,所以GRE中的IP数据包是一层套一层,总共有3个IP地址。GRE在实现隧道时,需要创建虚拟直连链路,GRE实现的虚拟直连链路可以认为是隧道,隧道是模拟链路,所以隧道两端也有IP地址,但隧道需要在公网中找到起点和终点,所以隧道的源和终点分别都以公网IP地址结尾,该链路是通过GRE协议来完成的,隧道传递数据包的过程分为3步:

1.接收原始IP数据包当作乘客协议,原始IP数据包包头的IP地址为私有IP地址。

2.将原始IP数据包封装进GRE协议,GRE协议称为封装协议(Encapsulation Protocol),封装的包头IP地址为虚拟直连链路两端的IP地址。

3.将整个GRE数据包当作数据,在外层封装公网IP包头,也就是隧道的起源和终点,从而路由到隧道终点。

GRE隧道中传输的数据包格式如下:

注:

★其中公网IP包头部分也称为传输协议(Transport Protocol)

★GRE会在原始IP数据包之外,额外多封装24字节或28字节,具体视GRE模式而定。 以下图为例,解释GRE传输数据过程:

GRE要在远程路由器之间创建虚拟直连链路,也就是隧道(Tunnel),如果没有该隧道,GRE不能完成隧道功能,隧道是GRE最基本的功能,也是GRE所有功能;上图环境中,当上海分公司R2将数据包IP地址封装为192.168.1.4发往北京分公司的R4时,GRE操作过程如下:

1.假设R1与R3的GRE虚拟直连链路(隧道)已经建立,隧道链路两端的地址分别为1.1.1.1和2.2.2.2,隧道两端的起源和终点分别为100.1.1.1和200.1.1.1。

2.R1收到目标IP为192.168.1.4的数据包后,将原始数据包当作乘客数据包封装进GRE协议中,并且添加GRE包头,包头中源IP为隧道本端地址1.1.1.1,包头中目标IP为隧道对端地址1.1.1.2,从而完成GRE数据包的封装。 3.在封装了GRE隧道地址的数据包外面封装GRE隧道起源IP地址,该IP地址为公网地址,即源IP为100.1.1.1,目标IP为隧道终点200.1.1.1,最后将数据包发出去。

数据包被发到Internet之后,所有路由器只根据数据包最外面的公网IP进行转发,也就是只根据公网目标IP地址200.1.1.1来转发,直到数据包到达公网IP的真正目的地后,即到达R3(IP:200.1.1.1)之后,公网IP包头才会被剥开,当R3剥开数据包的公网IP包头后,发现GRE包头,发现目标IP为1.1.1.2,从而得知自己就是GRE隧道的终点,所以继续将GRE包头剥开,最后发现目标IP地址为192.168.1.4,然后将数据包发往192.168.1.4(路由器R4)。 通过以上GRE过程,上海分公司R2直接通过私有IP地址192.168.1.4,最终成功与北京分公司R4通信。


GRE VPN配置实例

   示例1:

某个企业的2个站点,都接入到Internet,现在希望2个站点能够互通

GRE(Generic

Routing Encapsulation)

    GRE能够将一种三层协议的报文封装到另一种三层协议的报文中进行传输 

    GRE是一种隧道能力极强的技术,但它的安全性较差,没有对数据做加密(IPSec则可以加密)原理是将L3层部分当成数据部分,在外层加上一层ip头,数据到达PE1的隧道源端时,查找的目地IP(地址是PE2的隧道目地IP地址),然后就会走tunel0发送给PE2,PE2收到后拆掉tunel的头部后查看里面的L3层ip头,发现目的地址是自己连接的客户网络site2,就会将数据包交给客户网络site2,从而实现site之间的通信。

R1为PE1,R2为P,R3为PE2,两端PC分别模拟客户的两个site,要求进行GREvpn通信

隧道源端配置:

PE1(config)#intface f0/0

PE1(config-if)#ip add 192.168.1.1 255.255.255.0

PE1(config)#intface f0/1

PE1(config-if)#ip add 12.1.1.1 255.255.255.0

router eigrp 1              ISP内部IGP使用eigrp

network 12.0.0.0

no auto-summary

PE1(config)#int tunnel 0

PE1(config-if)#tunnel source 12.1.1.1

PE1(config-if)#tunnel destination 23.1.1.2

PE1(config-if)#ip add 10.0.0.1 255.255.255.0     用于tunnel隧道接口之间通信,必须在一个网段

PE1(config)#ip route 172.16.1.0 255.255.255.0 tunnel 0   告诉去往172.16.1.0/24的vpn数据包下一跳出接口走隧道

隧道目地端配置:

PE2(config)#intface f0/1

PE2(config-if)#ip add 172.16.1.1 255.255.255.0

PE2(config)#int tunnel 0

PE2(config-if)#tunnel source 23.1.1.2

PE2(config-if)#tunnel destination 12.1.1.1

PE2(config-if)#ip add 10.0.0.2 255.255.255.0

PE2(config)#ip route 192.168.1.0 255.255.255.0 tunnel 0

R1#show ip route

Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default, U - per-user static route

o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

23.0.0.0/24 is subnetted, 1 subnets

D       23.1.1.0 [90/307200] via 12.1.1.2, 01:40:37, FastEthernet0/1

172.16.0.0/24 is subnetted, 1 subnets

S       172.16.1.0 is directly connected, Tunnel0

10.0.0.0/24 is subnetted, 1 subnets

C       10.0.0.0 is directly connected, Tunnel0

12.0.0.0/24 is subnetted, 1 subnets

C       12.1.1.0 is directly connected, FastEthernet0/1

C    192.168.1.0/24 is directly connected, FastEthernet0/0

PC1> show ip

NAME        : PC1[1]

IP/MASK     : 192.168.1.10/24

GATEWAY     : 192.168.1.1

DNS         :

MAC         : 00:50:79:66:68:00

LPORT       : 10000

RHOST:PORT  : 172.17.17.243:10001

MTU:        : 1500

PC1> ping 172.16.1.10

172.16.1.10 icmp_seq=1 timeout

172.16.1.10 icmp_seq=2 timeout

84 bytes from 172.16.1.10 icmp_seq=3 ttl=62 time=49.003 ms

84 bytes from 172.16.1.10 icmp_seq=4 ttl=62 time=49.003 ms

84 bytes from 172.16.1.10 icmp_seq=5 ttl=62 time=49.003 ms

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,492评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,048评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,927评论 0 358
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,293评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,309评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,024评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,638评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,546评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,073评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,188评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,321评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,998评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,678评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,186评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,303评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,663评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,330评论 2 358

推荐阅读更多精彩内容

  • neutron网络目的是为OpenStack云更灵活的划分网络,在多租户的环境下提供给每个租户独立的网络环境。 n...
    石头和齐齐阅读 884评论 0 0
  • OpenStackOVSGRE/VXLAN网络 学习或者使用OpenStack普遍有这样的现象:50%的时间花费在...
    石头和齐齐阅读 2,435评论 0 12
  • 概述 这篇文档其实主要讲的是行内关于“打洞”的事情。 什么叫“打洞” 通过在两个私网之间打一条隧道(tunnel)...
    haw_haw阅读 14,079评论 2 8
  • 遇见你 每每是只失魂落魄的蝴蝶 欲言似诉的眼神流转猜不透 四月草花的结尾,一阵阵馥郁的风是快乐了 还是愁绪不散把苏...
    王初情阅读 263评论 0 0
  • 陈侠,舞钢焦点工作坊第2期, 持续分享第107天,20180516 昨天一天特别忙碌,早上天气很热,我就比平时早起...
    爱的霞光阅读 147评论 0 0