GRE和MGRE

目录

GRE

GRE环境的搭建

MGRE

MGRE的配置

MGRE环境下的RIP网络

MGRE实验


VPN

说到GRE,我们先来说个大家熟悉一点的,那就是VPN技术。

背景需求

企业、组织、商家等对专用网有强大的需求。

高性能、高速度和高安全性是专用网明显的优势。

物理专用网价格高昂,物理架设实施有难度。传统的通过租用专线或拨号网络的方式越来越不适用。(性价比较低)

VPN--- Vitual Private Network,*虚拟私有网)︰是指依靠ISP或其他NSP在公用网络基础设施之上构建的专用的安全数据通信网络,只不过这个专线网络是逻辑上的而不是物理的,所以称为虚拟专用网。

虚拟:用户不再需要拥有实际的长途数据线路,而是使用公共网络资源建立自己的私有网络。

专用:用户可以定制最符合自身需求的网络。

核心技术:隧道技术

GRE

VPN技术的核心其实是隧道技术。而我们今天要讲的这个GRE其实就是―种隧道封装技术。

隧道技术∶在隧道的两端,通过封装及解封装技术在公网上建立一条数据通道,使用这条通道进行数据传输

GRE ---通用路由封装,标准的三层隧道技术,是一种点对点的隧道

GRE环境的搭建

这里可以先使用ENSP搭建一个GRE的工作环境进行演示讲解。

搭建如上的示意拓扑。我们现在的需求就是通过GRE技术保证左边的1.0网段可以正常的访问右边2.0网段。

我们先按照现在所学的把我们该配的都配好。R1,R2,R3的IP,及R1,R3 上应该配置到达ISP路由器的缺省路由,配置完后,12.0.0.1应

该可以ping通23.0.0.1。当然,两边的私网IP地址肯定是不可能通的。

其实这个隧道的原理很简单,就是我们假装中间有一个虚 拟的链路将两边的路由器连接。这个虚拟的链路也需要在-个内网的网段

当中。我们这样配,肯定没问题,问题是,你配好了数据包也没办法去走这个虚拟的链路啊,因为他本身就不存在。数据还是只能从

真实的接口中出走真实的链路。

所以,这中间就需要GRE帮忙搬运流量。

GRE 实验

实验步骤:

第⼀步:配置 IP 地址

R1 配置:

R1\]interface g0/0/0 \[R1-GigabitEthernet0/0/0\]ip address 192.168.1.1 24 \[R1\]interface g0/0/1 \[R1-GigabitEthernet0/0/1\]ip address 12.1.1.1 24

R2 配置

R2\]interface g0/0/0 \[R2-GigabitEthernet0/0/0\]ip address 12.1.1.2 24 \[R2\]interface g0/0/1 \[R2-GigabitEthernet0/0/1\]ip address 23.1.1.2 24

R3 配置

R3\]interface g0/0/0 \[R3-GigabitEthernet0/0/0\]ip address 23.1.1.3 24 \[R3\]interface g0/0/1 \[R3-GigabitEthernet0/0/1\]ip address 34.1.1.3 24

R4 配置

R4\]interface g0/0/0 \[R4-GigabitEthernet0/0/0\]ip address 34.1.1.4 24 \[R4\]interface g0/0/1 \[R4-GigabitEthernet0/0/1\]ip address 192.168.2.1 24

第⼆步:公⽹路由配置,此处采⽤ OSPF

R2 配置

R2\]ospf 1 router-id 2.2.2.2 \[R2-ospf-1\]area 0 \[R2-ospf-1-area-0.0.0.0\]network 12.1.1.0 0.0.0.255 \[R2-ospf-1-area-0.0.0.0\]network 23.1.1.0 0.0.0.255

R3 配置

R3\]ospf 1 router-id 3.3.3.3 \[R3-ospf-1\]area 0 \[R3-ospf-1-area-0.0.0.0\]network 23.1.1.0 0.0.0.255 \[R3-ospf-1-area-0.0.0.0\]network 34.1.1.0 0.0.0.255

