背景

  最近接到一个项目是一家机构总部与多个分支之间的内网互通,总部具有固定ip,分部是使用adsl动态获取的不固定公网ip,由于两端互联网ip不固定所以不能使用传统的GRE技术来实现,所以最后经过评估使用了DSVP技术

技术介绍

  动态智能VPN(Dynamic Smart Virtual Private Network),简称DSVPN,是一种在Hub-Spoke组网方式下为公网地址动态变化的分支之间建立VPN隧道的解决方案。

  DSVPN通过NHRP协议动态收集、维护和发布各节点的公网地址等信息,解决了源分支无法获取目的分支公网地址的问题,从而可在分支与分支之间建立动态VPN隧道,实现分支与分支间的直接通  信,进而减轻总部的负担、避免网络延时。

  DSVPN借助mGRE技术,使VPN隧道能够传输组播报文和广播报文,并且一个Tunnel接口可与多个对端建立VPN隧道,减少了配置VPN隧道的工作量;在新增分支或分支公网地址发生变化时,也能自动维护总部与分支之间的隧道关系,而不用调整总部的隧道配置,使得网络维护变得更智能化。

mGRE

  mGRE是在GRE(Generic Routing Encapsulation)基础上发展而来的一种点到多点GRE技术。它将传统GRE隧道点到点(P2P)类型的Tunnel接口扩展成了点到多点(P2MP)类型的mGRE隧道接口。通过改变接口类型,Hub或Spoke上只需要配置一个Tunnel接口便可与多个对端建立隧道,从而减少了配置GRE隧道的工作量。

NHRP

  NHRP(Next Hop Resolution Protocol)即下一跳地址解析协议。在DSVPN网络中,NHRP协议的作用是建立和解析Protocol地址到NBMA(Non-Broadcast Multiple Access)地址的映射关系。正是因为这种映射和解析,源Spoke才能够获取目的Spoke的动态公网地址。

通俗的讲DSVPN是使用mGRE技术在HUB端只需要指定隧道源端口而不需要指定隧道目的ip,分支机构通过NHRP协议向HUB注册自己的隧道ip与公网ip,HUB生成一张NHRP映射表,表中包括分支隧道ip与公网ip的映射关系,HUB会把该映射关系同步给其他分支,其他分支拿到该映射关系后就可以获取各分支隧道ip对应的公网ip,只要公网ip间通信正常就会自动建立GRE隧道

配置如下

拓扑

基础配置(如ospf,端口ip)配置略

//hub配置
interface Tunnel0/0/0
ip address 172.16.1.1 255.255.255.0
tunnel-protocol gre p2mp
source GigabitEthernet1/0/0 ip route-static 192.168.1.0 255.255.255.0 172.16.1.2
ip route-static 192.168.2.0 255.255.255.0 172.16.1.3
//spoke1配置
interface Tunnel0/0/0
ip address 172.16.1.2 255.255.255.0
tunnel-protocol gre p2mp
source GigabitEthernet1/0/0
nhrp entry 172.16.1.1 1.1.1.10 register ip route-static 192.168.0.0 255.255.255.0 172.16.1.1
ip route-static 192.168.2.0 255.255.255.0 172.16.1.3
//spoke2配置
interface Tunnel0/0/0
ip address 172.16.1.3 255.255.255.0
tunnel-protocol gre p2mp
source GigabitEthernet1/0/0
nhrp entry 172.16.1.1 1.1.1.10 register ip route-static 192.168.0.0 255.255.255.0 172.16.1.1
ip route-static 192.168.1.0 255.255.255.0 172.16.1.2

hub 查看nhrp信息

spoke查看nhrp信息

测试

抓包

可以看到spoke1访问spoke2内网网段gre外层源目ip封装的是自身的接口ip和对端的接口ip

