[dev][ipsec][distributed] strongswan如何做热迁移/高可用/High Availability
问题描述:
原生的基于kernel 的 strongswan 如何做高可用,HA,High Availability
问题分析:
基于我们已知的,ipsec,strongswan的知识。问题分解如下:
1. IKE SA的同步,CHILD SA的同步。
2. ESP包是有序列号的,序列号的同步问题。
3. 隧道不能断,业务也不能断。所以还有一个隧道IP的同步问题。
解决方案:
strongswan是这样解决的。
1. 问题1)与strongswan软件进行解决,可以通过配置,配置一个高可用的组,组内彼此会进行IKE SA和CHILD SA的同步。
首先启用HA Plugin。 然后,做一个大概这样的配置,如下:
ha {
# ...
pools {
sales = 10.0.1.0/
finance = 10.0.2.0/
}
}
2. 问题2)和问题3)由linux iptables的 cluster IP功能解决。
cluster IP的做法是,在高可用组内,对交换机进行ARP欺骗,让交换机将tunnel IP的包组播给高可用组内的所有机器。
每一个机器会使用源IP算一个hash,命中自己的包会留下,其他包会丢弃。这样就把所有的连接均分到了不同的节点上面。
ipsec使用一个定制过的cluster IP module。它与原版cluster IP的区别是:
1,使用源IP加SPI做hash。
2. 不命中hash的包,在被丢弃前,会被用来维护standby child SA的ESP sequence number。 这样seq是实时同步,用来解决问题2)
节点之间通过HA plugin交互各种消息,包括heartbeat等。从而完成,同步,主备,failover等。
参考资料:
https://wiki.strongswan.org/projects/strongswan/wiki/HighAvailability
除了前边我整理的,篇首的两端对应一般问题描述,也值得阅读。
[dev][ipsec][distributed] strongswan如何做热迁移/高可用/High Availability的更多相关文章
- Mysql+Keepalived双主热备高可用操作记录
我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互为Mast ...
- 使用Keepalived实现Nginx的自动重启及双主热备高可用
1.概述 之前我们使用Keepalived实现了Nginx服务的双机主备高可用,但是有几个问题没有解决,今天一起探讨一下. 1)在双机主备机制中,Keepalived服务如果宕了,会自动启用备机进行服 ...
- mysql+keepalived 双主热备高可用
理论介绍:我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互 ...
- [dev][ipsec][dpdk] strongswan/dpdk源码分析之ipsec算法配置过程
1 简述 storngswan的配置里用一种固定格式的字符串设置了用于协商的预定义算法.在包协商过程中strongswan将字符串转换为固定的枚举值封在数据包里用于传输. 协商成功之后,这组被协商选中 ...
- hb_gui配置heartbeat做MariaDB的高可用
系统平台:CentOS release 6.5 (Final) Kernel:2.6.32-431.el6.x86_64 一.启动hb_gui hb_gui & 添加资源组 添加MySQL_I ...
- 华为云计算IE面试笔记-FusionCompute虚拟机热迁移定义,应用场景,迁移要求,迁移过程
*热迁移传送了什么数据?保存在哪? 虚拟机的内存.虚拟机描述信息(配置和设备信息).虚拟机的状态 虚拟机的配置和设备信息:操作系统(类别.版本号).引导方式(VM通过硬盘.光盘.U盘.网络启动)和引导 ...
- Mysql双主热备+LVS+Keepalived高可用操作记录
MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.然而MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负 ...
- Mysql双主热备+LVS+Keepalived高可用部署实施手册
MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.然而MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负 ...
- KVM虚拟机的热迁移---Live Migration
KVM虚拟机的热迁移---Live Migration: 服务器虚拟化技术是当前的热点,而虚拟机的“热迁移(Live Migration)”技术则是虚拟机的运行状态完整保存下来,同时可以快速的回复到原 ...
随机推荐
- Linux-通过源码安装某个版本的内核
一下操作步骤来自于各种搜索出来的杂七杂八的东西.主要来自:https://blog.csdn.net/happyfreeangel/article/details/85088706 前置环境:Cent ...
- idea设置项目【非springboot项目】热部署
1.首先打开Edit Configurations 或者 2.添加的项目一定是war: exploded,而不是war 3.server这边,On 'Update' action选Redeploy,O ...
- 在Jetty中部署Jenkins遇到的问题
1. Jetty 9.0.3 启动时的错误: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@kvm-guest jetty-9.0.3]# java -jar star ...
- 026 Android 带不同类型条目的listview(纯文本类型的条目,图片+文字类型的条目)+读取内存空间、手机进程信息+常驻悬浮框
1.目标效果 带不同类型条目的listview(纯文本类型的条目,图片+文字类型的条目)+常驻悬浮框 2.页面布局文件 (1)activity_process_manager.xml <?xml ...
- DateTimeFormatter 的操作与使用 -- 通俗易懂
在上一章我们讲解了LocalDate.LocalTime.LocalDateTime.Instant的操作与使用,下面讲解它们之间是如何进行格式化 DateTimeFormatter这个类它只提供了时 ...
- maven profiles多环境配置
maven profiles多环境配置 转载. https://blog.csdn.net/runbat/article/details/81747874 今天做了一个小项目,需要配置开发.测试.预发 ...
- Zuul【限流】
在项目中,大部分都会使用到hyrtrix做熔断机制,通过某个预定的阈值来对异常流量进行降级处理,除了做服务降级以外,还可以对服务进行限流,分流,排队等. 当然,zuul也能做到限流策略,最简单的方式就 ...
- (2)Spring Boot配置
文章目录 配置文件 YAML 语法 单元测试 配置文件值自动注入 @Value 获取配置文件属性的值 加载指定配置文件 优先级问题 加载Spring 的配置文件 为容器中添加组件 随机数 & ...
- 玫瑰花小制作分享-JavaScript(七夕专属浪漫)
分享一个玫瑰花的制作小方法,用小小的代码给自己的她送上一个不一样的玫瑰花. 玫瑰花代码由JavaScript实现,JavaScript 作为一种脚本语言, 被发明用于在 HTML 网页上使用,可以给H ...
- MAMP PRO 在osx 10.10 错误处理
新更新的osx10.10之后,启动MAMP会发现Apache无法启动, 处理如下: 1.cd /Applications/MAMP/Library/bin 2.mv envvars _envvars ...