第三步:配置内⽹缺省路由

R1 配置

R1\]ip route-static 0.0.0.0 0 12.1.1.2

R4 配置

R4\]ip route-static 0.0.0.0 0 34.1.1.3

第四步:配置 NAT

R1 配置

R1\]acl 2000 \[R1-acl-basic-2000\]rule 1 permit source any \[R1-acl-basic-2000\]q \[R1\]interface g0/0/1 \[R1-GigabitEthernet0/0/1\]nat outbound 2000

R4 配置

R4\]acl 2000 \[R4-acl-basic-2000\]rule 1 permit source any \[R4-acl-basic-2000\]q \[R4\]interface g0/0/0 \[R4-GigabitEthernet0/0/0\]nat outbound 2000

第五步:配置 GRE

R1 配置

R1\]interface Tunnel 0/0/0 //创建隧道⼝ \[R1-Tunnel0/0/0\]tunnel-protocol gre //定义封装⽅式为GRE \[R1-Tunnel0/0/0\]ip address 10.1.1.1 24 //配置隧道IP地址 \[R1-Tunnel0/0/0\]source 12.1.1.1 //定义封装内容源 \[R1-Tunnel0/0/0\]destination 34.1.1.4 //定义封装内容⽬标

R4 配置

R4\]interface Tunnel 0/0/0 \[R4-Tunnel0/0/0\]tunnel-protocol gre \[R4-Tunnel0/0/0\]ip address 10.1.1.2 24 \[R4-Tunnel0/0/0\]source 34.1.1.4 \[R4-Tunnel0/0/0\]destination 12.1.1.1

第六步:书写静态路由指向隧道

R1\]ip route-static 192.168.2.0 24 Tunnel 0/0/0 \[R4\]ip route-static 192.168.1.0 24 Tunnel 0/0/0

第七步:测试

PC>ping 192.168.2.2

Ping 192.168.2.2: 32 data bytes, Press Ctrl_C to break

Request timeout!

Request timeout!

From 192.168.2.2: bytes=32 seq=3 ttl=126 time=47 ms

From 192.168.2.2: bytes=32 seq=4 ttl=126 time=31 ms

From 192.168.2.2: bytes=32 seq=5 ttl=126 time=47 ms

--- 192.168.2.2 ping statistics ---

5 packet(s) transmitted

3 packet(s) received

40.00% packet loss

round-trip min/avg/max = 0/41/47 ms

GRE报文结构

GRE在封装数据时,会添加GRE头部信息,还会添加新的传输协议头部信息。

GRE封装报文时,封装前的报文成为净荷,封装前的报文协议成为乘客协议,然后GRE会封装GRE头部,GRE成为封装协议,也叫运载协议,最后负责对封装后的报文进行转发的协议成为传输协议。

MGRE

当然,GRE本身还是存在缺陷的,主要是他创建的通道是一个点到点的隧道,导致其扩展性较差。要是存在多个分公司需要和总部连接,融为一个私网时,利用GRE技术需要打通的通道就太多了。

这种场景就可以使用另一种技术,MGRE ,即多点通用路由封装协议。

在这种场景下,如果想要将四个私网融合成一个私网的话,使用GRE隧道,则需要四个私网之间彼此打通一条隧道,这样显然是不方便的。我们希望所有可以像MA网络一样,用一个网段将所有的私网连接起来。虚拟链路的逻辑图应该如下所示。

但这样有个问题,我们GRE是点到点的虚拟隧道,他在发送的时候必须要指定要封装的源IP和目标IP。而现在这种场景下,他是没有办法指定一个具体的目标IP的。所以 MGRE 的核心任务就是需要想办法将这个过程变成动态的,我和谁通信,目标地址就修改成谁。

这里就需要用到一个协议的辅助,那就是NHRP协议。