使用DSVPN解决分支网络出口为ADSL场景下的内网互通的更多相关文章

  1. linux网络配置正确,能够ping通内网地址,无法打开外网网页

    在虚拟机里面装了linux后,发现内网能访问,外网访问不了. 首先确定网络配置没有问题,并且能够访问外网,通过以下方法进行确认: [root@localhost ~]# more /etc/sysco ...

  2. linux虚拟机网络设置(本机使用公司内网)

    使用桥接方式 设置: 一开始没有的话可以add 编辑edit 参考公司网络,下图是公司内网地址 然后设置 然后ping就ok了

  3. 解决OS X系统连接VPN后无法访问内网资源的问题

    该问题是第一次使用OS X系统连接VPN遇到的问题,现象是连接VPN成功,但无法访问公司的内网资源. 主要原因还是VPN设置上的问题,在系统偏好设置中打开VPN连接,里面有个高级设置,如图: 点击高级 ...

  4. 脑残式网络编程入门(六):什么是公网IP和内网IP?NAT转换又是什么鬼?

    本文引用了“帅地”发表于公众号苦逼的码农的技术分享. 1.引言 搞网络通信应用开发的程序员,可能会经常听到外网IP(即互联网IP地址)和内网IP(即局域网IP地址),但他们的区别是什么?又有什么关系呢 ...

  5. Openvpn完美解决公司网络没有固定公网IP的问题

    方案背景: 公司办公网络使用长城宽带上网有一段时间了,有4个固定IP(2个电信,2个网通),链路不太稳定,经常有问题,因此考虑取消长城宽带,采用原来的adsl上网.但是有个问题,因为公司内网有几台服务 ...

  6. eclipse 项目修改和更新项目,回退版本,解决分支的冲突的办法

    一个关于git的图 1.我在github建立了3个分支. 2.把其中一个分支拉到本地. 项目修改提交到远程库 3.修改完代码以后commit项目,点击项目右击->team->commit ...

  7. Git for Windows之分支管理、分支合并、解决分支冲突

    分支是在稳定版本出现bug的情况下,通过分支技术,在保证稳定版本稳定的情况,修改稳定版本的(差异下载的,速度极快,不同于SVN等技术,会将所有的代码下载到本地)副本,通过合并,解决冲突,最后回归到稳定 ...

  8. 内部网络出口防火墙导致TCP类扫描异常

    测试过程中确认,由于内部网络出口防火墙存在连接数等策略限制,会导致TCP类扫描出现异常,表现为大量误报. Nessus.nmap.synscan均存在此现象.

  9. 华为SDN:解决传统网络3大问题

    转:http://mp.ofweek.com/tele/a145613326756 科技潮人 2013-08-05 14:20 传统网络之困 互联网爆炸式增长,除了规模和发展速度远超之前所有曾出现的数 ...

随机推荐

  1. IOC 初始化源代码阅读之我见

    由于本人的能力有限,只能说出自己的见解,如有错漏什么的,请大家批评指出.由于代码封装太多,这里只列出了我认为的部分最重要的代码,一些简单的封装代码,不在下面列出.由于代码太过于复杂,在本次博客中,只列 ...

  2. 学习Kvm(三)

    虚拟化(将一个物理硬件平台虚拟成多个) vmware(模拟出一堆硬件设备,每一个硬件设备都是独立平台) 虚拟化要解决的问题(硬件之上的OS,有用户空间.内核空间:vmware虚拟机所模拟出的多个硬件平 ...

  3. python 保存图片被截断

    运行如下代码发现横坐标属性值被截断 plt.savefig('D:\\project\\python\\zhifangtu\\a.png') plt.show() plt.savefig('D:\\p ...

  4. Redis++:Redis做分布式锁真的靠谱吗

    Redis做分布式锁真的靠谱吗 Redis的分布式锁可以通过Lua进行实现,通过setnx和expire命令连用的方式 || 也可以使用高版本的方法同时设置失效时间,但是假如在以下情况下,就会造成无锁 ...

  5. AD学习总结

     一.常用快捷键总结 快捷键tab:显示放置的线.元器件.管脚等详细信息(可以修改) 快捷键p:打开放置内容:在元器件原理图中放置能容主要是线等(组合键p+w  启动 "线" 操作 ...

  6. 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)

    概述 最近,有客户向我们请求开发一个前端下拉控件,需求是显示了一个列表,其中包含可由用户单独选择的项目控件,该控件将在下拉列表中显示多选TreeView(树形图). 如今WijmoJS已经实现了该控件 ...

  7. for 循环详解

    学习目标: 掌握 for 循环的使用 学习内容: 1.for语法 for(初始化语句; boolean表达式; 循环后操作语句) { 循环体; } 流程图如下: 特点: 初始化语句:只在循环开始时执行 ...

  8. js 生成 pdf 文件

    话不多说好吧, 直接上demo图: 直接上代码好吧:(要引入的两个js  链接我放最后) <!DOCTYPE html> <html> <head> <met ...

  9. 实际业务处理 Kafka 消息丢失、重复消费和顺序消费的问题

    关于 Kafka 消息丢失.重复消费和顺序消费的问题 消息丢失,消息重复消费,消息顺序消费等问题是我们使用 MQ 时不得不考虑的一个问题,下面我结合实际的业务来和你分享一下解决方案. 消息丢失问题 比 ...

  10. windows+ubuntu双系统时间同步问题

    windows+ubuntu双系统时间同步问题 给Ubuntu更新时间,在终端输入: sudo apt-get install ntpdate sudo ntpdate time.windows.co ...