HCIE-Security Day25:DSPN+NHRP+Mgre:实验(四)配置shortcut方式DSPN(OSPF路由协议)
实验:配置shortcut方式DSPN(OSPF路由协议)
需求和拓扑
某大型企业有总部(Hub)和多个分支(Spoke1、Spoke2……,举例中仅使用两个分支),分布在不同地域,总部和分支的子网环境会经常出现变动。分支采用动态地址接入公网。企业现网网络规划使用OSPF路由协议。
现在用户希望能够实现分支之间的PN互联。
操作步骤
1、配置接口地址划分安全区域
2、配置安全策略
//f1f2f3
security-policyrule name 1source-zone dmzsource-zone trustdestination-zone dmzdestination-zone trustaction permitrule name 2source-zone localsource-zone untrustdestination-zone localdestination-zone untrustservice greservice ospfaction permit
3、配置公网动态路由确保公网路由可达
//f1
ospf 1area 0.0.0.0network 1.1.1.10 0.0.0.0
//f2
ospf 1area 0.0.0.0network 1.1.2.10 0.0.0.0
//f3
ospf 1area 0.0.0.0network 1.1.3.10 0.0.0.0
//r
ospf 1 area 0.0.0.0 network 1.1.1.1 0.0.0.0 network 1.1.2.1 0.0.0.0 network 1.1.3.1 0.0.0.0
r1上 检查ospf配置
<r>dis ospf peer briOSPF Process 1 with Router ID 1.1.1.1Peer Statistic Information----------------------------------------------------------------------------Area Id Interface Neighbor id State 0.0.0.0 GigabitEthernet0/0/0 172.16.1.1 Full 0.0.0.0 GigabitEthernet0/0/1 172.16.1.2 Full 0.0.0.0 GigabitEthernet0/0/2 172.16.1.3 Full --------------------------------------------------------
4、 配置私网ospf
//f1(hub)
ospf 2area 0.0.0.0network 172.16.1.1 0.0.0.0network 192.168.0.0 0.0.0.255
//f2(spoke)
ospf 2area 0.0.0.0network 172.16.1.2 0.0.0.0network 192.168.1.0 0.0.0.255
//f3(spoke)
ospf 2area 0.0.0.0network 172.16.1.3 0.0.0.0network 192.168.2.0 0.0.0.255
注意要与公网ospf进程不要冲突,另外宣告的网段是私网网络和隧道接口地址。
注意如果没有配置hub的nhrp entry multicast dynamic则hub将不能发送组播报文从而无法建立ospf邻居关系。所以此时还不能建立ospf邻居关系。
5、配置tunnel隧道
//f1
interface Tunnel0ip address 172.16.1.1 255.255.255.0tunnel-protocol gre p2mpsource GigabitEthernet1/0/1ospf network-type p2mp//相比非shortcut设置ospf网络类型为p2mpnhrp entry multicast dynamic//配置将从Tunnel0接口注册的分支节点动态加入到总部的NHRP组播成员表。nhrp redirect//配置nhrp 重定向
//f2
interface Tunnel0ip address 172.16.1.2 255.255.255.0tunnel-protocol gre p2mp//配置mgresource GigabitEthernet1/0/1nhrp entry 172.16.1.1 1.1.1.10 register//手动触发nhrp注册ospf network-type p2mp//相比非shortcut设置ospf网络类型为p2mpnhrp shortcut//配置nhrp shortcut方式
//f3
interface Tunnel0ip address 172.16.1.3 255.255.255.0tunnel-protocol gre p2mpsource GigabitEthernet1/0/1nhrp entry 172.16.1.1 1.1.1.10 registerospf network-type p2mp//相比非shortcut设置ospf网络类型为p2mpnhrp shortcut//配置nhrp shortcut方式
在dspn中部署动态路由协议后,分支或总部需要与自身组播列表中的成员建立邻居关系,并学习彼此的路由信息,以便在对端节点发送过来组播报文时,本端节点能够对报文进行复制并根据组播成员表进行发送,进而实现节点间报文的交互,因此,在分支与总部上需要配置各自的nhrp组播成员列表。
我们在这里将ospf进程2的网络类型配置成了p2mp,在该类型的网络中,除了hello报文是组播发送外,其他报文比如dd、lsr、lsu、lsack都是以单播形式发送的。在broadcast中,hello、lsu、lsack都是组播发送的,其他的比如dd、lsr是单播发送的。
检查ospf邻居建立情况
[f1]dis ospf 2 peer bri
2022-03-05 14:05:34.230 OSPF Process 2 with Router ID 192.168.0.254Peer Statistic Information----------------------------------------------------------------------------Area Id Interface Neighbor id State 0.0.0.0 Tunnel0 172.16.1.2 Full 0.0.0.0 Tunnel0 172.16.1.3 Full ----------------------------------------------------------------------------Total Peer(s): 2
可以看到f1是和f2、f3建立了ospf的full的邻接关系的,但是f2和f3之间会不会建立ospf的邻接关系呢?单纯在p2mp网络中,完全是没有问题的。但是我们看一下就会知道并不是这样的。
[f3]dis ospf 2 peer bri
2022-03-07 15:43:46.010 OSPF Process 2 with Router ID 172.16.1.3Peer Statistic Information----------------------------------------------------------------------------Area Id Interface Neighbor id State 0.0.0.0 Tunnel0 172.16.1.1 Full ----------------------------------------------------------------------------Total Peer(s): 1
发现只和f1即hub建立ospf邻接关系,甚至和其他spoke都不会建立邻居关系,为什么呢?ospf2是封装在gre中的,外部是单播报文。
为什么hub可以和spoke互发呢?因为spoke上面配置了hub的静态的nhrp,并触发了向hub的注册报文,使得hub上面产生spoke的nhrp映射。
<f1>dis nhrp peer all
2022-03-08 01:10:38.060
------------------------------------------------------------------------------
Protocol-addr Mask NBMA-addr NextHop-addr Type Flag
--------------------------------------------------------------------------------
172.16.1.2 32 1.1.2.10 172.16.1.2 registered up|unique
--------------------------------------------------------------------------------
Tunnel interface: Tunnel0
Created time : 00:22:39
Expire time : 01:37:21
HostName : f2
HostEsn : 7979408E73D1387FA4E0FF91F63F0F24
--------------------------------------------------------------------------------
Protocol-addr Mask NBMA-addr NextHop-addr Type Flag
--------------------------------------------------------------------------------
172.16.1.3 32 1.1.3.10 172.16.1.3 registered up|unique
--------------------------------------------------------------------------------
Tunnel interface: Tunnel0
Created time : 00:22:38
Expire time : 01:37:22
HostName : f3
HostEsn : 35D473AA24273895AB73F571D68B7A61
Number of nhrp peers: 2
验证和分析
1、抓包检查
可以看到手动使能了nhrp注册后,注册报文通过公网发给hub,给的隧道地址和公网地址的映射关系。
但是hub和spoke之间是分别建立邻居关系的,不会存在spoke和spoke建立邻居的情况。这是因为我们的ospf是p2mp类型的。
<f1>dis ospf 2 peer bri
2022-03-07 15:38:18.490 OSPF Process 2 with Router ID 172.16.1.1Peer Statistic Information----------------------------------------------------------------------------Area Id Interface Neighbor id State 0.0.0.0 Tunnel0 172.16.1.2 Full 0.0.0.0 Tunnel0 172.16.1.3 Full ----------------------------------------------------------------------------Total Peer(s): 2[f2]dis ospf 2 peer bri
2022-03-07 15:37:55.720 OSPF Process 2 with Router ID 172.16.1.2Peer Statistic Information----------------------------------------------------------------------------Area Id Interface Neighbor id State 0.0.0.0 Tunnel0 172.16.1.1 Full ----------------------------------------------------------------------------Total Peer(s): 1
实验拓扑和完整配置已打包,回复dspn4获得。
shortcut方式的基本原理
dspn的shortcut方式建立同样分为3步。
1、建立spoke与hub之间的mgre隧道
目的是打通分支到分支报文转发的通道,使得一端分支的报文可以借助hub转发到另一端分支。dspn在spoke与hub之间建立的mgre隧道是一种静态隧道,无论spoke与hub间有没有流量经过,该隧道一直存在。
1 spoke向hub注册
2 hub向spoke注册应答
2、分支间路由学习
目的是生成一端分支到另一端分支的路由。
在shortcut方式下,源分支到目的分支子网的路由下一跳为总部的tunnel地址,实现所有访问目的分支的流量全部指向总部hub。分支间不需要相互学习路由,通过总部对分支路由汇聚后进行通告,该路由学习方式适用于哪些网络规模大、分支较多的大型网络。
3、建立spoke与spoke之间的mgre隧道
目的是建立用于分支间直接通信的通道。当一个分支向另一个分支转发数据报文时,如果源spoke找不到目的spoke的公网地址,则会触发dspn建立spoke与spoke之间的mgre隧道。这是一种动态隧道,靠流量保活。
在shortcut方式下,所有spoke的路由下一跳都是hub的tunnel地址,源spoke无法学习到目的spoke的tunnel地址,因此,源spoke只能根据报文的目的地址来查找目的spoke的公网地址,生成目的spoke的子网地址与公网地址的nhrp映射表。
shortcut方式完整过程
当Spoke1下的用户首次访问Spoke2下的用户时,将触发Spoke1与Spoke2之间建立动态mGRE隧道,隧道建立过程如下:
Spoke1收到其下用户发往Spoke2下用户的数据报文后,根据报文目的地址(192.168.2.0)在路由表中找到下一跳172.16.1.1(Hub的Tunnel地址),并在NHRP映射表中找到172.16.1.1对应的公网地址1.1.1.10(Hub的公网地址),就将数据报文转发给Hub。
<f2>dis ip routing-table protocol ospf
2022-03-08 06:33:14.510
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPFDestinations : 6 Routes : 6 OSPF routing table status : <Active>Destinations : 6 Routes : 6Destination/Mask Proto Pre Cost Flags NextHop Interface1.1.1.0/24 OSPF 10 2 D 1.1.2.1 GigabitEthernet
1/0/11.1.3.0/24 OSPF 10 2 D 1.1.2.1 GigabitEthernet
1/0/1172.16.1.1/32 OSPF 10 1562 D 172.16.1.1 Tunnel0172.16.1.3/32 OSPF 10 3124 D 172.16.1.1 Tunnel0192.168.0.0/24 OSPF 10 1563 D 172.16.1.1 Tunnel0192.168.2.0/24 OSPF 10 3125 D 172.16.1.1 Tunnel0OSPF routing table status : <Inactive>Destinations : 0 Routes : 0
<f2>dis nhrp peer all
2022-03-08 06:35:22.300
--------------------------------------------------------------------------------
--
Protocol-addr Mask NBMA-addr NextHop-addr Type Flag --------------------------------------------------------------------------------
--
172.16.1.1 32 1.1.1.10 172.16.1.1 hub up --------------------------------------------------------------------------------
--
Tunnel interface: Tunnel0
Created time : 00:05:02
Expire time : --
HostName : f1
HostEsn : 4E75B8EA2D623566B899A81A15F76FF0
- Hub收到Spoke1转发的数据报文后:
- 将此报文通过Hub与Spoke2间的mGRE隧道转发给Spoke2。
- 检查发现接收和发送数据报文的Tunnel接口属于同一个NHRP域,就构建并向Spoke1发送NHRP重定向报文(携带Hub的Tunnel地址和公网地址,以及需要解析的数据报文的目的地址192.168.2.0)。
Spoke1收到NHRP重定向报文后,构建并向Hub发送NHRP地址解析请求报文(携带Spoke1的Tunnel地址172.16.1.2和公网地址1.1.2.10,以及需要解析的数据报文的目的地址192.168.2.0)。
Hub收到NHRP地址解析请求报文后转发给Spoke2处理。
- Spoke2收到NHRP地址解析请求报文后:
- 从NHRP地址解析请求中提取Spoke1的Tunnel地址和公网地址,并将该信息更新到自己的NHRP映射表中
<f3>dis nhrp peer all 2022-03-08 06:40:27.130 -------------------------------------------------------------------------------- -- Protocol-addr Mask NBMA-addr NextHop-addr Type Flag -------------------------------------------------------------------------------- -- 172.16.1.1 32 1.1.1.10 172.16.1.1 hub up -------------------------------------------------------------------------------- -- Tunnel interface: Tunnel0 Created time : 00:10:12 Expire time : -- HostName : f1 HostEsn : 4E75B8EA2D623566B899A81A15F76FF0 -------------------------------------------------------------------------------- -- Protocol-addr Mask NBMA-addr NextHop-addr Type Flag -------------------------------------------------------------------------------- -- 172.16.1.2 32 1.1.2.10 172.16.1.2 remote up -------------------------------------------------------------------------------- -- Tunnel interface: Tunnel0 Created time : 00:06:16 Expire time : 01:53:44 HostName : f2 HostEsn : 5F538E912C4B33C3B546C7DBC1EDD435
- 构建并向Spoke1发送NHRP地址解析应答报文(携带Spoke2的子网地址192.168.2.0、Spoke2的Tunnel地址172.16.1.3和公网地址1.1.3.10)。
- 从NHRP地址解析请求中提取Spoke1的Tunnel地址和公网地址,并将该信息更新到自己的NHRP映射表中
Spoke1收到NHRP地址解析应答报文后,从应答报文中提取Spoke2的子网地址和公网地址,更新到自己的NHRP映射表中,Spoke1与Spoke2之间的动态mGRE隧道随即建立。
<f2>dis nhrp peer allProtocol-addr Mask NBMA-addr NextHop-addr Type Flag 192.168.2.1 32 1.1.3.10 172.16.1.3 remote-network up Tunnel interface: Tunnel0 Created time : 00:01:11 Expire time : 01:58:49 HostName : f3 HostEsn : DF530E673A753DFC81D7B3672C4AD3E2
当Spoke1再次收到其下用户发送给Spoke2的数据报文时,Spoke1根据报文目的地址(192.168.2.0)查找NHRP映射表,找到Spoke2的公网地址1.1.2.10,即可根据公网地址1.1.2.10将此报文进行mGRE封装后直接发送给Spoke2,不再经过总部Hub。
当Spoke2下的用户首次访问Spoke1下的用户时,也将触发Spoke2与Spoke1之间建立动态mGRE隧道,其过程类似Spoke1。
比较非shortcut方式下的完整过程
当Spoke1下的用户首次访问Spoke2下的用户时,将触发Spoke1与Spoke2之间建立动态mGRE隧道,隧道建立过程如下:
- Spoke1收到其下用户发往Spoke2的数据报文后:
- 根据报文目的地址(192.168.2.0)在路由表中找到下一跳10.1.1.2(Spoke2的Tunnel地址),但在NHRP映射表中没有查找10.1.1.2对应的公网地址,就默认将该数据报文直接转发给Hub。
[f2]dis ip routing-table protocol ospf 2022-03-08 06:15:43.870 Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Public routing table : OSPFDestinations : 4 Routes : 4 OSPF routing table status : <Active>Destinations : 4 Routes : 4Destination/Mask Proto Pre Cost Flags NextHop Interface1.1.1.0/24 OSPF 10 2 D 1.1.2.1 GigabitEthernet 1/0/11.1.3.0/24 OSPF 10 2 D 1.1.2.1 GigabitEthernet 1/0/1192.168.0.0/24 OSPF 10 1563 D 172.16.1.1 Tunnel0192.168.2.0/24 OSPF 10 1563 D 172.16.1.3 Tunnel0OSPF routing table status : <Inactive>Destinations : 0 Routes : 0
[f2]dis nhrp peer all 2022-03-08 06:18:18.270 -------------------------------------------------------------------------------- -- Protocol-addr Mask NBMA-addr NextHop-addr Type Flag -------------------------------------------------------------------------------- -- 172.16.1.1 32 1.1.1.10 172.16.1.1 hub up -------------------------------------------------------------------------------- -- Tunnel interface: Tunnel0 Created time : 04:58:30 Expire time : -- HostName : f1 HostEsn : 728171E1AC4B3828AB4BBE44CD166209Number of nhrp peers: 1
- 构建并向Hub发送NHRP地址解析请求报文,请求10.1.1.2对应的公网地址。
- 根据报文目的地址(192.168.2.0)在路由表中找到下一跳10.1.1.2(Spoke2的Tunnel地址),但在NHRP映射表中没有查找10.1.1.2对应的公网地址,就默认将该数据报文直接转发给Hub。
Hub收到Spoke1发送的数据报文和NHRP地址解析请求报文后,将报文通过Hub与Spoke2间的mGRE隧道转发给Spoke2。
Spoke2收到NHRP地址解析请求报文后:
- 从NHRP地址解析请求报文中提取Spoke1的Tunnel地址和公网地址,并将该信息更新到自己的NHRP映射表中
<f3>dis nhrp peer all 2022-03-08 06:23:51.900 -------------------------------------------------------------------------------- -- Protocol-addr Mask NBMA-addr NextHop-addr Type Flag -------------------------------------------------------------------------------- -- 172.16.1.1 32 1.1.1.10 172.16.1.1 hub up -------------------------------------------------------------------------------- -- Tunnel interface: Tunnel0 Created time : 05:03:59 Expire time : -- HostName : f1 HostEsn : 728171E1AC4B3828AB4BBE44CD166209 -------------------------------------------------------------------------------- -- Protocol-addr Mask NBMA-addr NextHop-addr Type Flag -------------------------------------------------------------------------------- -- 172.16.1.2 32 1.1.2.10 172.16.1.2 remote up -------------------------------------------------------------------------------- -- Tunnel interface: Tunnel0 Created time : 00:04:31 Expire time : 01:55:29 HostName : f2 HostEsn : 4E9D2AA582743BDE81C3E4D9981D64BA -------------------------------------------------------------------------------- -- Protocol-addr Mask NBMA-addr NextHop-addr Type Flag -------------------------------------------------------------------------------- -- 172.16.1.3 32 1.1.3.10 172.16.1.3 local up -------------------------------------------------------------------------------- -- Tunnel interface: Tunnel0 Created time : 00:04:31 Expire time : 01:55:29 HostName : f3 HostEsn : 496CB74FEC103B219C4704B7147AA738Number of nhrp peers: 3
- 构建并向Spoke1发送NHRP地址解析应答报文(携带Spoke2的Tunnel地址172.16.1.3和公网地址1.1.2.10)。
- 从NHRP地址解析请求报文中提取Spoke1的Tunnel地址和公网地址,并将该信息更新到自己的NHRP映射表中
Spoke1收到NHRP地址解析应答报文后,从应答报文中提取Spoke2的Tunnel地址和公网地址,更新到自己的NHRP映射表中,Spoke1与Spoke2之间的动态mGRE隧道随即建立。
[f2]dis nhrp peer all 2022-03-08 06:26:36.560 -------------------------------------------------------------------------------- -- Protocol-addr Mask NBMA-addr NextHop-addr Type Flag -------------------------------------------------------------------------------- -- 172.16.1.1 32 1.1.1.10 172.16.1.1 hub up -------------------------------------------------------------------------------- -- Tunnel interface: Tunnel0 Created time : 05:06:48 Expire time : -- HostName : f1 HostEsn : 728171E1AC4B3828AB4BBE44CD166209 -------------------------------------------------------------------------------- -- Protocol-addr Mask NBMA-addr NextHop-addr Type Flag -------------------------------------------------------------------------------- -- 172.16.1.3 32 1.1.3.10 172.16.1.3 remote up -------------------------------------------------------------------------------- -- Tunnel interface: Tunnel0 Created time : 00:07:16 Expire time : 01:52:44 HostName : f3 HostEsn : 496CB74FEC103B219C4704B7147AA738Number of nhrp peers: 2
当Spoke1再次收到其下用户发送给Spoke2的数据报文时,Spoke1根据报文目的地址(192.168.2.0)在路由表中找到下一跳172.16.1.3,再根据172.16.1.3在NHRP映射表中找到公网地址1.1.3.10,即可按照公网地址1.1.3.10将此报文进行mGRE封装后直接发送给Spoke2,不再经过总部Hub。
对比可以看到,shortcut方式下,spoke的nhrp列表中会产生一个remote-network类型的映射关系,对应了远端spoke下的私有子网和公网地址的对应关系。后续报文的转发直接查nhrp得到封装的公网地址,而在非shortcut方式下,spoke的nhrp列表没有这样的映射关系,而是使用了远端spoke的隧道地址和公网地址的对应关系,首先是查找路由表得到远端spoke下的私有子网的下一跳地址是远端spoke的隧道地址,再根据这个隧道地址去找nhrp得到封装的公网地址。
HCIE-Security Day25:DSPN+NHRP+Mgre:实验(四)配置shortcut方式DSPN(OSPF路由协议)相关推荐
- 实验四 配置默认路由
要求: 配置静态路由,实现全网互通. 基础配置 1. 设置路由器R1和R2的IP地址: 2. 为PC1-PC3设置IP地址,并将网关指为R1的F0/0的地址1.251,将PC4的网关设为3.1. 3. ...
- 实验四 恶意代码技术
学 号201421460014 中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告 实验四 恶意代码技术 学 ...
- 实验四 恶意代码技术
实验报告 四 学 号 中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告 实验四 恶意代码技术 学生姓名 ...
- 实验四 恶意代码
中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告 实验四 恶意代码技术 学生姓名 冷其航 年级 14级 区队 ...
- 网络对抗技术—-网络对抗实验四
学 号:201421430008 中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告 实验四 恶意代码技术 ...
- 实验四恶意代码分析技术 201421430029
学 号:201421430029 中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告 实验四 恶意代码技术 ...
- 网络对抗技术 实验四
学号:201521430027 中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告 实验四 恶意代码技术 学生姓 ...
- 网络对抗技术——实验四:恶意代码技术
中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告 实验四 恶意代码技术 学生姓名 王天宇 年级 2015级 ...
- 网络对抗技术_实验四_恶意代码技术
中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告 实验四 恶意代码技术 学生姓名 韩磊 年级 2014 区队 ...
- 实验四——恶意代码技术
学 号 201421430035 中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告 实验四 恶意代码技术 ...
最新文章
- [KubeCon+CloudNativeCon China 2018] 在Kubernetes上运行区块链服务(BaaS)
- L1-046. 整除光棍(模拟除法)
- linux内核创建ubi,UBI文件系统制作和挂载
- 短时傅里叶分析:spectrogram函数
- Android中使用Handler(消息机制)造成内存泄露的分析和解决
- 机器学习实验中的编程技术(part2)--numpy
- 小程序引用其他页面js_来聊聊小程序页面之间如何通信
- python mac读取 文件属性_从Python获取和设置mac文件和文件夹查找器标签
- 升级浏览器_星愿浏览器升级至6.3.2000.2001
- ThreadLocal 简介 案例 源码分析 MD
- springMVC中数据流解析与装载
- window.location.href 跳转失败
- poj 2728 Desert King 01分数规划
- 2019软科【世界一流计算机学科排名】公布!
- Matrix Factorization
- mkisofs命令制作光盘ISO
- xgboost 怎么读_你真的会读书了吗?五本书让你会读书,读好书,好读书!
- 自然人股东分红必须要缴纳20%个税吗?有三种真不用
- 震惊!没想到你居然是这样的for循环(UC打钱!)
- foo/bar/baz/qux