NHRP---下一跳解析协议**.----原理也很简单,我们在这些私网中选择一个出口物理IP不会变的作为NHRP的中心(NHS--下一跳服务器)。这样,剩下的分支就都可以知道中心的隧道IP和物理IP。然后,NHRP要求所有分支都需要将自己物理接口IP和隧道IP发给NHS。(发生变化就需要重新发送。)这样我们的NHS会将所有的分支的地址映射关系动态的记录在本地。发送信息时查询即可。分支之间需要发送信息也需要获取这个映射关系,就需要先问NHS要。

我们发现我们用MGRE搭建的这个逻辑拓扑也是网络中存在多个节点,但是本身他在发送的时候还是一个点到点的发送,并不存在广播或者组播行为,所以,这样的网络我们可以近似的看作是NBMA网络(这是逻辑上的NBMA,也就是靠技术模拟的。真实的物理上的NBMA网络需要靠帧中继技术搭建,我们不去研究。)

MGRE的配置

基于上述环境来进行MGRE环境的搭建。

配置完成之后我们就可以通过命令:[r1]display nhrp peer all

之后再补全路由信息就可以完成通讯过程了。

第一步:配置IP地址

第二步:配置内⽹缺省路由

R1\]ip route-static 0.0.0.0 0 15.1.1.5 \[R2\]ip route-static 0.0.0.0 0 25.1.1.5 \[R3\]ip route-static 0.0.0.0 0 35.1.1.5 \[R4\]ip route-static 0.0.0.0 0 45.1.1.5

第三步:配置NAT

R1

R1\]acl 2000 \[R1-acl-basic-2000\]rule 1 permit source any \[R1-acl-basic-2000\]q \[R1\]interface GigabitEthernet 0/0/0 \[R1-GigabitEthernet0/0/0\]nat outbound 2000

R2

R2\]acl 2000 \[R2-acl-basic-2000\]rule 1 permit source any \[R2-acl-basic-2000\]q \[R2\]interface GigabitEthernet 0/0/0 \[R2-GigabitEthernet0/0/0\]nat outbound 2000

R3

R3\]acl 2000 \[R3-acl-basic-2000\]rule 1 permit source any \[R3-acl-basic-2000\]q \[R3\]interface GigabitEthernet 0/0/0 \[R3-GigabitEthernet0/0/0\]nat outbound 2000

R4

R4\]acl 2000 \[R4-acl-basic-2000\]rule 1 permit source any \[R4-acl-basic-2000\]q \[R4\]interface GigabitEthernet 0/0/0 \[R4-GigabitEthernet0/0/0\]nat outbound 2000

R5

R5\]acl 2000 \[R5-acl-basic-2000\]rule 1 permit source any \[R5-acl-basic-2000\]q \[R5\]interface GigabitEthernet 0/0/0 \[R5-GigabitEthernet0/0/0\]nat outbound 2000

第四步:配置MGRE

中心站点R1:

R1\]interface Tunnel 0/0/0 创建tunnel口 \[R1-Tunnel0/0/0\]ip address 10.1.1.1 24 配置接口ip地址 \[R1-Tunnel0/0/0\]tunnel-protocol gre p2mp 先修改接口模式为多点 \[R1-Tunnel0/0/0\]source 15.1.1.1 再定义公有的IP地址 \[R1-Tunnel0/0/0\]nhrp network-id 100

分支站点

R2:

R2\]interface Tunnel 0/0/0 \[R2-Tunnel0/0/0\]ip address 10.1.1.2 24 \[R2-Tunnel0/0/0\]tunnel-protocol gre p2mp \[R2-Tunnel0/0/0\]source 25.1.1.2 \[R2-Tunnel0/0/0\]nhrp network-id 100 \[R2-Tunnel0/0/0\]nhrp entry 10.1.1.1 15.1.1.1 register

R3

