如果我想做的配置实际上是可能的,我会遇到一些挑战并且需要一些建议。请不要杀我,我知道配置不是很“nice”...
我们将 DMVPN 用于我们的 WAN,其中默认路由是通过在该 DMVPN 实例上运行的 EIGRP 来的。前门 VRF 用于隧道端点,在那里我们有一条通往提供商的默认路由。
接口是:
- Gi0/0/0 (outside), VRF: inet, 0.0.0.0/0 指向ISP
- Gi0/0/1(内部),VRF:默认,0.0.0.0/0 指向 DMVPN 集线器
- Tun0 (DMVPN),VRF:默认
流量通过内部接口进入,并通过隧道路由到 DMVPN 集线器。为了在本网站上实施直接互联网访问,我们与云安全提供商合作对我们的网络流量进行过滤。为此,我们需要建立到该提供商的隧道,仅通过该隧道发送网络流量。安全提供者仅支持基于策略的隧道(加密映射,无 VTI)。
可以定义加密映射,这不是问题,需要应用于出口接口。然而,我怀疑,尽管没有尝试,可以将加密映射应用于隧道接口。
现在的替代解决方案是实施基于策略的路由,将 Web 流量放到另一个 VRF 并将加密映射应用到 Gi0/0/0,如下所示:
ip access-list extended DIA-OUT
permit tcp any any eq 80
permit tcp any any eq 443
ip access-list extended DIA-IN
permit tcp any eq 80 any
permit tcp any eq 443 any
ip access-list extended TEN
permit ip any 10.0.0.0 0.255.255.255
route-map DIA-OUT deny 10
match ip address TEN
route-map DIA-OUT permit 20
match ip address DIA-OUT
set vrf frontdoor
! if that does not work
! set ip next-hop recursive vrf inet-public 8.8.8.8
! As no specific route for 8.8.8.8 exists, the default route will
! be used. Not sure if the crypto map applies then, though
route-map DIA-IN permit 10
match ip address DIA-IN
set global
crypto map DIA_CRYPTO_MAP 100 ipsec-isakmp
set peer vpn.mycloudprovider.com dynamic
set transform-set MY_SET
set isakmp-profile MY_PROFILE
match address DIA-OUT
interface GigabitEthernet 0/0/0
description outside
ip vrf frontdoor
ip address dhcp
ip policy route-map DIA-IN
! unsure if the crypto map applies here
crypto map DIA_CRYPTO_MAP
interface GigabitEthernet 0/0/1
description inside
ip address <inside-ip> 255.255.255.0
ip policy route-map DIA-OUT
ip vrf receive frontdoor
(ip vrf receive
可以在此处找到有关使用的更多信息)
在外部接口上,应该只有三种不同类型的流量:
- IPSec 封装 DMVPN 流量,公共 IP 作为源 IP
- 端口 80、10/8 上的 Web 流量作为来源
- 端口 443 上的 Web 流量,10/8 作为源
没有配置 NAT,如果隧道关闭,我可能会添加一个 ACL 来丢弃网络流量。即使这是未经测试的,我还是有信心它应该可以工作(如果您有更好的方法,或者认为上述解决方案不起作用,请告诉我:=))。我唯一不确定的是 Gi0/0/0 上的 PBR 是否适用于 VPN 流量。让我们来看看...
现在真正的问题是:
DIA-OUT 路由映射将流量重定向到前门 VRF,无论隧道是否启动。我想以某种方式确保这仅在隧道实际启动时才会发生。否则,流量将按照默认路由通过 DMVPN 转发。
现在,即使我可以跟踪 IPSec SA,这也是一个鸡与蛋的问题。隧道只是由一些流量实际上正在击中加密映射而构建的。
我不能使用可靠的 PBR(验证可达性),因为我不知道下一跳(技术上没有,因为我使用加密映射)。我可以使用 IP SLA 和跟踪的组合来检查通过隧道的可达性,但是我无法影响基于跟踪对象的 PBR 决策。match track
据我所知,这行不通。
知道如何可靠地做到这一点吗?