1.GRE VPN基本配置
(1)创建虚拟Tunnel接口 在GRE各项配置中,必须先创建虚拟Tunnel接口,才能在虚拟Tunnel接口上进行其他功能特性的配置。删除虚拟Tunnel接口后,该接口上的所有配置也将被删除。
要创建虚拟Tunnel接口,应在系统视图下进行下列配置:
interface tunnel number
删除虚拟Tunnel接口,在系统视图下进行下列配置:
undo interface tunnel number
缺省情况下,路由器不创建虚拟Tunnel接口。
number为设定的接口号,范围0~1023,但实际可建的Tunnel数目将受到接口总数及内存状况的限制。
(2)指定Tunnel的源端 在创建Tunnel接口后,还要指明Tunnel通道的源端地址,即发出GRE报文的实际物理接口地址。Tunnel的源端地址与目的端地址唯一标识了一个通道。这些必须在Tunnel两端配置,且两端地址互为源地址和目的地址。
要设置Tunnel接口的源端地址或源端接口,在Tunnel接口视图下进行下列配置:
source{ip-addr∣interface-type interface-num}
使用命令source设置的是实际的物理接口地址或实际物理接口,另外还需要设置Tunnel接口的网络地址。在Tunnel接口视图下通过命令ip address可完成这一设置。
(3)指定Tunnel的目的端 在创建Tunnel接口后,还要指明Tunnel通道的目的端地址,即接收GRE报文的实际物理接口的IP地址。Tunnel的源端地址与目的端地址唯一标识了一个通道。这些配置在隧道两端的Tunnel接口上必须配置,且两端地址互为源地址和目的地址。
在Tunnel接口视图下进行下列配置:
destination ip-addr
使用命令destination设置的是实际的物理接口的IP地址,另外还需要设置tunnel接口的网络地址。
(4)设置Tunnel接口的网络地址 Tunnel接口的网络地址可以不是申请得到的网络地址。用户设置通道两端的网络地址应该位于同一网段上。这些配置在隧道两端的Tunnel接口上都必须配置,并且确保地址在同一网段。
在Tunnel接口视图下进行下列设置:
ip address ip-addr mask
(5)配置通过Tunnel的路由 在源端路由器和目的端路由器上都必须存在经过Tunnel转发的路由,这样GRE封装后的报文才能正确转发。可以配置静态路由,也可以配置动态路由,如图5.27所示。
从之前的讨论我们了解到,在IP over IP的GRE VPN中,实际上存在着两个不同的地址空间:私网地址空间、公网地址空间。对应不同的地址空间,其路由策略也是不同的。实际上,对隧道端点路由器来说:载荷网络接口,也就是其连接到私网的物理接口和Tunnel接口,属于载荷网路由AS,也就是私网路由AS,它们采用一致的私网路由策略,使用私网地址空间;承载网络接口,也就是其连接到公网的物理接口,属于承载网路由AS,也就是公网路由AS,它必须与公网使用一致的路由策略,使用公网地址空间。
图5.27 GRE VPN路由配置
①静态路由配置。可以手工配置一条到达目的网段(不是Tunnel的目的地址,而是未进行GRE封装的报文的目的地址所属网段)的路由。在Tunnel的两端都要进行此项配置。
②动态路由配置。如果路由器上运行了动态路由协议,只需在Tunnel接口和与私网相连的物理接口上使能该动态路由协议即可。在Tunnel的两端都必须进行此项配置。
2.GRE高级配置内容
(1)设置Tunnel接口报文的封装模式 这些配置在Tunnel两端为可选配置,如果配置则必须确保Tunnel两端的封装模式相同。在Tunnel视图下进行下列配置:
tunnel-protocol gre
缺省情况下,Tunnel接口报文的封装模式为GRE。
(2)设置Tunnel两端进行端到端校验 若GRE报文头中的Checksum位置位,则校验和有效。发送方将根据GRE头及payload信息计算校验和,并将包含校验和的报文发送给对端。接收方对接收到的报文计算校验和,并与报文中的校验和比较,如果一致则对报文进一步处理,否则丢弃。
隧道两端可以根据实际应用需要,配置校验和或禁止校验和。如果本端配置了校验和而对端没有配置,则本端将不会对接收到的报文进行校验和检查,但对发送的报文计算校验和;相反,如果本端没有配置校验和而对端已配置,则本端将对对端发来的报文进行校验和检查,但对发送的报文不计算校验和。
在Tunnel接口视图下进行下列配置:
gre checksum
缺省情况下,禁止Tunnel两端进行端到端校验。
(3)设置Tunnel接口的识别关键字 若GRE报文头中的KEY字段置位,则收发双方将进行通道识别关键字的验证,只有Tunnel两端设置的识别关键字完全一致时才能通过验证,否则将报文丢弃。
在Tunnel接口视图下进行配置:
gre key key-number
其中key-number可取值0~4294967295之间的整数。缺省情况下,Tunnel不使用KEY。
如前所述,GRE根据手工的配置启动,但是,GRE本身并不提供对隧道状态的维护机制。默认情况下,系统根据隧道源接口状态设置Tunnel接口状态。
如图5.28所示,依赖物理端口状态而决定Tunnel接口的状态是不足的。因为即使隧道两端的物理接口状态正常,在隧道经过的物理路径上仍然可能存在故障。在使用静态路由或接口备份的情况下,假设主用隧道接口的状态不能反映实际的连接状态,则即使存在备用的隧道,隧道封装包仍会由主动隧道发出,因而可能在途中被丢弃。
图5.28 虚假的Tunnel接口状态
出于故障察觉和路由备份的目的,需要有一种手段维护隧道的状态。这样一旦双方不可达,路由器可以迅速选择其他的接口继续转发。
在Tunnel接口视图下进行配置:
Keepalive interval times
缺省情况下,不启用GRE的keepalive功能。一旦启用,seconds缺省为10秒,times缺省为3次。
3.GRE配置实例
如图5.29所示,站点A和站点B运行IP协议,并私有地址空间10.0.0.0.两个站点通过在路由器RTA和路由器RTB之间使用GRE VPN,跨越公网实现互联。配置步骤如下:
(1)配置路由器RTA
# 配置接口Ethernet0/00:
[RTA]interface ethernet 0/0
[RTA-Ethernet0/0]ip address 10.1.1.1 255.255.255.0
[RTA-Ethernet0/0]quit
图5.29 GRE VPN配置实例——网络拓扑
# 配置接口Serial1/0(隧道的实际物理接口):
[RTA]interface Serial1/0
[RTA-Serial1/0]ip address 192.13.2.1 255.255.255.0(www.xing528.com)
[RTA-Serial1/0]quit
# 创建Tunnel0接口:
[RTA]interface tunnel 0
# 配置Tunnel0接口的IP地址:
[RTA-Tunnel0]ip address 10.1.2.1 255.255.255.0
# 配置Tunnel封装模式:
[RTA-Tunnel0]tunnel protocol gre
# 配置Tunnel0接口的源地址(Serial l/0的IP地址):
[RTA-Tunnel0]source 192.13.2.1
# 配置Tunnel0接口的目的地址(RTB的Seriall/0的IP地址):
[RTA-Tunnel0]destination 131.108.5.2
[RTA-Tunnel0]quit
# 配置从RTA经过Tunnel0接口到Group2的静态路由:
[RTA]ip route—static 10.1.3.0 255.255.255.0tunnel 0
(2)配置路由器RTB
# 配置接口Ethernet0/0:
[RTBJ]interface ethernet
[RTB Ethernet0/0]ip address 10.1.3.1 255.255.255.0
[RTB Ethernet0/0]quit
# 配置接口Seriall/0(隧道的实际物理接口):
[RTB]interface serial 1/0
[RTB Seriall/0]ip address 131.108.5.2 255.255.255.0
[RTB Seriall/0]quit
# 创建Tunnel0接口:
[RTB]interface tunnel 0
# 配置Tunnel0接口的IP地址:
(RTB Tunnel0)ip address 10.1.2.2 255.255.255.0
# 配置Tunnel封装模式:
[RTB-Tunnel0]tunnel protocol gre
# 配置Tunnel0接口的源地址(Serial 1/0的IP地址):
[RTB-Tunnel0]source 131.108.5.2
# 配置Tunnel0接口的目的地址(RTA的Seriall/0的IP地址):
[RTB-Tunnel0]destination 192.13.2.1
[RTB-Tunnel0]quit
# 配置从RTB经过Tunnel0接口到Group1的静态路由:
[RTB]iproute -static 10.1.1.0 255.255.255.0tunnel 0
注意:由于超出本节范围,本节并未列出保证RTA到RTB路由可达性的相关配置。但
是这种可达性的要求是隐含的,也是必须保证的。
4.查看和调试GRE
在任意视图下执行display命令可以显示配置后GRE的运行情况,通过查看显示信息验
证配置的效果。
在用户视图下,执行debugging命令可对GRE进行调试。GRE除了提供针对Tunnel查
询和调试命令,还提供了查询GRE隧道的命令:
display interface tunnel number
显示Tunnel接口的工作状态的输出信息形如下:
display interfaces tunnel1
Tunnel1is up,line protocol is up
Maximum Transmission Unit is 128
Internet address is 1.1.1.1 255.255.255.0
10packets input,640bytes
0input errors,0broadcast,0drops
10packets output,640bytes
0output errors,0broadcast,0no protocol
以上信息表示:Tunnel1接口处于UP状态,MTU为128字节,Tunnel1的网络地址为1.1.1.1;收到10个报文;收到的错误报文、广播报文个数都为0;无丢弃的报文;发送报文的
个数为10,输出产生错误的报文、广播报文与未知的协议类型的报文个数均为0。
打开Tunnel调试信息的命令用法:
debugging tunnel
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。