R3\]interface Tunnel 0/0/0 \[R3-Tunnel0/0/0\]ip address 10.1.1.3 24 \[R3-Tunnel0/0/0\]tunnel-protocol gre p2mp \[R3-Tunnel0/0/0\]source 35.1.1.3 \[R3-Tunnel0/0/0\]nhrp network-id 100 \[R3-Tunnel0/0/0\]nhrp entry 10.1.1.1 15.1.1.1 register

R4

R4\]interface Tunnel 0/0/0 \[R4-Tunnel0/0/0\]ip address 10.1.1.4 24 \[R4-Tunnel0/0/0\]tunnel-protocol gre p2mp \[R4-Tunnel0/0/0\]source 45.1.1.4 \[R4-Tunnel0/0/0\]nhrp network-id 100 \[R4-Tunnel0/0/0\]nhrp entry 10.1.1.1 15.1.1.1 register

第五步:书写静态路由

R1:

R1\]ip route-static 192.168.2.0 24 10.1.1.2 \[R1\]ip route-static 192.168.3.0 24 10.1.1.3 \[R1\]ip route-static 192.168.4.0 24 10.1.1.4

R2:

R2\]ip route-static 192.168.1.0 24 10.1.1.1 \[R2\]ip route-static 192.168.3.0 24 10.1.1.3 \[R2\]ip route-static 192.168.4.0 24 10.1.1.4

R3:

R3\]ip route-static 192.168.1.0 24 10.1.1.1 \[R3\]ip route-static 192.168.2.0 24 10.1.1.2 \[R3\]ip route-static 192.168.4.0 24 10.1.1.4

R4:

R4\]ip route-static 192.168.1.0 24 10.1.1.1 \[R4\]ip route-static 192.168.2.0 24 10.1.1.2 \[R4\]ip route-static 192.168.3.0 24 10.1.1.3

MGRE环境下的RIP网络

这里补全路由的过程可以采用最简单的静态路由来完成,那自然也可以通过动态路由协议来完成,这里,我们先通过RIP协议来完成MGRE环境下的路由获取,至于OSPF协议,之后我们在学习了OSPF的细节知识之后,我们再去尝试。

注意,在做RIP宣告的时候,只需要宣告环回网段(私网网段),以及隧道网段即可,公网接口可以不用激活,因为并不需要他去收发RIP数据。也不需要其路由信息,这部分路由我们走的是缺省,我们一开始就配置好了。

当然,在执行完RIP的配置操作之后,我们会发现,这也环境下的网络存在一些问题,并没有完全的按照我们预想的结果来。我们做如下总结:

在MGRE环境下使用RIP来获取未知网段的路由信息

1,只有中心获取到分支的路由信息,但是分支并没有获取到中心的路由信息

----解决方案---在中心上开启伪广播。---通过给所有分支分别发送数据包达到类似广播的效果。

r1-Tunnel0/o/0\]nhrp entry multicast dynamic

2,分支在中心开启伪广播后,只能获取到中心的路由信息,但是无法获取分支之间的路由信息。

主要是因为华为设备默认开启了RIP的水平分割,导致中心不会再从隧道接口将学来的分支路由发送给其他分支解决方案---关闭接口的水平分割

r1-Tunnel0/0/0\]undo rip split-horizon

MGRE实验

实验步骤

第⼀步: IP 地址规划

PC 地址

设备 地址 ⽹关

PC1 192.168.1.2/24 192.168.1.2/24

PC2 192.168.2.2/24 192.168.2.1/24

PC3 192.168.3.2/24 192.168.3.1/24

PC4 192.168.4.2/24 192.168.4.1/24

设备地址

设备 接⼝ 地址

R1 S4/0/0 15.1.1.1/24

R2 S4/0/0 25.1.1.2/24

R3 S4/0/0 35.1.1.3/24

R4 S4/0/0 45.1.1.4/24

R5 S4/0/0 15.1.1.5/24

S4/0/1 25.1.1.5/24

S3/0/0 35.1.1.5/24

