GRE协议有啥作用?用在那里?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GRE协议有啥作用?用在那里?相关的知识,希望对你有一定的参考价值。

参考技术A GRE规定了如何用一种网络协议去封装另一种网络协议的方法.GRE的隧道由两端的源IP地址和目的IP地址来定义,允许用户使用IP包封装IP、IPX、AppleTalk包,并支持全部的路由协议(如RIP2、OSPF等)比如现在信利软件公司就...

路由基础之GRE和SNMP的配置

GRE协议基础配置

1:原理概述:

GRE(Generic Routing Encapsulation,通用路由协议)提供了将一种协议的报文封装在另一种协议报文中的机制,使报文能够在异种网络(如IPv4网络)中传输,而异种报文传输的通道称为Tunnel。

GRE协议也可以作为VPN的第二层隧道(Tunnel)协议,为VPN数据提供透明传输通道。Tunnel是一个虚拟的点对点的连接,可以看成仅支持点对点连接的虚拟接口,这个接口提供了一条通道,使封装的数据报能够在这个通道上传输,并在一个Tunnul的两端分别对数据报进行封装及解封装。

2:实验目的:

理解GRE协议的使用场景

掌握配置GRE隧道的方法

掌握配置基于GRE接口的动态路由协议的方法

3:实验拓扑:

路由基础之GRE和SNMP的配置_Tunnel

4:基础配置:

AR1:

#​
interface Serial2/0/0​
link-protocol ppp​
ip address 10.1.12.1 255.255.255.0 ​
#​
interface Serial2/0/1​
link-protocol ppp​
#​
interface GigabitEthernet0/0/0​
ip address 192.168.10.1 255.255.255.0

AR2:

#
interface Serial2/0/0​
link-protocol ppp​
ip address 10.1.12.2 255.255.255.0 ​
#​
interface Serial2/0/1​
link-protocol ppp​
ip address 10.1.23.2 255.255.255.0

AR3:

#​
interface Serial2/0/0​
link-protocol ppp​
ip address 10.1.23.1 255.255.255.0 ​
#​
interface Serial2/0/1​
link-protocol ppp​
#​
interface GigabitEthernet0/0/0​
ip address 192.168.20.1 255.255.255.0

配置静态路由:

[Huawei]ip route-static 0.0.0.0 0.0.0.0 10.1.12.2
[Huawei]ip route-static 0.0.0.0 0.0.0.0 10.1.23.2

配置完成后,查看PC与总部服务器的连通性;

路由基础之GRE和SNMP的配置_Tunnel_02

可以观察到,跨越了互联网的两个私网网段之间默认是无法直接通信的,此时可以通过GRE协议来实现通信;

配置GRE Tunnel:

在路由器AR1和AR3配置了GRE Tunnel,创建隧道接口,指定隧道模式为GRE,配置AR1 Tunnel接口的源地址为其S2/0/0接口IP地址,目的地址为AR3的S2/0/0接口IP地址,配置AR3 Tunnel接口源地址为其S2/0/0接口IP地址,目的地址为AR1的S2/0/0接口IP地址;

AR1:

[Huawei]int Tunnel 0/0/0
[Huawei-Tunnel0/0/0]tu
[Huawei-Tunnel0/0/0]tunnel-protocol gre
[Huawei-Tunnel0/0/0]sou
[Huawei-Tunnel0/0/0]source 10.1.12.1
[Huawei-Tunnel0/0/0]de
[Huawei-Tunnel0/0/0]description 10.1.23.1
[Huawei-Tunnel0/0/0]ip add 172.16.1.1 24
[Huawei-Tunnel0/0/0]dis th
[V200R003C00]
#
interface Tunnel0/0/0
description 10.1.23.1
ip address 172.16.1.1 255.255.255.0
tunnel-protocol gre
source 10.1.12.1
AR3:
[Huawei]int Tunnel 0/0/0
[Huawei-Tunnel0/0/0]tu
[Huawei-Tunnel0/0/0]tunnel-protocol p
[Huawei-Tunnel0/0/0]tunnel-protocol gre
[Huawei-Tunnel0/0/0]source 10.1.23.1
[Huawei-Tunnel0/0/0]dqe
[Huawei-Tunnel0/0/0]de
[Huawei-Tunnel0/0/0]description 10.1.12.1
[Huawei-Tunnel0/0/0]ip add 172.16.1.2 24
[Huawei-Tunnel0/0/0]dis th
[V200R003C00]
#
interface Tunnel0/0/0
description 10.1.12.1
ip address 172.16.1.2 255.255.255.0
tunnel-protocol gre
source 10.1.23.1

