目录 strongswan与xfrm之间的trap机制 0. 1. 前言 2. 描述 2.1 none 2.2 trap 3. 实验与过程 3.1 trap实验 3.2 none实验 4 背景知识 5. 机制分析 5.1 什么是acquire 5.2 那么,什么时候发送acquire消息呢 6. strongswan与xfrm之间的trap机制 0. 你必须同时知道,strongswan,xfrm,strongswan connect trap三个概念. 才有继续读下去的意义. 入门请转到:[T…
继续整理以前的博客,第二弹:用ssh建立机器之间的信任机制 #!/bin/bash #需要远程添加信任机制的机器 REMOTE[]=db-XXX-XXX1.db01 REMOTE[]=db-XXX-XXX2.db01 REMOTE[]=jp01-XXX-XXX1.jp01 REMOTE[]=jp01-XXX-XXX2.jp01 #REMOTE的数组中元素个数 COUNT=${#A[@]} #远程机器登录的用户名 REMOTE_USER="wuddny" OTHER_REMOTE_USE…
目录 strongwan sa分析(三) xfrm与strongswan内核接口分析 1. strongswan的实现 2. 交互机制 4. xfrm的消息通信的实现 strongwan sa分析(三) xfrm与strongswan内核接口分析 1. strongswan的实现 如下图,业务场景可以分为两类: 下发类的交互主要由包触发或用户配置动作触发. 消息类的交互主要由watcher监听socket,然后触发. 2. 交互机制 2.1 下发消息 消息名 功能定义 XFRM_MSG_ALLO…
strongswan SA分析(一) 1 概念 下面主要介绍两个本文将要阐述的核心概念.他们是SA和SP.注意,这不是一篇不需要背景知识的文章.作者认为你适合阅读接下来内容的的前提是,你已经具备了一下三方面的知识: a. 什么是VPN. b. 什么是IPsec,包括IKE,ESP,strongswan都是什么等. c. 一般的linux使用方法和常见概念. 1.1 什么是SAD,SPD SAD是Security Association Database的缩写. SPD是Security Poli…
history: 2019-06-05, 增加配置文件解析部分. 2019-06-05,增加plugin优先级排序部分. charon进程初始化阶段的流程图 约定: 实线代表流程图. 虚线代表调用栈,箭头方向代表自上而下. 黄线是辅助线,请自己理解. 图: netlink模块的类图 图: 从Task到内核xfrm模块的调用关系图 说明: 该图以kernel-netlink plugin为例分析了strongswan 5.7.1的主要代码架构. 该图的后续演进维护将留着这个地方,2中的文档将不会被…
目录 strongswan sa 资料 编译 启动 进程信息 结构 架构图与插件 配置运行 传统配置方法 新的配置方法 其他配置方法 详细的配置文档 配置示例 用法 加密库 libgmp libcrypto libgcrypto 依赖的内核模块 child sa 构成 定义 sa信息查看与调试 证书 转发 隧道 路由 MSS/MTU VICI interface 编译DEBUG gdb 代码 接口 架构流程图 ipsec初始化 add policy的调用栈 add sa的调用栈 更多strong…
前言 如前所述, 我们知道,strongswan以插件功能来提供各种各样的功能.插件之间彼此相互提供功能,同时也有可能提供重复的功能. 这个时候,便需要一个优先级关系,来保证先后加载顺序. 方法 在配置文件中,有这样一个配置项,配给每一个plugin charon.plugins.<name>.load 它的值,可以是Yes,NO,可以是数字.Yes,No代表是否启用该插件.通知默认赋予优先级的值1. 优先级值随数字增大,优先级越高.高优先级的会 更先被加载.同优先级的,按插件名字的字母表顺序…
目录 strongwan sa分析(二) 名词约定 rekey/reauth 机制分析 1 概述 2 reauth 3 CHILD SA rekey 4 IKE SA rekey 5 其他 strongwan sa分析(二) 名词约定 client / initiator: IKE连接的首先发起方. server / responder: IKE连接首先发起方的对方,即响应方. IKE SA: 用于对ISAKMP数据包进行加密的SA. CHILD SA / IPsec SA: 用于对传输数据(用…
前言 我们知道,strongswan是基于插件式管理的.不同的插件有不同的配置文件,在这下面, 我们以netlink的插件为例:etc/strongswan.d/charon/kernel-netlink.conf 在这个文件里,提供了不同的针对插件的配置项.接下来我们将讲解,如何开发这些配置项. 配置文件结构 在开始之前,先了解一下strongswan的配置文件组织结构, strongswan的所有配置项都是层级结构组织的,如:charon.plugins.kernel-netlink.for…
使用METHOD宏的函数定义: METHOD(message_t, get_message_id, uint32_t, private_message_t *this) { return this->message_id; } METHOD宏的定义: /** * Method declaration/definition macro, providing private and public interface. * * Defines a method name with this as fi…
摘要:Part I探析GPUclient之间的同步问题,以及Chromium的GL扩展同步点机制的基本原理.本文将源码的角度剖析同步点(SyncPoint)机制的实现方式. 同步点机制的实现主要涉及到是怎样跨进程实现两个GL扩展接口InsertSyncPointCHROMIUM和WaitSyncPointCHROMIUM,以及GPU服务端的同步点等待. GPUclient GPUclient将全部的GL命令都封装在GLES2Implementation中.GLES2Implementation将…
摘要:Chromium于GPU多个流程架构的同意GPUclient这将是这次访问的同时GPU维修,和GPUclient这之间可能存在数据依赖性.因此必须提供一个同步机制,以确保GPU订购业务.本文讨论了下一个多进程架构GPUclient之间的同步,而同步点(SyncPoint). GPU进程架构等基本概念 我们知道,Chromium是一个多进程架构的软件系统.出于安全和稳定性方面的考虑,Chromium有个专门的进程(或者线程)和GPU设备进行交互,运行GL操作,也就是说,不论什么一条GL命令都…
我们都知道原始值之间是可以互相转换的,但是如果对象转原始值呢? 所有的对象在布尔上下文(context)中均为 true .所以对于对象,不存在 to-boolean 转换, 只有字符串和数值转换. 数值转换发生在对象相减或应用数学函数时.例如, Date 对象(将在 日期和时间 一章中介 绍)可以相减, date1 - date2 的结果是两个日期之间的差值. 至于字符串转换 -- 通常发生在我们像 alert(obj) 这样输出一个对象和类似的上下文中. 所以,由此可见对象转原始值的情况下大…
近日在改动了一下下引擎代码(为了自己的组件),发现有些接口是仅仅有特定类及其内部函数才去訪问,却不使用友元声明的形式进行数据訪问--当然使用了普通非virtual的形式也就是意味着不建议重载. 故此: 1.建议派生类(或同意)重载的声明为虚函数即virtual类型, 2.强制派生类实现的声明为纯虚函数 3.不希望派生类重载或覆盖的函数则为普通类,假设訪问群体有限定范围或者范围比較少.能够考虑添加友元+protected的方式进行訪问控制,从而实现有效设计信息传达.可是有的时候我们不能保证可能须要…
一.普及Nginx与Php-fpm相关知识点 Nginx是什么 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器. Php-fpm是什么 1.cgi.fast-cgi协议 cgi的历史 早期的webserver只处理html等静态文件,但是随着技术的发展,出现了像php等动态语言.webserver处理不了了,怎么办呢?那就交给php解释器来处理吧!交给php解释器处理很好,但是,php解释器如何与webserve…
一.普及Nginx与Php-fpm相关知识点 Nginx是什么 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器. Php-fpm是什么 1.cgi.fast-cgi协议 cgi的历史 早期的webserver只处理html等静态文件,但是随着技术的发展,出现了像php等动态语言.webserver处理不了了,怎么办呢?那就交给php解释器来处理吧!交给php解释器处理很好,但是,php解释器如何与webserve…
一 默认情况下,我们使用strongswan建立了一个ipsec隧道之后,建立的policy如下: [root@D129 OUTPUT]# ip xfrm policy src dst dir ptype main tmpl src 192.168.8.129 dst 192.168.8.9 proto esp spi mode tunnel src dst dir fwd priority ptype main tmpl src 192.168.8.9 dst 192.168.8.129 pr…
StrongSwan is an open source IPsec-based VPN Solution. It supports both the IKEv1 and IKEv2 key exchange protocols in conjunction with the native NETKEY IPsec stack of the Linux kernel. This tutorial will show you how to use strongSwan to set up an I…
前言 在单页应用中,view与view之间的通信机制一直是一个重点,因为单页应用的所有操作以及状态管理全部发生在一个页面上 没有很好的组织的话很容易就乱了,就算表面上看起来没有问题,事实上会有各种隐忧,各种坑等着你去跳 最初就没有一定理论上的支撑,极有可能是这么一种情况: ① 需求下来了,搞一个demo做交待 ② 发现基本满足很满意,于是直接在demo中做调整 上面的做法本身没有什么问题,问题发生在后期 ③ 在demo调整后应用到了实际业务中,发现很多地方有问题,于是见一个坑解决一个坑 ④ 到最…
对于vue而言,以为其核心思想为前端组建化.所以组建之间的通信必不可少. 相信接触过Angularjs的童鞋都知道angularjs的控制器之间的通信机制. 1:父传子:官方的$broadcast()广播的机制,发送广播,它可以向下传递数据,比如,父控制器向子控制器传递数据,或者 $rootScope 向任意控制器传递数据. 2:子传父:$emit();触发事件,它可以向上传递数据,比如,子控制器向父控制器,还有控制器向 $rootScope 3:创建服务,借助第三方的服务机制,依赖注入进需要的…
dubbo客户端和dubbo服务端之间存在心跳,由dubbo客户端主动发起,可参见dubbo源码 HeartbeatTask. dubbo服务端和注册中心(zk)存在心跳,由dubbo服务端发起,这是基于zk集群和zk客户端之间的心跳机制. 服务端和zk之间的心跳是zkclient维护的,dubbo并未有定时心跳. zk上注册的服务和消费节点都是临时节点,可在配置dynamic为false创建永久节点…
当构建一个大而负责的应用程序时,通用的做法时将功能拆分到离散的模块程序集中.将模块之间的静态引用最小化.这使得模块可以被独立的开发,测试,部署和升级,以及它迫使松散耦合的沟通. 当在模块之间通信时,你需要知道不同通信方式之间的区别,那样你才能确定哪种方式对于你的特定的场景最合适,Prism类库提供了以下几种通信方式: 命令.当希望对于用户的交互马上采取动作时使用. 事件聚合.用于ViewModel,展现层,或者控制之间没有所期望的直接动作时. 区域上下文.使用它可以提供宿主和宿主区域的View之…
0x01 安装 ====> CentOS RPM安装 下载:https://pkgs.org/download/strongswanwget http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/s/strongswan-5.7.2-1.el7.x86_64.rpmrpm -ivh strongswan-*.rpm 或者是 yum -y install epel-releaseyum -y install openss…
一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天,按中国辞旧迎新的传统,也作为我2014年第一篇博客,我想开篇前要总结下2013年的技术学习.今年我当爸爸了,当爸爸的人是没啥时间研究什么技术和写博客的,所以2013年上半年我的文章很少很少,直到老婆5月回家待产才有重新拿起书,提起笔写技术博客.今年老婆要回上海了,估计2014年的博客数量又会少点,…
一.UIViewController 的生命周期 下面带 (NSObject)的方法是NSObject提供的方法.其他的都是UIViewController 提供的方法. load   (NSObject) initialize   (NSObject) init   (NSObject) initWithCoder initWithNibName awakeFromNib   (NSObject) loadView viewDidLoad viewWillAppear updateViewCo…
本文地址 可以拜读: 从零开始学 Java 分享提纲: 1. Java数据结构 2. Java 集合框架 3. Java泛型 4. Java序列化 5. Java网络编程 6. Java发送Email 7. Java多线程编程 8. Java Applet基础 9. Java MySQL连接 1. java数据结构 1)[概述] Java工具包提供了强大的数据结构.在Java中的数据结构主要包括以下几种接口和类: 枚举(Enumeration) 位集合(BitSet) 向量(Vector) 栈(…
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 整体模块module分析: 打开Strate…
作为前端开发人员,对于我们的站点或应用的缓存机制我们能做的似乎不多,但这些却是与我们关注的性能息息相关的部分,站点没有做任何缓存机制,我们的页面可能会因为资源的下载和渲染变得很慢,但大家都知道去找前端去解决页面慢的问题而不会去找服务端的开发人员.因此,了解相关的缓存机制和充分的利用它似乎就变得必不可少. web端的缓存机制其实有多种,我在这里只是学习和整理了以浏览器为载体的HTTP缓存机制,看看它是如何工作的. 文章目录: 一.web缓存的种类 二.为什么需要浏览器缓存?我们需要做些什么? 三.…
在深入学习zookeeper我想先给大家介绍一个和zookeeper相关的应用实例,我把这个实例命名为远程调用服务.通过对这种应用实例的描述,我们会对zookeeper应用场景会有深入的了解. 远程调用是系统与系统之间的通信机制,它的另一种理解就是进程间的通信.做分布式系统的开发,远程调用技术是其核心技术.远程调用技术可以将一组计算机系统形成一个网络系统,对外提供整体服务,那么这一群的计算机系统就构成了一个更大型,性能更高的计算机系统. 我在前面的博客里介绍了一种分布式网站的架构设计,其中就有一…
在并发编程中,多个线程之间采取什么机制进行通信(信息交换),什么机制进行数据的同步? 在Java语言中,采用的是共享内存模型来实现多线程之间的信息交换和数据同步的. 线程之间通过共享程序公共的状态,通过读-写内存中公共状态的方式来进行隐式的通信.同步指的是程序在控制多个线程之间执行程序的相对顺序的机制,在共享内存模型中,同步是显式的,程序员必须显式指定某个方法/代码块需要在多线程之间互斥执行. 在说Java内存模型之前,我们先说一下Java的内存结构,也就是运行时的数据区域: Java虚拟机在执…