G0/0/0 45.1.1.5/24

loopback0 5.5.5.5/24

第⼆步:配置 IP 地址

R1 配置

R1\]interface g0/0/0 \[R1-GigabitEthernet0/0/0\]ip address 192.168.1.1 24 \[R1\]interface s4/0/0 \[R1-Serial4/0/0\]ip address 15.1.1.1 24

R2 配置

R2\]interface g0/0/0 \[R2-GigabitEthernet0/0/0\]ip address 192.168.2.1 24 \[R2\]interface s4/0/0 \[R2-Serial4/0/0\]ip address 25.1.1.2 24

R3 配置

R3\]interface g0/0/0 \[R3-GigabitEthernet0/0/0\]ip address 192.168.3.1 24 \[R3\]interface s4/0/0 \[R3-Serial4/0/0\]ip address 35.1.1.3 24

R4 配置

R4\]interface g0/0/0 \[R4-GigabitEthernet0/0/0\]ip address 45.1.1.4 24 \[R4\]interface g0/0/1 \[R4-GigabitEthernet0/0/1\]ip address 192.168.4.1 24

R5 配置

interface Serial3/0/0

ip address 35.1.1.5 255.255.255.0

interface Serial4/0/0

ip address 15.1.1.5 255.255.255.0

interface Serial4/0/1

ip address 25.1.1.5 255.255.255.0

interface GigabitEthernet0/0/0

ip address 45.1.1.5 255.255.255.0

第三步:配置缺省路由

R1\]ip route-static 0.0.0.0 0 15.1.1.5 \[R2\]ip route-static 0.0.0.0 0 25.1.1.5 \[R3\]ip route-static 0.0.0.0 0 35.1.1.5 \[R4\]ip route-static 0.0.0.0 0 45.1.1.5

第四步: NAT

R1\]acl 2000 \[R1-acl-basic-2000\]rule 1 permit source any \[R1-acl-basic-2000\]q \[R1\]inter s4/0/0 \[R1-Serial4/0/0\]nat outbound 2000

第五步: PAP 认证

主认证⽅配置

R5\]aaa \[R5-aaa\]local-user huawei password cipher huawei \[R5-aaa\]local-user huawei service-type ppp \[R5\]interface s4/0/0 \[R5-Serial4/0/0\]ppp authentication-mode pap

被认证⽅配置

R1\]interface s4/0/0 \[R1-Serial4/0/0\]ppp pap local-user huawei password cipher huawei

第六步: CHAP 认证

主认证⽅配置

R5\]aaa \[R5-aaa\]local-user huawei password cipher huawei \[R5-aaa\]local-user huawei service-type ppp \[R5\]interface s4/0/0 \[R5-Serial4/0/0\]ppp authentication-mode chap

被认证⽅配置

R2\]interface s4/0/0 \[R2-Serial4/0/0\]ppp chap user huawei \[R2-Serial4/0/0\]ppp chap password cipher huawei

第七步: HDLC 封装

R3\]inter s4/0/0 \[R3-Serial4/0/0\]link-protocol hdlc \[R5\]interface s3/0/0 \[R5-Serial3/0/0\]link-protocol hdlc

第⼋步: R1R2R3 构建 MGRE 环境

R1 配置

R1\]interface Tunnel 0/0/0 \[R1-Tunnel0/0/0\]ip address 10.1.1.1 24 \[R1-Tunnel0/0/0\]tunnel-protocol gre p2mp \[R1-Tunnel0/0/0\]source 15.1.1.1 \[R1-Tunnel0/0/0\]nhrp network-id 100

R2 配置

R2\]interface Tunnel 0/0/0 \[R2-Tunnel0/0/0\]ip address 10.1.1.2 24 \[R2-Tunnel0/0/0\]tunnel-protocol gre p2mp \[R2-Tunnel0/0/0\]source s4/0/0 \[R2-Tunnel0/0/0\]nhrp entry 10.1.1.1 15.1.1.1 register \[R2-Tunnel0/0/0\]nhrp network-id 100