配置完成后,在AR1上测试本端隧道接口地址与目的地址端口隧道接口地址的连通性;

路由基础之GRE和SNMP的配置_隧道技术_03

可以观察到,不通,这是为什么呢?

我们查看隧道接口状态:

路由基础之GRE和SNMP的配置_SNMP_04

路由基础之GRE和SNMP的配置_SNMP_05

可以观察到,当前隧道接口上的物理层状态为正常启动状态,链路层协议状态为非正常运行状态,隧道封装协议为GRE协议,Tunnel的IP地址及所配置的隧道源和目的地址分别为AR1和AR3的S2/0/0接口地址;

我们查看路由表:

路由基础之GRE和SNMP的配置_SNMP_06

路由基础之GRE和SNMP的配置_GRE_07可以观察到,,AR1和AR3的路由表中已经有所配置隧道接口的路由条目,即R1和R3间已经形成了类似点到点直连的逻辑链路,但没有互相接收到对方的私网路由信息;

配置基于GRE接口的动态路由协议;

AR1:

[Huawei]rip[Huawei-rip-1]v 
[Huawei-rip-1]version 2
[Huawei-rip-1]net 192.168.10.0
[Huawei-rip-1]net 172.16.0.0

AR3:

[Huawei]ri 
[Huawei]rip
[Huawei-rip-1]v 2
[Huawei-rip-1]net 192.168.20.0
[Huawei-rip-1]net 172.16.0.0

我们尝试ping一下

路由基础之GRE和SNMP的配置_SNMP_08

可以ping通

实验结束;

SNMP基础配置

1:原理概述:

随着网络规模的日益发展,现有的网络中,设备数量日益庞大。当这些设备发生故障时,由于设备无法主动上报故障,导致网络管理员无法及时感知、定位和排除故障,从而导致网络的维护效率降低,维护工作大大增加。

为了解决这个问题,设备制造商已经在一些设备中提供了网络管理的功能,这样网管就可以远程查看设备的状态,同样,设备也能够在特定类型的事件发生时向网络管理工作站发出警告。SNMP(Simple Network Management Protocol,简单网络管理协议)就是规定网管站和设备之间如何传递管理信息的应用层协议。SNMP定义了网管管理设备的几种操作,以及设备故障时能向网管主动发送告警。网络管理使用SNMP协议时存在网络管理站(NMS)、代理进程(Agent)和被管理设备3个角色。

  • 网络管理站(NMS):向被管理设备发送各种查询报文,以及接收被管理设备发送的告警;
  • 代理进程(Agent):是被管理设备上的一个代理进程,用于维护被管理设备的信息数据并响应来自NMS的请求,把管理数据汇报给发送请求的NMS。Agent的作用为接收、解析来自网管站的查询报文:根据报文类型对管理变量进行Read或Write操作,并生成响应报文,返回给网管站;根据各协议模块对告警触发条件的定义,在达到触发条件后,如进入、退出系统视图或设备重新启动等,相应的模块通过Agent主动向网管站发送告警,报告所发生的事件;
  • 被管理设备:接受网管的管理,产生和主动上报告警;

2:实验目的:

理解SNMP应用场景

掌握配置SNMP Agent的方法

掌握配置SNMP 版本的方法

掌握配置管理站、用户权限的方法

3:实验拓扑:

路由基础之GRE和SNMP的配置_隧道技术_09

我们首先做好基础配置,配置完成后,查看其网络的连通性;

路由基础之GRE和SNMP的配置_Tunnel_10

4:开启Agent服务:

将路由器模拟为代理站设备,需要为其启动SNMP服务;

路由基础之GRE和SNMP的配置_GRE_11

显示当前默认情况下所运行的SNMP版本v1、v2c、v3。

5:配置SNMP版本:

