HCIE-Security Day20:GRE协议:实验(一)配置基于静态路由的GRE隧道
目录
一些概念
实验一:配置基于静态路由的GRE隧道
需求和拓扑
操作步骤
1、配置接口地址和安全区域
2、配置静态路由
3、设置安全策略默认全通
4、测试是否可通
5、配置gre
6、配置安全区域
验证和分析
1、使用pc1 ping pc2
2、检查fw1的路由表
3、在fw1上使用ping -a 172.16.2.1 172.16.2.2
4、在r1上进行抓包,检查报文情况
5、检查tunnel隧道
6、检查fw的session table
总结一下gre的转发流程
进阶:隧道保活机制
一些其他的问题
1、GRE与IPSec的区别?什么情况下适合使用GRE?
2、Tunnel接口(GRE接口)的作用是什么?什么是隧道源接口和目的接口?
3、Tunnel接口的IP地址作用是什么?隧道两端的IP地址是否必须配置成同一网段?
4、Tunnel接口(GRE接口)是否一定要加入安全区域?
5、多个Tunnel接口(GRE接口)是否可以使用同一个源IP地址?
一些概念
gre:通用路由封装,三层pn封装技术。解决跨异种网络的报文传输问题。
封装分为两步,第一步是为原始报文添加gre头,第二步是在gre头前面再加新的ip头,加上新的ip头后,就可以在新的网络上传输了。
gre的封装是通过逻辑接口tunnel完成的,这个接口是一个通用的隧道接口,所以需要设置接口的封装协议。
实验一:配置基于静态路由的GRE隧道
需求和拓扑
FW_A和FW_B通过Internet相连,两者公网路由可达。网络1和网络2是两个私有的IP网络,通过在两台FW之间建立GRE隧道实现两个私有IP网络互联。
操作步骤
1、配置接口地址和安全区域
2、配置静态路由
3、设置安全策略默认全通
4、测试是否可通
5、配置gre
//f1
interface Tunnel1ip address 172.16.2.1 255.255.255.0tunnel-protocol gresource 1.1.1.1//源目隧道地址是公网地址destination 5.5.5.5gre key cipher 123456
//f2
interface Tunnel1ip address 172.16.2.2 255.255.255.0tunnel-protocol gresource 5.5.5.5//源目隧道地址是公网地址destination 1.1.1.1gre key cipher 123456
firewall zone dmzadd interface Tunnel1
//f1
ip route-static 10.1.2.0 24 Tunnel 1
//f2
ip route-static 10.1.1.0 24 Tunnel 1
5.4 配置f1和f2之间公网静态路由,保证公网接口可达(很重要,否则看不到路由表中的隧道路由,官方文档中没有提及这个)
//f1
ip route-static 5.5.5.5 255.255.255.255 1.1.1.2
//f2
ip route-static 1.1.1.1 255.255.255.255 5.5.5.2
//r1
本环境中r1始终没有配置静态路由,实际组网中,只需要保证fw1和fw2的公网接口地址可达即可,本环境中因为和fw1和fw2是直连,所以不需要配置。
6、配置安全区域
//f1f2
security-policyrule name 1
//配置Trust域和DMZ的域间安全策略,允许封装前的报文通过域间安全策略。source-zone dmzsource-zone trustdestination-zone dmzdestination-zone trustaction permitrule name 2
//配置Local和Untrust的域间安全策略,允许封装后的GRE报文通过域间安全策略。source-zone localsource-zone untrustdestination-zone localdestination-zone untrustservice greaction permit
这是单向通道,只能放行从PCA到PCB的流量,如果PCB主动发起连接,产生流量,则还需要配置反向策略。所以我们的配置是双向放行。实际网络中,可以根据需要选择是否配置双向通道。
验证和分析
1、使用pc1 ping pc2
2、检查fw1的路由表
[f1]dis ip routing-table
2022-03-01 07:46:08.080
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: PublicDestinations : 10 Routes : 10 Destination/Mask Proto Pre Cost Flags NextHop Interface1.1.1.0/24 Direct 0 0 D 1.1.1.1 GigabitEthernet
1/0/11.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
1/0/15.5.5.5/32 Static 60 0 RD 1.1.1.2 GigabitEthernet
1/0/110.1.1.0/24 Direct 0 0 D 10.1.1.1 GigabitEthernet
1/0/010.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
1/0/010.1.2.0/24 Static 60 0 D 172.16.2.1 Tunnel1127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0172.16.2.0/24 Direct 0 0 D 172.16.2.1 Tunnel1172.16.2.1/32 Direct 0 0 D 127.0.0.1 Tunnel1
3、在fw1上使用ping -a 172.16.2.1 172.16.2.2
[f1]ping -a 172.16.2.1 172.16.2.2PING 172.16.2.2: 56 data bytes, press CTRL_C to breakRequest time outRequest time outRequest time outRequest time outRequest time out--- 172.16.2.2 ping statistics ---5 packet(s) transmitted0 packet(s) received100.00% packet loss
即使将fw1和fw2的安全策略设置为全通都是无法ping通的。
4、在r1上进行抓包,检查报文情况
可以看到gre报头在实际的ip头之上,并且在gre外又封装一层ip头,这个ip头的源目地址是fw的公网地址。
GRE报文头中的flags字段的Key标识位置1,表示启用了身份验证功能,为0表示未启用身份验证功能,FW中GRE缺省未开启此功能。
5、检查tunnel隧道
<f1>dis interface Tunnel 1
2022-03-03 04:00:48.000
Tunnel1 current state : UP
Line protocol current state : UP
Last line protocol up time : 2022-03-03 03:51:09
Description:Huawei, USG6000V1-ENSP Series, Tunnel1 Interface
Route Port,The Maximum Transmit Unit is 1500
Internet Address is 172.16.2.1/24
Encapsulation is TUNNEL, loopback not set
Tunnel source 1.1.1.1 (GigabitEthernet1/0/1), destination 5.5.5.5
Tunnel protocol/transport GRE/IP, key enabled
keepalive disabled
Checksumming of packets disabled
Current system time: 2022-03-03 04:00:48300 seconds input rate 0 bits/sec, 0 packets/sec300 seconds output rate 0 bits/sec, 0 packets/sec13 seconds input rate 0 bits/sec, 0 packets/sec13 seconds output rate 0 bits/sec, 0 packets/sec7 packets input, 616 bytes0 input error10 packets output, 792 bytes1 output errorInput:Unicast: 7 packets, Multicast: 0 packetsOutput:Unicast: 10 packets, Multicast: 0 packetsInput bandwidth utilization : --Output bandwidth utilization : --
6、检查fw的session table
[f1]dis fire session table
2022-03-01 08:23:05.790 Current Total Sessions : 19icmp VPN: public --> public 10.1.1.100:17719 --> 10.1.2.100:2048icmp VPN: public --> public 10.1.1.100:20279 --> 10.1.2.100:2048icmp VPN: public --> public 10.1.1.100:20535 --> 10.1.2.100:2048icmp VPN: public --> public 10.1.1.100:18999 --> 10.1.2.100:2048icmp VPN: public --> public 10.1.1.100:18743 --> 10.1.2.100:2048icmp VPN: public --> public 10.1.1.100:18231 --> 10.1.2.100:2048icmp VPN: public --> public 10.1.1.100:17975 --> 10.1.2.100:2048icmp VPN: public --> public 10.1.1.100:18487 --> 10.1.2.100:2048icmp VPN: public --> public 10.1.1.100:17463 --> 10.1.2.100:2048icmp VPN: public --> public 10.1.1.100:16183 --> 10.1.2.100:2048gre VPN: public --> public 5.5.5.5:0 --> 1.1.1.1:0icmp VPN: public --> public 10.1.1.100:16695 --> 10.1.2.100:2048icmp VPN: public --> public 10.1.1.100:21047 --> 10.1.2.100:2048icmp VPN: public --> public 10.1.1.100:17207 --> 10.1.2.100:2048icmp VPN: public --> public 10.1.1.100:19767 --> 10.1.2.100:2048icmp VPN: public --> public 10.1.1.100:19511 --> 10.1.2.100:2048icmp VPN: public --> public 10.1.1.100:20791 --> 10.1.2.100:2048icmp VPN: public --> public 10.1.1.100:19255 --> 10.1.2.100:2048icmp VPN: public --> public 10.1.1.100:16951 --> 10.1.2.100:2048
总结一下gre的转发流程
PC_A通过GRE隧道访问PC_B时,FW_A和FW_B上的报文转发过程如下:
- PC_A访问PC_B的原始报文进入FW_A后,首先匹配路由表。
- 根据路由查找结果,FW_A将报文送到Tunnel接口进行GRE封装,增加GRE头,外层加新IP头。
10.1.2.0/24 Static 60 0 D 172.16.2.1 Tunnel1
- FW_A根据GRE封装后报文的新IP头的目的地址(5.5.5.5),再次查找路由表。
5.5.5.5/32 Static 60 0 RD 1.1.1.2 GigabitEthernet1/0/1
- FW_A根据路由查找结果经R1中转将报文发送至FW_B.
- FW_B收到报文后,首先判断这个报文是不是GRE报文。
如何判断?抓包可以看到封装后的GRE报文会有个新的IP头,这个新的IP头中有个Protocol字段,字段中标识了内层协议类型,如果这个Protocol字段值是47,就表示这个报文是GRE报文。如果是GRE报文,FW_B则将该报文送到Tunnel接口解封装,去掉新的IP头、GRE头,恢复为原始报文;如果不是,则报文按照普通报文进行处理。
- FW_B根据原始报文的目的地址再次查找路由表,然后根据路由匹配结果将报文发送至PC_B。
进阶:隧道保活机制
- 缺省情况下,未启用GRE的Keepalive功能。
- GRE的Keepalive功能是单向的,对端是否支持或启用Keepalive功能不影响本端的Keepalive功能。但建议在GRE隧道两端都启用Keepalive功能。
- period表示本端发送keeplive报文的时间间隔。默认5s。如果本端发送retry-times次keeplive报文后,对端仍没有回应,则认为对端不可达。
- 启用GRE的Keepalive功能后,GRE隧道的本端会周期性的向对端发送keepalive报文,以检测GRE隧道的状态。如果GRE隧道对端不可达,本端的Tunnel接口状态会被置为Down。这就避免了因对端不可达而造成的数据黑洞。
我们给fw2的tunnel1配置了keepalive,从而周期性发gre keepalive报文。可以看到一个bug,wireshark显示源目地址是1.1.1.1----5.5.5.5,打开一看发现还是5.5.5.5---1.1.1.1。通过报文分析我们知道gre 保活报文实际上还是gre报文的一种,他在上层的ip头部的protocol封装还是47,在gre报文头中,falgs字段的key标识置位仍有效,即对保活报文还是可以认证的。
接着往下看
包裹的ip报文(第二层ip)的源目地址还是隧道绑定的公网地址,这是和普通gre报文不一样的地方,实际上也很好理解,即我们做保活本来也是对于隧道的保活,并没有什么私网地址的概念在里面。这一层ip头中仍然在protocol字段标了47,表示下层是gre报文。在下层的gre报文中,protocol type字段标注0x0000.表示这是一个保活字段,而对于正常的gre报文,他的该字段会写0x0800,这表示下层是ip字段,实际上在mac层,也有类似的字段type,如果下层是ip层,一样也是0x0800.
看看fw1给fw2的保活响应回包。
这只有一层ip报头,里面是gre的回包内容。
我们对比一下
去包
回包
一些其他的问题
1、GRE与IPSec的区别?什么情况下适合使用GRE?
IPSec目前只能对单播报文进行加密保护,不能对组播报文进行加密保护。而GRE可以将组播报文封装成单播报文,但不能对报文进行加密保护。
GRE的最大作用是对路由协议、语音、视频等组播报文或IPv6报文进行封装。
2、Tunnel接口(GRE接口)的作用是什么?什么是隧道源接口和目的接口?
Tunnel接口(GRE接口)的作用是对数据报文进行GRE封装及解封装。负责发送封装后的报文的物理接口叫做隧道源接口,对端接收此报文的物理接口叫做隧道目的接口。
一般情况下,选择本端设备与公网相连的物理接口作为隧道源接口,选择对端设备与公网相连的物理接口作为隧道目的接口。
3、Tunnel接口的IP地址作用是什么?隧道两端的IP地址是否必须配置成同一网段?
Tunnel的IP地址只是为了使Tunnel接口UP起来,属于必配参数,但是该IP地址并不参与报文封装。
在使用静态路由将流量引导到GRE隧道的场景中,隧道两端的Tunnel接口IP地址可以不在同一个网段。但在OSPF动态路由的GRE隧道应用场景中,隧道两端的Tunnel接口就必须在同一个网段,这是因为不在同一网段时,会导致Tunnel接口建立邻接关系失败,影响到路由学习。
4、Tunnel接口(GRE接口)是否一定要加入安全区域?
Tunnel接口必须要加入到安全区域,一般是DMZ域,因为GRE中报文所经过的安全域间与Tunnel接口所在的安全域有关联。
5、多个Tunnel接口(GRE接口)是否可以使用同一个源IP地址?
多个Tunnel接口不能使用同一个源IP地址。
HCIE-Security Day20:GRE协议:实验(一)配置基于静态路由的GRE隧道相关推荐
- 计算机网络实验二 路由器的配置和静态路由
实验二 路由器的配置和静态路由 一.实验目的: 掌握设备系统参数的配置方法 掌握配置路由器接口IP地址的方法 掌握测试两台直连路由器连通性的方法 掌握静态路由以及静态备份路由的配置方法 掌握测试静态路 ...
- 实验 – 配置 IPv4 静态路由和默认路由(教师版)步骤在末尾,报告结束以后(二十步解决,不用听课,闭着眼照着步骤做就没问题)
实验 – 配置 IPv4 静态路由和默认路由(教师版) 教师注意事项:红色字体或灰色突显的部分表示仅显示在教师副本上的文本. 拓扑 地址分配表 设备 接口 IP 地址 子网掩码 默认网关 R1 G0/ ...
- 华为实验 | 配置 IPv4 静态路由基本功能
先看看本文目录: 规格 组网需求 操作步骤 步骤1 RouterA的配置 步骤2 RouterB的配置 步骤3 RouterC的配置 步骤4 配置主机 步骤5 配置交换机 步骤6 验证配置结果 配置注 ...
- 静态路由实验 +http+dns_华为静态路由配置实验
本试验主要实验静态路由的三个主要特性 1.单向性 仅为数据提供沿着下一跳的方向进行路由,不提供反向路由.如果要使源节点域目标网络进行双向通信,必须同时配置回程静态路由 2.接力性 如果某条静态路由中间 ...
- 思科模拟器,计算机网络实验三之:静态路由配置
静态路由配置是基于相对简单的的网络使用的,如果网络较复杂,则使用起来会很复杂,届时应选择动态路由配置 [实验名称]静态路由配置. [实验目的]理解静态路由的工作原理,掌握如何配置静态路由. [背景描述 ...
- 实验二(1)-配置 IPv4 静态路由和默认路由
目录 一.拓扑 二.地址分配 三.目标 第 1 部分:设置拓扑并初始化设备 第 2 部分:配置基本设备设置并验证连接 第 3 部分:配置静态路由 配置递归静态路由. 配置直连静态路由. 配置和删除静态 ...
- 实验八 路由器静态路由配置
实验八 路由器静态路由配置 一.实验目标 掌握静态路由的配置方法和技巧: 掌握通过静态路由方式实现网络的连通性: 熟悉广域网线缆的链接方式: 二.实验背景 学校有新旧两个校区,每个校区是一个独立的局域 ...
- linux配置ipv6静态路由,IPv6静态路由配置
IPv6静态路由 命令: R1(config)#ipv6 unicast-routing //启用IPv6路由 R1(config-if)#ipv6 address 2010:1111::1/64 / ...
- 3分钟配置好静态路由
实验目的 1. 了解静态路由的原理 2. 掌握静态路由的配置 实验任务 1. 任务1 2. 任务2 任务1:实验拓扑 任务1:实验需求 1. 根据实验拓扑图,完成设备的基本配置: 2. 在路由器R1. ...
- 路由器配置和静态路由
路由器配置和静态路由 作者意图: 计算机网络第一次碰到让我头疼的实验,因为课程进度和实验进度不一样,特意记录下来,用于以后的学习!只是简要的说一下实验报告中的思考题,能做出来,但底层原理还是有些不懂, ...
最新文章
- 【设计模式】从设计到模式
- 面向对象3(final、static、instanceof、向上/向下转型、初始化次序)
- 如何正确地修改.data和.item文件的‘utf-8’格式
- 金融业对区块链必须有足够认识
- netty系列之:使用netty搭建websocket客户端
- Update与JOIN使用
- 【简单粗暴】如何给网页嵌入视频
- php strpbrk,PHP 字符串
- 蘑菇街移动端混合开发体系的研发与实践
- K进制 nyoj882
- Intel APIC Configuration
- 硅谷课堂 13_公众号点播课程和直播管理
- python画创意图形_前端图形——绘图、截图、合成动图
- 云计算实验(二)Hadoop 练习
- 批量修改RTX腾讯通用户密码
- 牛市股票还会亏钱?——外观模式。
- 是时候和else关键字说再见了……
- Matlab:数学之美--绘制分形图形
- Web组态编辑器赋能智慧石油生产储运2D可视化
- 动真格了!苹果下架超5万款游戏App, 辛好我有企业签