各个厂商在解决 BGP over IPsec 的时候都比较统一的使用了 Virtual Tunnel Interface (VTI) 的方案,即在物理接口上建立 IPsec 以后再在 VTI 接口上建立 BGP 连接进行路由交换。Silver Peak 同样也支持使用 VTI 的方法,使用这种方法我们可以实现 EC 和 EC 之间,EC 和 Cloud 之间,EC 和其他网络设备之间实现 BGP over IPsec:
- EC 和 EC 之间实现 BGP over IPsec 以后我们就可以将不同的 Silver Peak SD-WAN fabric 互联
- EC 和 Cloud 之间现实 BGP over IPsec 以后我们就可以和 Cloud 之间实现互联
- EC 和其他网络设备之间实现 BGP over IPsec 以后我们就可以和 Non SD-WAN fabric 或者和其他厂商的 SD-WAN fabric 实现互联
我们将配置 EC 与 EC 之间, EC 与 Cisco 路由器之间的 BGP over IPsec,实验拓扑如下:
逻辑上看这种方案就是先在物理接口建立 IPsec 然后 VTI 通过 IPsec 隧道于对端的 VTI 建立 BGP
第一步先在 EC 上创建 Passthrough Tunnel (即第三方 IPsec)
Cisco IPsec 配置如下:
crypto isakmp policy 10 encr aes authentication pre-share group 2 ! crypto isakmp key ciscocisco address 172.16.10.1 ! crypto ipsec transform-set TS esp-aes esp-sha256-hmac mode tunnel ! crypto ipsec profile IPsec_Profile set transform-set TS
第二步,创建 VTI 接口
Cisco VTI 配置如下:
interface Tunnel0 ip address 192.168.200.2 255.255.255.252 tunnel source 172.16.10.254 tunnel mode ipsec ipv4 tunnel destination 172.16.10.1 tunnel protection ipsec profile IPsec_Profile
第三步,配置 BGP
在 Silver Peak 上配置 BGP 的时候 Inbound Route Map 一定不能为空,否则 BGP 会一直处于 idel 状态无法建立连接。在上图中的 ECV-Hot-1 我配置了一个 BGP_Out 的 Outbound Route Map,因为在接下来的实验里我会从 Router 宣告一个路由给 ECV-Hot-1,BGP_Out 允许 ECV-Hot-1 将该路由宣告给 ECV-Hot-2。BGP_In 和 BGP_Out 的配置如下:
Cisco BGP 配置如下:
interface Loopback0
ip address 8.8.8.8 255.255.255.255
!
router bgp 65003 bgp log-neighbor-changes redistribute connected neighbor 192.168.200.1 remote-as 65001
最后我们将 8.8.8.8 重分布到 BGP 里,分别查看 ECV-Hot-1 和 ECV-Hot-2 的路由表: