本文主要是介绍【隧道篇 / 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 防火墙的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!