DMV.P.N学习总结

Stella981
• 阅读 895

动态多点V.P.N集成了动态**的动态简化多线**配置和GRE over IPSEC 的多协议tunnel传输功能,形成了HUB-SPOKER的网络架构模式,既可以实现中心节点一次配置零调整,分支节点无限制接入,又能实现动态协议的部署。
DMV.P.N只能部署在Cisco的路由器上,同时还需要注意版本支持。
实现DMV.P.N功能的四大技术组件分别是MGRE(多点隧道)、NHRP(吓一跳解析协议)、IPSEC、和动态路由协议(主要为EIGRP、OSPF、BGP)。
MGRE目的是HUB端一次配置后可以和无上限SPOKER建立若干Tunnel,另外也是为传递以组播为主的动态路由协议提供通道。
NHSP目的是建立Tunnel和公网IP地址之间的映射关系,为SPOKER和HUB注册关联提供路由前置条件,另外也是为了建立SPOKER-SPOKER虚拟tunnel提供依据。
IPSEC是为了数据传递的安全性。
动态路由协议是为了在DMV.P.N中实现路由动态更新和互联。
DMV.P.N学习总结
R1为HUB端,R2为ISP ,剩余的为SPOKER。

HUB端配置:

  • IPSEC V.P.N部分配置

crypto isakmp policy 1
encr 3des
hash md5
authentication pre-share
group 2
crypto isakmp key cisco123 address 0.0.0.0
crypto ipsec transform-set DC esp-3des esp-md5-hmac
mode tunnel
crypto ipsec profile profile1
set transform-set DC

  • Tunnel部分配置
    interface Tunnel1
    bandwith 1000 //tunnel默认bandwith 比较低约9Kbps ,改变该值只能影响动态路由协议的传递,如EIGRP metric ,HUB和SPOKER最好保持一致
    ip address 169.254.1.1 255.255.255.0
    ip mtu 1400 //设置tunnel数据最大传输单元,
    no ip next-hop-self eigrp 20 //在SPOKER-SPOKER模式中将SPOKER1去往SPOKER2的路由吓一跳从HUBtunnel接口地址改为目的SPOKER的tunnel接口地址
    no ip split-horizon eigrp 20 //关联EIGRP的水平分割,HUB将一个SPOKE学来的路由信息通告给其他SPOKER
    ip nhrp authentication cisco456 // SPOKER注册到HUB的认证密码
    ip nhrp map multicast dynamic //HUB端自动开启组播映射,SPOKER通过一对一映射注册到HUB后使建立的隧道可以自动发送组播
    ip nhrp network-id 1 //SPOKER向HUB注册关联的识别ID,必须相同
    tunnel source Ethernet0/0 //Tunnel关联的公网物理接口
    tunnel mode gre multipoint //设置tunnel模式为多点tunnel
    tunnel key 1024 //建立tunnel的key必须保持一致
    tunnel protection ipsec profile profile1 //开启tunnel数据通过IPSEC加密

  • 接口
    interface Ethernet0/0
    ip address 100.0.1.2 255.255.255.252
    end

SPOKER端配置

  • IPSEC V.P.N配置
    crypto isakmp policy 1
    encr 3des
    hash md5
    authentication pre-share
    group 2
    crypto isakmp key cisco123 address 0.0.0.0
    crypto ipsec transform-set B1 esp-3des esp-md5-hmac
    mode tunnel
    crypto ipsec profile profile1
    set transform-set B1

  • Tunnel部分配置
    interface Tunnel1
    bandwith 1000
    ip address 169.254.1.3 255.255.255.0
    ip mtu 1400
    ip nhrp authentication cisco456
    ip nhrp map 169.254.1.1 100.0.1.2 //静态建立HUB端公网IP地址和Tunnel地址的单播映射
    ip nhrp map multicast 100.0.1.2 //建立静态组播映射
    ip nhrp network-id 1
    ip nhrp nhs 169.254.1.1 //指定HUB的地址
    tunnel source Ethernet0/0
    tunnel mode gre multipoint
    tunnel key 1024
    tunnel protection ipsec profile profile1
    end

  • 接口
    interface Ethernet0/0
    ip address 100.0.3.2 255.255.255.252
    end

动态路由的一些问题

  • EIGRP
    如上面所说,DM***中在部署SPOKER-SPOKER网络连接时,EIGRP需要关闭EIGRP的水平分隔特性,使得HUB可以将路由通告给其他所有SPOKER ,保持HUB\SPOKER 的EIGRP路由一致。
    为了避免SPOKER到另一个SPOKER的路由还是要经过HUB转发,需要在HUB上关闭吓一跳为HUB自己的tunnel接口,及调整EIGRP目的路由的吓一跳为目的SPOKER的tunnel地址
    PS:EIGRP水平分割是指路由器一个接口收到的路由信息不会再从这个口通告出去。
    DMV.P.N学习总结

  • OSPF
    OSPF和网络类型有很大区别,tunnel接口 默认的网络类型为POINT-TO-POINT ,对于HUB而言,其MGRE通道需要和多个SPOKER建立邻居,所以默认情况下,即使建立了OSPF邻居,也会出现OSPF 邻居flapping的情况,及down/up, 为了解决这个问题就需要将tunnel接口的ospf 网络类型更改为BROADCAST类型,
    另外为了解决 SPOKER-SPOKER通信中下一跳默认为HUB的问题,可以调整HUB tunnel接口的优先级使其成为DR。
    DMV.P.N学习总结
    DMV.P.N学习总结
    采用上述办法调整后的结果如下:

DMV.P.N学习总结
DMV.P.N学习总结
另一种办法时通过NHRP来解决;
修改网络类型为point-to-mulitipoint(不选举DR/BDR)
在没有开启重定向和NHRP查询时,SPOKER路由的下一跳还是HUB,
DMV.P.N学习总结

总部HUB开启重定向(ip nhrp redirect)
分部SPOKER开启NHRP的查询 (Spoke上ip nhrp shortcut 可以发映射请求了)
DMV.P.N学习总结
以上,在配置以后,触发SPOKER和SPOKER之间的流量就会看到,下一跳被重写了,标记有“%”

协议相关

在HUB-SPOKER建立通道时(永久)

DMV.P.N学习总结
SPOKER先和HUB建立GRE over IPSEC ***隧道,然后SPOKER注册到HUB,最后是动态路由的建立和更新;

在SPOKER和SPOKER建立(临时)

DMV.P.N学习总结
SPOKER先通过NHSP映射关系找到目标SPOKER,然后进行IPSEC ***隧道的建立,之后再传递加密数据。

参考连接:
https://www.cisco.com/c/dam/en/us/products/collateral/security/dynamic-multipoint-***-dm***/prod_presentation0900aecd80313c9d.pdf
https://www.cisco.com/c/dam/en/us/products/collateral/security/dynamic-multipoint-***-dm***/prod_presentation0900aecd80313ca0.pdf

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这