HCIP的学习(4)

GRE和MGRE

VPN---虚拟专用网络。
	指依靠ISP(运营商)或其他公有网络基础设施上构建的专用的安全数据通信网络。该网络是属于逻辑上的。

核心机制---隧道机制(封装技术)

GRE---通用路由封装

三层隧道技术,并且是属于点到点的隧道

[r1]interface Tunnel 0/0/0  ---创建一个虚拟隧道接口(接口序号只能变最后一个数字,范围:0/0/0-0/0/511)
[r1-Tunnel0/0/0]ip address 192.168.3.1 24
[r1-Tunnel0/0/0]tunnel-protocol gre   ---定义隧道所使用的协议
[r1-Tunnel0/0/0]source 12.0.0.1   ---定义封装中的源地址信息
[r1-Tunnel0/0/0]destination 23.0.0.3  ---定义封装中的目的地址信息

r1配完,r3也要1配置

测试隧道是否成功建立:
[r1]ping 192.168.3.3     ----ping对方的隧道地址
  PING 192.168.3.3: 56  data bytes, press CTRL_C to break
    Reply from 192.168.3.3: bytes=56 Sequence=1 ttl=255 time=20 ms
    Reply from 192.168.3.3: bytes=56 Sequence=2 ttl=255 time=20 ms
    Reply from 192.168.3.3: bytes=56 Sequence=3 ttl=255 time=30 ms
    Reply from 192.168.3.3: bytes=56 Sequence=4 ttl=255 time=30 ms
    Reply from 192.168.3.3: bytes=56 Sequence=5 ttl=255 time=30 ms

一定要添加私网路由信息,将其导入到隧道接口

[r1]ip route-static 192.168.2.0 24 192.168.3.3
[r3]ip route-static 192.168.1.0 24 192.168.3.1

测试:
[r1]ping -a 192.168.1.1 192.168.2.1   ---要使用-a规定源IP,不然路由器会使用12.0.0.1去测试

**扩展:**接收方在接收到报文时看到封装后的目的IP是自己的,往常逻辑会直接对三层进行解封装,但是GRE不同,接口看到报文的协议号为47(GRE协议号:47),就会直接将报文完整的交给隧道接口,因为它本身接口没有开启GRE协议,就算解封装了不认识GRE也会直接将报文丢了

keepalive机制

keepalive机制是用来检测隧道对端是否可达。(一般一端开启即可,因为发送和回复的报文都是keepalive报文,
内容都是一样的)
当某端开启该机制后,会周期性发送keepalive报文,对端收到后会回复keepalive报文。当一定次数未收到回复
报文,则认为该隧道不可用。(默认3次,每一次发送时间间隔为5秒)


[r1-Tunnel0/0/0]keepalive 
[r1-Tunnel0/0/0]keepalive period 10 retry-times 5   ---用来更改次数与时间间隔(5次,间隔10秒)
	period:设置发送周期
	retry-times:重传次数

MGRE---多点通用路由封装

NHRP---下一跳解析协议

MGRE环境是属于P2MP网络,可以近似的看做是NBMA网络。但是其本质还是点到点。
	
Hub and Spoke架构---中心到站点架构
	
在私网环境中,选择一个出口物理IP不变的设备作为NHRP的中心节点(NHS)。这样,剩下的分支就
可以知晓中心的隧道IP和物理IP地址。然后NHRP协议要求所有分支将自己的物理IP和隧道IP的对应关系
发送给NHS(一旦发生改变就会发送)。这样NHS就拥有所有分支的地址映射关系,并记录在本地。
在发送数据报文之前,查询NHS决定封装数据。
中心:
[r1]interface Tunnel0/0/0
[r1-Tunnel0/0/0]ip address 192.168.5.1 255.255.255.0 
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp  ---修改接口的封装协议为MGRE
[r1-Tunnel0/0/0]source 15.0.0.1

[r1-Tunnel0/0/0]nhrp network-id 1    --默认值为0(范围:1-4294967295),改不改都行,要改所有的设备都要改


分支:
[r2] Tunnel0/0/0
[r2-Tunnel0/0/0]ip address 192.168.5.2 255.255.255.0 
[r2-Tunnel0/0/0]tunnel-protocol gre p2mp
[r2-Tunnel0/0/0]source GigabitEthernet0/0/0   ---规定封装源为GE0/0/0接口的IP地址
[r2-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 register   --第一个IP为隧道地址,第二个为物理地址(都是中心的)
 1、告知本端,hub节点的隧道IP与物理IP的对应关系;
 2、向hub节点注册本地的隧道IP与物理IP的对应关系;
 
 
 
补全路由信息:
[r1]ip route-static 192.168.2.0 24 192.168.5.2
[r1]ip route-static 192.168.3.0 24 192.168.5.3

[r2]ip route-static 192.168.1.0 24 192.168.5.1  ----下一跳均为Hub节点
[r2]ip route-static 192.168.3.0 24 192.168.5.1

[r3]ip route-static 192.168.1.0 24 192.168.5.1
[r3]ip route-static 192.168.2.0 24 192.168.5.1

DSVPN(动态智能VPN技术):可以随时增加和删除虚拟隧道专线和节点(下面两者相加组成)

  • MGRE

  • NHRP

    shortcut方式:分支路由汇聚到总部,每一个分支编写的路由信息的下一跳均为hub节点。

    非shortcut方式:非便捷方式,分支之间相互学习路由。下一跳分别是分支的隧道IP地址。而非hub节点。

扩展:

Hub - Spoke:NHRP映射表静态关系

Spoke - Spoke:NHRP映射表动态关系

在非shortcut方式下,NHRP映射表动态关系:7200S(2小时)老化时间

非shortcut

解释:(图中的数字为报文顺序)

  1. 首先,在r2里有着3.0网段下一条对应虚拟网段接口5.3,虚拟网段接口5.1对应真实接口吓一跳15.0.0.1,r3中有着2.0网段下一条对应虚拟网段接口5.2,虚拟网段接口5.1对应真实接口吓一跳15.0.0.1
  2. r2要发送信息给3.0网段时,知道要发送给虚拟网段接口5.3,但NHRP表中没有对应虚拟网段接口5.3的真实端口IP,发现缺少(有误就封装中心的对应真实接口,让中心转发)。而此时有ICMP数据需要发送(ICMP数据发送优先级比填补缺少对应高),所以先发送ICMP数据给r1(hub),随后发送NHRP报文,问r1要r3的地址信息。
  3. r1先接收到ICMP报文,查看是给r3的,就进行转发给r3,随后接收到NHRP报文,虽然r1有r3的地址信息,但r1不会直接回复,会转发给r3(征求r3意见)
  4. r3先接收到ICMP报文,正常回复ICMP报文,随后接收到NHRP请求报文,r3直接发送给r2(因为NHRP请求报文中有原IP信息:25.0.0.2),虽然NHRP请求报文中有r2的NHRP映射关系,但r3并不会保存下来,因为在r3看来并不是我主动要的,优先度最低,不可信。只有自己要的才是可信的,但r2接收到r3发送的NHRP应答报文,会直接将r3虚拟网段接口5.3的对应真实接口35.0.0.3写进NHRP映射表中,因为这是r2主动请求的。
  5. 此时,r1将r3发送的ICMP报文转发给r2,r2要再发送ICMP报文就直接发送给r3
  6. 而r3要去回复ICMP报文报文时,发现NHRP表中没有对应虚拟网段接口5.2的真实端口IP,他也要发送NHRP请求报文给r1,然后r1转发给r2,r2再直接发送NHRP应答报文给r3,当r3将虚拟网段接口5.2的对应真实接口25.0.0.2写进NHRP映射表中时,两者的虚拟隧道就算建立起来了。
  7. 当r2与r3两者都不发消息,不发消息超过7200S(2小时)老化时间,这条隧道就会被拆除。

shortcut

解释:(图中的数字为报文顺序)

  1. r2要发送ICMP报文给r3,先发送给r1(因为是shortcut方式,所以去往3.0网段下一跳写的就是5.1,5.1在NHRP映射表中有,所以在r2看来没有错误),r1接收后将ICMP报文转发给r3,再给r2发送重定向报文(原因和携带内容下面配置后面有写)。
  2. r2接收到重定向报文,像r1发送NHRP请求报文,r1再转发给r3,r3接收到NHRP请求报文,就直接给r2发送NHRP应答报文。
  3. 有区别的是:r3接收到第一次r1转发的ICMP报文,会给r1发送ICMP回复报文,r1接收后,也会转发给r2,但也会给r3发送一个重定向报文(原理与上面一样),r3也会给r1发送一个NHRP请求报文,与上面一样,最后r2与r3都NHRP映射表数据都改了,就建立了一个虚拟隧道
在shortcut方式下,如果需要分支之间独立建立隧道,则需要添加如下配置:

[r1-Tunnel0/0/0]nhrp redirect   ---hub节点配置,开启重定向功能(r1发现数据从r2发送进入Tunnel0/0/0,
又从Tunnel0/0/0出去转发给r3,发现是次优路径,才会给r2发送重定向报文,报文里面有3.0网段对应的
真实端口IP为192.168.5.3)
[r2-Tunnel0/0/0]nhrp shortcut    ---在spoke节点配置,使能shortcut功能,未开启该功能,则代表分支站点
无法响应重定向报文。(如果不开启,r2收到r1的重定向报文,会认为自己可以正常收发消息(去3.0网段下
一跳为5.1,5.1又映射为15.0.0.1),没有错误,不需要更改,直接将重定向报文丢弃)
[r3-Tunnel0/0/0]nhrp shortcut

以非shortcut方式进行DSVPN组网时,分支站点可以自主发现NHRP映射表中存在关系缺少的现象,从而主动向hub节点申请通讯对端的映射关系。而在shortcut组网环境下,分支站点无法自主发现,需要hub节点通过重定向报文参与到分支之间的隧道建立过程

相关推荐
云起无垠8 分钟前
第74期 | GPTSecurity周报
人工智能·安全·网络安全
网安-轩逸33 分钟前
【网络安全】身份认证
网络·安全·web安全
石牌桥网管34 分钟前
OpenWrt广播DNS到客户端
网络·openwrt
想成为高手4991 小时前
网络基础概念与应用:深入理解计算机网络
网络·计算机网络
专注VB编程开发20年2 小时前
WebSocket和HTTP协议的性能比较与选择
websocket·网络协议·http
网络安全-杰克2 小时前
关于网络安全里蜜罐的详细介绍
安全·web安全·php
Aiden_SHU2 小时前
Wireshark中的length栏位
服务器·网络·wireshark
dal118网工任子仪3 小时前
web安全漏洞之ssrf入门
笔记·学习·计算机网络·网络安全
叫我龙翔3 小时前
【计网】实现reactor反应堆模型 --- 多线程方案优化 ,OTOL方案
linux·运维·网络
网络安全工程师老王3 小时前
web3+web2安全/前端/钱包/合约测试思路——尝试前端绕过直接上链寻找漏洞
安全·web安全·网络安全·信息安全·web3