R3 配置

R3\]interface Tunnel 0/0/0 \[R3-Tunnel0/0/0\]ip address 10.1.1.3 24 \[R3-Tunnel0/0/0\]tunnel-protocol gre p2mp \[R3-Tunnel0/0/0\]source s4/0/0 \[R3-Tunnel0/0/0\]nhrp network-id 100 \[R3-Tunnel0/0/0\]nhrp entry 10.1.1.1 15.1.1.1 register

第九步: R1R4 配置 GRE

R1 配置

R1\]interface Tunnel 0/0/1 \[R1-Tunnel0/0/1\]ip address 20.1.1.1 24 \[R1-Tunnel0/0/1\]tunnel-protocol gre \[R1-Tunnel0/0/1\]source 15.1.1.1 \[R1-Tunnel0/0/1\]destination 45.1.1.4

R4 配置

R4\]interface Tunnel 0/0/1 \[R4-Tunnel0/0/1\]ip address 20.1.1.2 24 \[R4-Tunnel0/0/1\]tunnel-protocol gre \[R4-Tunnel0/0/1\]source 45.1.1.4 \[R4-Tunnel0/0/1\]destination 15.1.1.1

第⼗步:书写 RIP 路由

MGRE 环境下 RIP 路由配置

R1 配置

R1\]rip 1 \[R1-rip-1\]version 2 \[R1-rip-1\]network 192.168.1.0 \[R1-rip-1\]network 10.0.0.0

注意: MGRE 环境下 RIP 需要开启伪⼴播和关闭⽔平分割

R1\]interface Tunnel 0/0/0 \[R1-Tunnel0/0/0\]nhrp entry multicast dynamic //开启伪⼴播 \[R1-Tunnel0/0/0\]undo rip split-horizon //关闭⽔平分割

R2 配置

R2\]rip 1 \[R2-rip-1\]version 2 \[R2-rip-1\]network 192.168.2.0 \[R2-rip-1\]network 10.0.0.0

R3 配置

R3\]rip 1 \[R3-rip-1\]version 2 \[R3-rip-1\]network 192.168.3.0 \[R3-rip-1\]network 10.0.0.0

GRE 环境下配置

R1 配置

R1\]rip 1 \[R1-rip-1\]version 2 \[R1-rip-1\]network 20.0.0.0

R4 配置

R4\]rip 1 \[R4-rip-1\]version 2 \[R4-rip-1\]network 20.0.0.0 \[R4-rip-1\]network 192.168.4.0

相关推荐
兴达易控2 分钟前
Profibus DP主站转Modbus TCP网关接E+H流量计通讯案例
网络
熙曦Sakura8 分钟前
【Linux网络】TCP全连接队列
linux·网络·tcp/ip
国产化创客2 小时前
OpenHarmony轻量系统--BearPi-Nano开发板网络程序测试
网络·物联网·harmonyos·国产化
靡樊2 小时前
网络基础概念
linux·服务器·网络·c++·学习
君鼎2 小时前
TCP/IP-——C++编程详解
网络·c++·tcp/ip
筑梦之月3 小时前
全流量解析:让安全防御从“被动挨打”升级为“主动狩猎”
网络·安全
Waitccy4 小时前
深度解析网闸策略:构建坚固的网络安全防线
网络·安全·web安全
蹦蹦跳跳真可爱5894 小时前
Python----神经网络(《Inverted Residuals and Linear Bottlenecks》论文概括和MobileNetV2网络)
网络·人工智能·python·深度学习·神经网络
像风一样自由20205 小时前
局部放电在线监测系统的数据传输协议选择研究:Modbus TCP 与 MQTT
网络·网络协议·tcp/ip
PHASELESS4115 小时前
TCP协议十大核心特性深度解析:构建可靠传输的基石
网络·网络协议·tcp/ip