本文介绍了一种典型办公网络互通场景。
作者:杭州某科技创业公司的网络工程师
场景介绍
办公区到阿里云VPC网络高可用互通方案
工作中经常需要办公区和云上网络之间互通,比如测试环境、oa办公系统、财务系统等,所以针对办公区和阿里云互通有必要做一个高可用方案。
非固定出口IP下的ipsec连接配置
由于公司本身的网络限制,备用出口没有固定公网IP,所以本文档将指导用户如何在没固定出口IP下做整段互通。
注意:本文档默认打通办公区和阿里云VPC,如果您需要限制某些段不通,请使用防火墙或者阿里云ACL、路由策略等功能。
相关概念
VPN网关:VPN网关是一款基于互联网的网络连接服务,通过加密通道的方式实现企业本地数据中心、企业办公网络或互联网终端与阿里云专有网络VPC(Virtual Private Cloud)之间安全可靠的连接。
IPSEC VPN:通过IPsec-VPN可建立专有网络VPC(Virtual Private Cloud)与本地数据中心间的VPN连接
策略路由:策略路由会基于流量的源IP和目的IP进行更精确的路由转发
前提条件
办公区两条公网出口
主线路:移动专线出口,有固定公网IP,可以建立ipsec IKEv2版本配置多个兴趣流网段
备线路:电信宽带出口,没有固定公网IP, 建立ipsec IKEv1版本,配置源目0.0.0.0/0
操作步骤
步骤一:阿里云创建VPN网关
参考 https://help.aliyun.com/document_detail/65290.htmlyou'sh
步骤二:阿里云创建两个用户网关
注意:备线路由于没有固定出口IP,所以需要配置用户网关的IP是0.0.0.0。然后ipsec使用IKEv1野蛮模式。
步骤三:申请一台ECS用作链路探测监控
申请一台最小规格的ECS,绑定一个辅助网卡,主网卡和辅助网卡分别分配一个VPC段内IP,分别用于探测主备链路监控。
步骤四:阿里云创建ipsec连接
主线路对端配置参考,注意替换自己的IP,这里remote和local是针对办公区说的,所以阿里云配置的时候需要反过来。
{ "LocalSubnet": "0.0.0.0/0", "RemoteSubnet": "0.0.0.0/0", "IpsecConfig": { "IpsecPfs": "group2", "IpsecEncAlg": "3des", "IpsecAuthAlg": "md5", "IpsecLifetime": 86400 }, "Remote": "101.x.x.171", "Local": "39.x.x.74", "IkeConfig": { "IkeAuthAlg": "md5", "LocalId": "yidong", "IkeEncAlg": "3des", "IkeVersion": "ikev2", "IkeMode": "main", "IkeLifetime": 86400, "RemoteId": "aly_beijing", "Psk": "xxxxxx", "IkePfs": "group2" } }
备线路配置参考
{ "LocalSubnet": "0.0.0.0/0", "RemoteSubnet": "0.0.0.0/0", "IpsecConfig": { "IpsecPfs": "group2", "IpsecEncAlg": "3des", "IpsecAuthAlg": "md5", "IpsecLifetime": 86400 }, "Remote": "101.x.x.171", "Local": "0.0.0.0", "IkeConfig": { "IkeAuthAlg": "md5", "LocalId": "dianxin", "IkeEncAlg": "3des", "IkeVersion": "ikev1", "IkeMode": "aggressive", "IkeLifetime": 86400, "RemoteId": "aly_beijing", "Psk": "xxxxxxx", "IkePfs": "group2" } }
参考 https://help.aliyun.com/document_detail/65288.html
注意:主链路需要配置健康检测,分别用{阿里云主链路探测IP}和办公区核心
备链路需要配置健康检测,分别用{阿里云备链路探测IP}和办公区核心
配置办公区设备ipsec连接
办公区对应也要配置两个ipsec连接,这里用某友商防火墙配置举例说明,具体可以参考对应厂商的文档配置。
更多设备配置可以参考 https://help.aliyun.com/document_detail/65366.html
配置路由
阿里云配置目的路由
这里是到办公区网段的两条路由,通过优先级区分主备。
目标网段 |
下一跳 |
优先级 |
办公区网段 |
ipsec_主链路 |
100 |
办公区网段 |
ipsec_备链路 |
0 |
阿里云配置策略路由
策略路由的目的是让两个特殊的链路监控IP分别固定走主链路和备链路,可以用于主备链路监控和健康检查。
源网段 |
目标网段 |
下一跳 |
优先级 |
阿里云主链路探测IP |
办公区网段 |
ipsec_主链路 |
100 |
阿里云备链路探测IP |
办公区网段 |
ipsec_备链路 |
100 |
办公区核心上配置路由
办公区核心设备需要配置到阿里云网段优先走主链路,备用走备链路,可以使用IP sla监控主链路的探测ip。
注意以下大括号中的需要替换成自己实际环境中的IP,由于不同设备配置命令可能不同,以下配置供参考原理。
type icmp-echo
destination IP {阿里云主链路探测IP}
frequency 5000
reaction 1 checked-element probe-fail threshold-type consecutive 2 action-type trigger-only
nqa schedule admin test start-time now lifetime forever
track 1 nqa entry admin test reaction 1
IP route-static {阿里云网段} {主出口网关IP} track 1 preference 40
IP route-static {阿里云网段} {备出口网关IP}
IP route-static {主链路探测IP} {主出口网关IP}
IP route-static {备链路探测IP} {备出口网关IP}
4.测试主备链路探测IP的路由路径
1.在办公区分别执行traceroute 主备链路IP观察路由是否生效
2.在阿里云分别执行traceroute -i 网卡办公区IP观察路由是否生效
模拟主链路故障迁移方案验证
禁用主线路ping探测设备回包,traceroute观察路由路径。
iptables -I INPUT -p icmp -d {阿里云主探测IP} -j DROP
启用主线路ping探测,观察路由是否切到主链路了。
iptables -D INPUT -p icmp -d {阿里云主探测IP} -j DROP