SNMP一共有3个版本,分别为v1、v2c、v3,开启SNMP服务后默认同时兼容3个版本。当网络规模较小且安全性较高时,在规划时可配置设备使用SNMPv1版本与网管进行通信;

当网络规模较大,安全性较高时,但运行的业务较为繁忙,在规划时配置设备使用SNMPv2c版本与网管进行通信;当网络规模较大且安全性较低时,在规划时配置设备使用SNMPv3版本与网管进行通信,并配置认证和加密功能保证安全性。

根据实际网络需求,配置SNMP版本,本例中使用SNMPv3版本

路由基础之GRE和SNMP的配置_Tunnel_12

配置完成后查看Agent信息

路由基础之GRE和SNMP的配置_Tunnel_13

显示当前运行的SNMP版本为v3

由于SNMPv3版本适用于大型网络规模,且可以配置认证加密,在实际工作环境下通常使用该版本;

6:配置NMS管理权限:

如果网络中不止一个管理站用户,可以根据业务需要,为不同管理站用户设置不同的访问权限。本实验中有两个管理站用户,现仅允许NMS-2可以管理设备;

配置ACL,限制NMS-2管理设备、NMS-1不允许管理设备;

[Agent]acl 2000
[Agent-acl-basic-2000]ru
[Agent-acl-basic-2000]rule 5 pe
[Agent-acl-basic-2000]rule 5 permit so
[Agent-acl-basic-2000]rule 5 permit source 10.1.1.2 0.0.0.255
[Agent-acl-basic-2000]rule 10 deny source 10.1.1.1 0.0.0.255

配置用户组为group,用户名为user,指定使用ACL2000

[Agent]snmp-agent usm-user v3 user group acl 2000

配置完成后,查看SNMPv3的用户信息;

路由基础之GRE和SNMP的配置_Tunnel_14

可以观察到,配置已经生效;

7:配置向SNMP Agent输出Trap信息:

网络管理员需要查看被管理者产生的Trap信息,以便监控设备运行情况及定位故障信息;

配置Agent发送Trap消息。用于接收该Trap消息的网管名为admin,目标地址为10.1.1.2,且指定接收该消息使用UDP端口为9991。Trap消息的发送参数信息列表名称为trapNMS2。

[Agent]snmp-agent target-host trap-hostname admin address 10.1.1.2 udp-port 9991 trap-paramsname trapNMS2

开启设备的告警开关。只有将该开关打开以后,Agent才会向网管站发送告警消息;

[Agent]snmp-agent tr 
[Agent]snmp-agent trap en
Info: All switches of SNMP trap/notification will be open. Continue? [Y/N]:y

设置告警消息的队列长度为200(默认值为100)。如果某个时段trap报文消息很多,为防止丢包,可以设置增加消息队列长度以便减少丢包的情况发生。

[Agent]snmp-agent trap queue-size 200

设置报文消息的保存时间为240秒(默认值为120)。该值是Trap报文消息的生存时间,如果超过时间报文将会被丢弃,不再发送,也不再保存。

[Agent]snmp-agent trap life 240

为了方便维护,配置管理员联系方式,电话为:400-111-5555,地址为中国石家庄。

[Agent]snmp-agent sys-info contact call admin 400-111-5555
[Agent]snmp-agent sys-info location shijiazhuang China

配置完成后查看配置信息:
路由基础之GRE和SNMP的配置_SNMP_15

查看SNMP Agent输出网管的信息:
路由基础之GRE和SNMP的配置_Tunnel_16

配置完成后通过命令可以观察到Trap目标主机名为adminNMS2,主机地址10.1.1.2,主机端口号为9991,目标主机参数列表名为trapNMS2。

实验结束;

备注:如有错误,请谅解!

此文章为本人学习笔记,仅供参考!如有重复!!!请联系本人

以上是关于GRE协议有啥作用?用在那里?的主要内容,如果未能解决你的问题,请参考以下文章

友元函数有啥作用,它主要用在哪些情况下?

通信领域的GRE是啥的缩写?有啥功能?

java junit有啥作用呢,普遍用在啥地方呢

通用路由封装(GRE)

NeTBIOS是啥,有啥作用

postInvalidate() 有啥作用?