【隧道篇 / IPsec】(6.0) ❀ 01. 点对多星状拓扑IPsec动态BGP路由 ❀ FortiGate 防火墙

2024-01-31 08:10

本文主要是介绍【隧道篇 / IPsec】(6.0) ❀ 01. 点对多星状拓扑IPsec动态BGP路由 ❀ FortiGate 防火墙,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  【简介】我们已经了解并熟悉点对多星状IPsec VPN的好处了,它可以非常方便的让各个分支访问中心。但是,分支与分支之间的访问仍需要通过中心转发。另外,当允许访问的中心IP有变动的时候,各个分支都要进行手动修改,有没有什么方法可以解决这些问题呢?


ADVPN

  传统的点对多星状方式中,分支只能和中心建立永久隧道,分支之间的流量需要通过中心来转发,这种方式减轻了分支的负担(只要和中心建立一条连接),但对中心提出了更高的性能要求,同时利于中心对分支间流量的监控。

  ADVPN (Auto Discovery VPN) 是一种基于IETF RFC草案的IPsec技术 。简单地说,ADVPN允许在传统的点对多星状VPN网络中的分支之间相互建立动态的、按需连接的VPN隧道,分支间的流量可以直接转发,从而达到整网完全状态连接。相比而言,中心的负担减轻,同时减少分支间流量的延迟,更有利于VOIP等实时流量的传输,在实际使用的过程中可按照自身需求进行选择。

  ADVPN的主要优势是,它为标准的点对多星状拓扑提供了完全网格化的功能,大大减少了分支到分支的低延迟可达性所需的准备工作,并解决了与非常大的完全网格VPN网络相关的可伸缩性问题。

  ADVPN要求使用动态路由才能正常工作,FortiOS 6.0同时支持BGP和RIP。BGP(特别是iBGP)非常适合ADVPN,因为它的路由反射器机制驻留在VPN中心设备上,并将路由信息从每个分支对等点镜像到彼此。此外,当拓扑中引入新的分支时,动态组对等点会导致几乎零接触中心供应。

 中心配置 - VPN

  首先我们对中心FortiGate进行配置,因为有很多功能需要在CLI中进行配置,所以最好使用命令行接口进行BGP和ADVPN等配置。考虑到每个人的能力程度不同,这里尽量简单一些,先GUI配置,再CLI补充配置。

  ① 首先登录中心FortiGate,这里以位于深圳的200D为例。选择菜单【虚拟专网】-【IPsec向导】,输入自定义的VPN名称,模板类型选择【自定义】,点击【下一个】。

   ② 这里我们将IPsec VPN的阶段一和阶段二都在一个介面上配置。

  (1) 远程网关与接口:由于不知道众多分支的外网IP,中心FortiGate设置为接收方,所以远程网关设置为“拨号用户”,等待分支的拨入。接口选择连接的宽带接口。

   (2) 预共享密钥:双方可以使用预共享密钥的方式对身份进行确认,预共享密钥为自定义,所有接入的FortiGate要求填写一致;

   (3) 模式:分为主模式和野蛮模式,主模式一般采用IP地址方式标识对端设备;而野蛮模式可以采用IP地址方式或者域名方式标识对端设备。

   (4) 第一阶段加密:加密方案,由加密算法、认证算法、DH组三部分组成;所有接入的FortiGate都要设置相同的加密方式。

        (5) 第二阶段加密:内容和功能与第一阶段加密相同,可以设置成与第一阶段不同的加密方式。

   ③ 用config vpn ipsec phase1-interface命令配置和查看IPsec VPN第一阶段的配置。

   ④ set add-route disable 命令禁止控制添加路由到对等目的地选择器。set auto-discovery-sender enable 命令允许向分支发送和接收快捷消息 (中心负责让分支知道它们应该建立这些隧道)。set net-device enable 命令启用为每个拨号实例创建一个内核设备,允许所有流量对通过给定phase1生成的所有实例使用单一接口。

   ⑤ 用config vpn ipsec phase2-interface命令配置和查看IPsec VPN第二阶段的配置。这里不用修改。

  【提示】目前5.6版的ADVPN不支持主动模式,但是从版本6.0.1开始已经实现了支持。

中心配置 - 隧道接口

  ADVPN要求在连接到拓扑的每个设备上配置隧道IP。这些IP地址对于每个对等点必须是唯一的。

   ① 选择菜单【网络】-【接口】。点击VPN引用宽带接口最左边的加号,可以看到VPN虚拟接口,选择刚才建立的VPN虚拟接口,点击【编辑】按钮。

  ② 给隧道输入一个IP地址,网段不能和防火墙其它接口相同。中心的一个特殊之处在于它需要定义一个伪远程IP地址(在这个示例中是10.10.10.254)。此地址在拓扑中应该是未使用的,它不会被实际视为中心配置的一部分。

   ③ 用config system interface 命令可以查看隧道接口的情况。

中心配置 - BGP

   接下来需要配置iBGP和路由反射。

   ① 选择菜单【网络】-【BGP】,本地AS输入私有号65000,Router ID为隧道IP地址,当需要宣传我们的局域网网络时,在网络下输入本地内网IP地址,可以是多个IP地址。

   ② 用config router bgp命令配置和查看动态路由BGP。

   ③ config neighbor-grout 命令配置一个动态客户端组来减少供应需求。config neigghbor-range 命令配置动态客户端组的IP范围。set next-hop-self enable命令表示将广告发送到IBGP对等点的NEXT_HOP信息中FortiGate设备的IP地址。set route-reflector-client enable命令启用路由反射器客户端。

   BGP中的路由反射器(RR)集中路由更新,因此其他路由器只需与RR通信就可以获得所有更新。这导致路由表更小,路由器之间的连接更少,对网络拓扑变化的响应更快,管理带宽更少。

    ④ BGP完整的配置是这样的。

 中心配置 - 策略

   最后一道工序,配置允许访问的策略。

   ① 选择菜单【策略&对象】-【IPv4策略】,点击【新建】,建立一条由隧道访问内网的策略。

   ② 再建立一条由内网访问隧道的策略。

    ③ 由于中心会有许多分支接入,因此在中心还要建一条允许隧道内部能够互相访问的策略。

   ④ 可以用命令查看刚建好的策略。

  【提示】中心不需要手动建立路由,回程路由会根据分支拨入情况自动生成。

  分支配置

   分支配置与中心配置方法大同小异,这里就不再贴出图形界面的配置方法,只给出命令。

   ① IPsec VPN第一阶段配置,这里的远程网关指定的IP地址113.116.10.246,就是中心的外网IP地址。

   ② IPsec VPN第二阶段配置,set auto-negotiate enable 启用自动协商,VPN会一直保持连接状态。

   ③ 给隧道设置IP地址,远程IP地址就是中心的隧道IP地址。

   ④ 配置BGP,本地ID为10.10.10.2,邻居ID为10.10.10.1,指向中心。set next-hop-self enable命令表示将广告发送到IBGP对等点的NEXT_HOP信息中FortiGate设备的IP地址,set soft-reconfiguration enable命令启用允许IPv4入站软配置。

   ⑤ 和中心不同,分支必须指定静态路由。所有对10.10.10.0的访问都会走隧道。

   ⑥ 最后是建立一进一出的两条策略。

  验证

   首先VPN必须被连通。

   ① 在分支选择【监视器】-【IPsec监视器】,如果看到隧道左边显示的是绿色图标,表示隧道连通,如果没有连接,可以选择隧道,点击【启用】。

   ② 在分支选择【监视器】-【路由监视器】,可以看到得到了BGP路由,该路由的网关地址中心隧道IP地址。

   ③ 在分支命令状态,定义源IP地址为内网接口地址,Ping中心防火墙内网接口地址,可以Ping通,说明IPsec VPN工作正常。

   ④ 在中心防火墙的BGP网络里再加入一个网段。

   ⑤ 在分支防火墙里,用get router info routing-table bgp命令,可以查看获取的BGP动态路由。并且可以访问。

   ⑥ 在分支防火墙内网的电脑里tracert路由,可以看到是经过中心防火墙隧道IP到达的。 

   ⑦ 在分支防火墙的BGP里增一个网络网段。

   ⑧ 在中心防火墙的路由监视里很快就能看到自动获得的BGP路由,是不是很有意思。

   ⑨ 由于目前只有一台分支防火墙与中心防火墙VPN连接,所以在分支防火墙用diagnose vpn tunnel list只看到一条隧道。如果有多个分支连接,就会看到有多条隧道生成。


这篇关于【隧道篇 / IPsec】(6.0) ❀ 01. 点对多星状拓扑IPsec动态BGP路由 ❀ FortiGate 防火墙的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/663087

相关文章

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Go路由注册方法详解

《Go路由注册方法详解》Go语言中,http.NewServeMux()和http.HandleFunc()是两种不同的路由注册方式,前者创建独立的ServeMux实例,适合模块化和分层路由,灵活性高... 目录Go路由注册方法1. 路由注册的方式2. 路由器的独立性3. 灵活性4. 启动服务器的方式5.

Java使用POI-TL和JFreeChart动态生成Word报告

《Java使用POI-TL和JFreeChart动态生成Word报告》本文介绍了使用POI-TL和JFreeChart生成包含动态数据和图表的Word报告的方法,并分享了实际开发中的踩坑经验,通过代码... 目录前言一、需求背景二、方案分析三、 POI-TL + JFreeChart 实现3.1 Maven

关于Gateway路由匹配规则解读

《关于Gateway路由匹配规则解读》本文详细介绍了SpringCloudGateway的路由匹配规则,包括基本概念、常用属性、实际应用以及注意事项,路由匹配规则决定了请求如何被转发到目标服务,是Ga... 目录Gateway路由匹配规则一、基本概念二、常用属性三、实际应用四、注意事项总结Gateway路由

Java导出Excel动态表头的示例详解

《Java导出Excel动态表头的示例详解》这篇文章主要为大家详细介绍了Java导出Excel动态表头的相关知识,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录前言一、效果展示二、代码实现1.固定头实体类2.动态头实现3.导出动态头前言本文只记录大致思路以及做法,代码不进

vue基于ElementUI动态设置表格高度的3种方法

《vue基于ElementUI动态设置表格高度的3种方法》ElementUI+vue动态设置表格高度的几种方法,抛砖引玉,还有其它方法动态设置表格高度,大家可以开动脑筋... 方法一、css + js的形式这个方法需要在表格外层设置一个div,原理是将表格的高度设置成外层div的高度,所以外层的div需要

SpringBoot实现动态插拔的AOP的完整案例

《SpringBoot实现动态插拔的AOP的完整案例》在现代软件开发中,面向切面编程(AOP)是一种非常重要的技术,能够有效实现日志记录、安全控制、性能监控等横切关注点的分离,在传统的AOP实现中,切... 目录引言一、AOP 概述1.1 什么是 AOP1.2 AOP 的典型应用场景1.3 为什么需要动态插

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

如何用Python绘制简易动态圣诞树

《如何用Python绘制简易动态圣诞树》这篇文章主要给大家介绍了关于如何用Python绘制简易动态圣诞树,文中讲解了如何通过编写代码来实现特定的效果,包括代码的编写技巧和效果的展示,需要的朋友可以参考... 目录代码:效果:总结 代码:import randomimport timefrom math