月度归档:2017年02月

Int64/Long

Int64.Max        9223372036854775807
UInt64.Max        18446744073709551615

每分钟1亿条:

100000000 * 60 * 24

day =144000000000

9223372036854775807 / 144000000000 / 365

year = 175482

每分钟10亿条:

1000000000 * 60 * 24

day =1440000000000

9223372036854775807 / 1440000000000 / 365

year = 17548

每分钟100亿条:

10000000000 * 60 * 24

day =14400000000000

9223372036854775807 / 14400000000000 / 365

year = 1754

 

基于lucene实现自己的推荐引擎

  采用基于数据挖掘的算法来实现推荐引擎是各大电子商务网站、SNS社区最为常用的方
法,推荐引擎常用的Content-Based推荐算法及协同过滤算法(Item-Based
、User-based)在电子商务推荐系统入门v2.0 、电子商务推荐系统入门基础 中已经有所阐述。但从实际应用来看,对于大部分中小型企业来说,
要在电子商务系统完整采用以上算法有很大的难度。

1、常用推荐引擎算法问题

1)、相对成熟、完整、现成的开源解决方案较少

粗略分来,目前与数据挖掘及推荐引擎相关的开源项目主要有如下几类:

数据挖掘相关:主要包括WekaR-ProjectKnimeRapidMinerOrange 等

文本挖掘相关:主要包括OpenNLPLingPipeFreeLingGATE 、Carrot2 等,具体可以参考LingPipe’s Competition

推荐引擎相关:主要包括Apache MahoutDuine frameworkSingular Value Decomposition (SVD) ,其他包可以参考Open Source Collaborative Filtering Written in Java

搜索引擎相关:Lucene、Solr、Sphinx、Hibernate Search等

2)、常用推荐引擎算法相对复杂,入门门槛较低

3)、常用推荐引擎算法性能较低,并不适合海量数据挖掘

以上这些包或算法,除了Lucene/Sor相对成熟外,大部分都还处于学术研究使用,并不能直接应用于互联网大规模的数据挖掘及推荐引擎引擎使用。

2、采用Lucene实现推荐引擎的优势

对很多众多的中小型网站而言,由于开发能力有限,如果有能够集成了搜索、推荐一体化的解决方案,这样的方案肯定大受欢迎。采用Lucene来实现推荐引擎具有如下优势:

1)、Lucene 入门门槛较低,大部分网站的站内搜索都采用了Lucene

2)、相对于协同过滤算法,Lucene性能较高

3)、Lucene对Text Mining、相似度计算等相关算法有很多现成方案

在开源的项目中,Mahout或者Duine Framework用于推荐引擎是相对完整的方案,尤其是Mahout
核心利用了Lucene,因此其架构很值得借鉴。只不过Mahout目前功能还不是很完整,直接用其实现电子商务网站的推荐引擎尚不是很成熟。只不过从
Mahout实现可以看出采用Lucene实现推荐引擎是一种可行方案。

3、采用Lucene实现推荐引擎需要解决的核心问题

Lucene擅长Text Mining较为擅长,Lucene在contrib包中提供了MoreLikeThis功能,可以较为容易实现Content-Based的推荐,但对于涉及用户协同过滤行为的结果(所谓的Relevance Feedback),Lucene目前并没有好的解决方案。需要在Lucene中内容相似算法中加入用户协同过滤行为对因素,将用户协同过滤行为结果转化为Lucene所支持的模型。

4、推荐引擎的数据源

电子商务网站与推荐引擎相关典型的行为:

  • 购买本商品的顾客还买过
  • 浏览本商品的顾客还看过
  • 浏览更多类似商品
  • 喜欢此商品的人还喜欢
  • 用户对此商品的平均打分

因此基于Lucene实现推荐引擎主要要处理如下两大类的数据

1)、内容相似度

例如:商品名称、作者/译者/制造商、商品类别、简介、评论、用户标签、系统标签

2)、用户协同行为相似度

例如:打标签、购买商品、点击流、搜索、推荐、收藏、打分、写评论、问答、页面停留时间、所在群组等等

5、实现方案

5.1、内容相似度

基于Lucene MoreLikeThis实现即可。

5.1、对用户协同行为的处理

1)、用户每一次协同行为都使用lucene来进行索引,每次行为一条记录

2)、索引记录中包含如下重要信息:

商品名、商品id、商品类别、商品简介、标签等重要特征值、用户关联行为的其他商品的特征元素、商品缩略图地址、协同行为类型(购买、点击、收藏、评分等)、Boost值(各协同行为在setBoost时候的权重值)

3)、对评分、收藏、点击等协同行为以商品特征值(标签、标题、概要信息)来表征

4)、不同的协同行为类型(例如购买、评分、点击)设置不同的值setBoost

5)、搜索时候采用Lucene MoreLikeThis算法,将用户协同转化为内容相似度

以上方案只是基于Lucene来实现推荐引擎最为简单的实现方案,方案的准确度及细化方案以后再细说。

更为精细的实现,可以参考Mahout的算法实现来优化。

文章来源:http://www.yeeach.com/2010/10/01/%E5%9F%BA%E4%BA%8Elucene%E5%AE%9E%E7%8E%B0%E8%87%AA%E5%B7%B1%E7%9A%84%E6%8E%A8%E8%8D%90%E5%BC%95%E6%93%8E/

更为精细的实现,可以参考Mahout的算法实现来优化。

Ceph

打造高性能高可靠块存储系统

UnitedStack块存储系统

分布式存储有出色的性能,可以扛很多故障,能够轻松扩展,所以我们UnitedStack使用Ceph构建了高性能、高可靠的块存储系统,并使用它支撑UnitedStack公有云和托管云的云主机、云硬盘服务。

由于使用分布式块存储系统,避免了复制镜像的过程,所以云主机的创建时间可以缩短到10秒以内,而且云主机还能快速热迁移,方便了运维人员对物理服务器上硬件和软件的维护。

用户对于块存储系统最直观的感受来源于云硬盘服务,现在我们的云硬盘的特点是:

  • 每个云硬盘最大支持 6000 IOPS和170 MB/s的吞吐率,95%的4K随机写操作的延迟小于2ms 。
  • 所有数据都是三副本,强一致性,持久性高达10个9。
  • 创建、删除、挂载、卸载都是秒级操作。
  • 实时快照。
  • 提供两种云硬盘类型,性能型和容量型。

软硬件配置

经过多轮的选型和测试,并踩过无数的坑之后,我们选择了合适我们的软件和硬件。

软件

点击查看原图

硬件

  • 从SATA磁盘到SSD,为了提高IOPS和降低Latency。
  • 从消费级SSD到企业级SSD,为了提高可靠性。
  • 从RAID卡到HBA卡,为了提高IOPS和降低Latency。

 

最小部署架构

随着软硬件的升级,需求的调整, 我们的部署架构也不断在演进,力求在成本、性能、可靠性上达到最佳平衡点。

点击查看原图

最小规模部署中有12个节点,每个节点上有3块SSD。节点上有2个万兆口和1个千兆口,虚拟机网络和存储网络使用万兆口,管理网络使用千兆口。每个集群中都有3个Ceph Monitor节点。

轻松扩展

云计算的好处是极强的扩展性,作为云计算的底层架构,也需要有快速的Scale-out能力。在块存储系统的部署架构中,可以以12台节点为单位进行扩展。

点击查看原图

 

改造OpenStack

原生的OpenStack并不支持统一存储,云主机服务Nova、镜像服务Glance、云硬盘服务Cinder的后端存储各不相同,造成了严重的内耗。我们把这三大服务的后端统一起来,进行高效管理,解决了虚拟机创建时间长和镜像风暴等问题,还能让虚拟机随便漂移。

原生的OpenStack

点击查看原图

改造后的OpenStack

点击查看原图

使用原生的OpenStack创建虚拟机需要1~3分钟,而使用改造后的OpenStack仅需要不到10秒钟时间。这是因为nova-compute不再需要通过HTTP下载整个镜像,虚拟机可以通过直接读取Ceph中的镜像数据进行启动。

我们还增加两个OpenStack没有的功能: QoS 和 共享云硬盘。云计算的另外一个好处是租户资源隔离,所以必备QoS。共享云硬盘可以挂载给多台云主机,适用于数据处理的场景。

我们还使用了OpenStack的multi-backend功能,支持多种云硬盘类型,现在我们的云硬盘类型有性能型、容量型,可以满足数据库和大文件应用。

 

高性能

高可靠性

自动化运维

 未来

VERSION: GA,RC,alpha,beta,gamma

阶段版本:

(1)RC:(Release Candidate)

Candidate是候选人的意思,用在软件上就是候选版本。Release.Candidate.就是发行候选版本。和Beta版最大的差别在于Beta阶段会一直加入新的功能,但是到了RC版本,几乎就不会加入新的功能了,而主要着重于除错!

是最终发放给用户的最接近正式版的版本,发行后改正bug就是正式版了,就是正式版之前的最后一个测试版

(2)GA:(general availability)

比如:Apache Struts 2 GA

这是Apache Struts 2首次发行稳定的版本,GA意味着General Availability,也就是官方开始推荐广泛使用了。

(3)alpha、beta、gamma

广义上对测试有三个传统的称呼:alpha、beta、gamma,用来标识测试的阶段和范围。

alpha 是指内测,即现在说的 CB,指开发团队内部测试的版本或者有限用户体验测试版本。

beta 是指公测,即针对所有用户公开的测试版本。

gamma 做过一些修改,成为正式发布的候选版本时(现在叫做 RC - Release Candidate),叫做 gamma。

       其它:

电脑软件在投放市场前,需要有人测试一下,看看是不是有问题,在开发该软件的公司内部的由该公司内部人员测试的称为:Alpha测试。

Alpha测试主要看有没有功能缺失或系统错误,Alpha测试完后一般不会有大问题了,然后把软件拿给用户测试,称为:beta测试,主要是看用户对软件外观,使用方便等的反映。

如果beta1版用户反映有问题,拿到公司修改,改完后发布beta2版,还有不满意的地方,再改,再发布beta3版,直到用户满意,或正式版发布为止。


产品版本:

软件版本里的Final、Beta、Pro、Build.

Beta版:产品(驱动、BIOS)发布之前的测试版本,也叫做β版,与此对应的还有α版(Alpha版)。α版通常是软件开发商内部自行测试的版本,而β版则是公开发布让用户来进行测试的版本。

版本号里面的Build说明这个版本是第几次编译的结果,比如:
V1.79 Build210 比V1.79Build200 的版本要新。

Alpha: 内部测试版
Beta: 公开测试版
Cardware: 属共享软件的一种,只要给作者回复一封电邮或明信片即可。目前这种形式已不多见。
CHT: 繁体中文版
CN/SPC: 简体中文版
EN: 英文版
Corporation / Enterprise: 企业版
Deluxe: 豪华版
Demo: 演示版
Dev: 开发专用版,程序员版本。
Enhance: 增强版 / 加强版
Express&Special: 特别版
Final: 最终版
Free: 免费版
Full: 完全版
Green: 绿色版/破解版
Mini: 迷你版/精简版,只有最基本的功能,占用资源较少
Multi-language: 多语言版
Plus: 属增强版,不过大部分是在程序界面及功能上增强。
Preview --预览版
Professional: 专业版
Registered: 已注册版
Release: 发行版
Retail/RTM: 零售版
Shareware: 共享版
Stable: 稳定版
Standard: 标准版
Ultimate: 旗舰版
Upgrade: 升级版

版本进程:

工作进程:

工作进程:

...

耳机排行

最受欢迎的耳机十大品牌排行榜

 

注:数据来源于网络

TOP.1 森海塞尔耳机

  Sennheiser (声海)为全世界的使用者呈献质量最佳、最动听的声音盛宴。无论是在家里或是在户外;在舞台上、在录音室里或是在音乐骑师..

  TOP.2 铁三角耳机

   鐵三角总公司在1962 年于日本成立,公司的全球开发小组一直致力于音响器材的设计、制造、行销及发行上。鐵三角公司由最初专注于留

  TOP.3 AKG耳机

  1945年,二战后的维也纳被盟军占领,战火几乎将维也纳破坏殆尽,随着重建工作的开始,历史翻开了新的一页。两个精干的维也纳人再次相遇

  TOP.4 索尼耳机

  索尼公司(TYO: 6758, NYSE: SNE)(ソニー株式会社,Sony Corporation),或者索尼株式会社,简称索尼,台湾、香港译名新力公司,简

  TOP.5 飞利浦耳机

  飞利浦是个综合性大集团,目前旗下部门有:飞利浦优质生活,飞利浦照明,和飞利浦医疗系统。   飞利浦公司以生产家用电器、军用和民

  TOP.6 拜亚动力耳机

  提起拜亚话筒、耳机和其他音频产品,专业音响圈几乎无人不知、无人不晓,老一代的音响专家们对于拜亚话筒(过去中文译名为拜尔话筒)更

  TOP.7 漫步者耳机

  Edifier漫步者企业1996年创立于北京,多年来专注于音频技术的研究开发与产品应用,目前已发展成为以专业多媒体音响和家用音响为核心产品

  TOP.8 硕美科耳机

  企业已通过了ISO9001(2000)国际质量体系认证、CE(欧洲认证体系), 同时GS(德国认证体系)与FCC的国际安全认证也在申办当中。

  TOP.9 松下耳机

  80时代,免税商场才能购买到的National黑白电视,另外Technics即为松下针对高保真HiFi器材、以及专业性质产品的商标,松下在航空领域也.

  TOP.10 欧凡耳机

  深圳市欧凡实业有限公司其前身为深圳市声奥电子厂,成立于1996年,为行内起步较早,发展极为迅速的耳机专业生产企业。多年的生产经验

.NET Platform Standard

    .NET Platform Standard 直译过来就是 .NET 平台规范或标准,它的目的就是使 .NET 各个平台之间更加统一和规范 .NET Standard Library 现在有一个对应程序包NETStandard.Library,它的作用是兼容各个 .NET Platform。

 

.NET Platform Standard 列表:

Target Platform Name Alias
.NET Platform Standard netstandard 1.0 1.1 1.2 1.3 1.4 1.5 1.6
.NET Core netcoreapp 1.0
.NET Framework net 4.6.3
4.6.2
4.6.1
4.6
4.5.2
4.5.1
4.5
Universal Windows Platform uap 10.0
Windows win 8.1
8.0
Windows Phone wpa 8.1
Windows Phone Silverlight wp 8.1
8.0
Mono/Xamarin Platforms *
Mono *

 

分别参考:

.NET Platform Standard:https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md

Introducing .NET Standard :https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/

理解 .NET Platform Standard :http://www.cnblogs.com/xishuai/archive/2016/05/24/understand-dotnet-platform-standard.html

 

imports自身发布不携带依赖的程序包,而是使用系统中安装配置的,net45就是上面说的frameworks配置,win81是系统平台的意思,但不只是特指 Windows 8.1 系统。

Platform NuGet identifier
.NET Framework 2.0 - 4.6 net20 - net46
.NET Core netcoreapp
.NET Micro Framework netmf
Windows 8 win8, netcore45
Windows 8.1 win8, netcore451
Windows Phone Silverlight (8, 8.1) wp8, wp81
Windows Phone 8.1 wpa8.1
Universal Windows Platform 10 uap10, netcore50
Silverlight 4, 5 sl4, sl5
MonoAndroid monoandroid
MonoTouch monotouch
MonoMac monomac
Xamarin iOS xamarinios
Xamarin PlayStation 3 xamarinpsthree
Xamarin PlayStation 4 xamarinpsfour
Xamarin PlayStation Vita xamarinpsvita
Xamarin Watch OS xamarinwatchos
Xamarin TV OS xamarintvos
Xamarin Xbox 360 xamarinxboxthreesixty
Xamarin Xbox One xamarinxboxone

 

 

 

ipsec.conf

NAME

ipsec.conf —— IPsec配置
DESCRIPTION

ipsec.conf指定了Openswan IPsec子系统的大多数配置和控制信息。

include ipsec.*.conf 包含指定的配置文件
CONN SECTIONS

conn项定义了一个IPsec连接的规范,名字可以随意定义。例如:

conn snt
		left=10.11.11.1
		leftsubnet=10.0.1.0/24
		leftnexthop=172.16.55.66
		leftsourceip=10.0.1.1
		right=192.168.22.1
		rightsubnet=10.0.2.0/24
		rightnexthop=172.16.88.99
		rightsourceip=10.0.2.1
		keyingtries=%forever

CONN PARAMETERS: GENERAL

connaddrfamily

连接地址族,可用参数为ipv4(缺省)或者ipv6。
IPv6在openswan 2.4中的NETKEY支持和openswan 2.6.33中的KLIPS支持

type

连接类型,参数如下:
tunnel(缺省)表示 host-to-host,host-to-subnet,subnet-to-subnet 隧道模式;
transport,表示 host-to-host传输模式;
passthrough,表示不使用IPsec;        drop,表示丢弃数据;
reject,表示丢弃数据并返回ICMP诊断包

left

[必选项] 左侧设备公网接口IP地址,其中IP地址的格式请看ipsec_ttoaddr(3)。当前支持IPv4和IPv6。
如果其参数为 %defaultroute,同时 config setup 项中的 interfaces 包含 %defaultroute,那么left将自动由本地的缺省路由接口地址填充;leftnexthop也支持。    %any 表示在协商时填充。    %opportunistic 表示 left 和 lefnexthop 的参数从 left 侧客户端的DNS数据中获取

leftsubnet

左侧设备的私有子网,格式为 network/netmask (请看ipsec_ttosubnet(3));当前支持IPv4和IPv6地址范围。
支持 vhost: 和 vnet: 这2个速记,语法与 virtual_private 相同    %priv 表示子网与 virtual_private相同    %no 表示没有子网

leftsubnets

指定左侧设备的多个私有子网,格式 { networkA/netmaskA networkB/netmaskB [..] }。leftsubnet 和 leftsubnets 不能同时使用。 例子请看 testing/pluto/multinet-*

leftprotoport

指定隧道中允许的通过的协议和端口。参数可以是数字或者协议名(请在 /etc/protocols 中查找),例如 leftprotoport=icmp,或 protocol/port,如 tcp/smtp。
ports可以使用数字或名字表示(请在 /etc/services 中查找)。    %any 表示所有的协议端口

leftnexthop

左侧设备连接公网的下一跳网关IP地址;缺省为 %direct。如果这方法没有使用,则leftnexthop为 %defaultroute

leftsourceip

连接中主机的IP地址

leftupdown

当连接状态改变时, 回调此处设置的命令(缺省为 ipsec _updown)。 详细请看 ipsec_pluto(8)

leftfirewall

不再使用此选项

CONN PARAMETERS:AUTOMATIC KEYING

auto

IPsec启动时自动执行,支持的参数有

add (ipsec auto --add)
route(ipsec auto --route)
start(ipsec auto --up)
manual(ipsec manual --up)
ignore 表示不自动启动

具体请看 config setup

authby

2个安全网关之间的认证方法;
secret 表示共享密钥
rsasig 表示RSA数据签名(缺省)
secret|rsasig 同时使用

ike

IKE第一阶段(ISAKMP SA)中的加密/认证算法。
格式为 "cipher-hash;modpgroup,cipher-hash;modpgroup,..."
例如:
ike=3des-sha1,aes-sha1
ike=aes
ike=aes128-md5;modp2048
ike=aes128-sha1;dh22,
ike=3des-md5;modp1024,aes-sha1;modp1536 or ike=modp1536

算法值请查看 ipsec_spi(8)中的 --ike选项。
IKE组合形式:       

cipher:                                    3des or aes
hash:                                      sha1 or md5
pfsgroupt(DHgroup):                        modp1024 or modp153

phase2

设置将产生的SA类型。esp用于加密(缺省),ah用于认证

phase2alg

指定第二阶段中支持的算法。算法之间用逗号分隔

esp

此选项不再使用,用phase2alg代替

ah

连接中的AH算法。算法格式请看 ipsec_spi(8)中的 --ah选项

ikev2

IKEv2(RFC4309)设置使用。
never 或 no 表示不使用IKEv2;
propos 或 yes 表示允许使用IKEv2,同时缺省使用IKEv2进行协商;
insist,表示只接受IKEv2协商,IKEv1将被拒绝;
permit(缺省),表示不主动使用IKEv2,但对端使用IKEv2的话也接受

leftid

左侧参加者的身份确认方法。
可以是IP地址,域名    %fromcert 表示ID从证书的DN获取;%none 表示不使用ID值

leftrsasigkey

左侧RSA签名认证,格式使用RFC2537 ipsec_ttodata(3)编码。    %none 表示不指定值;
%dnsondemand 表示值从DNS中获取当需要使用到此值时;
%dnsonload 表示值从DNS中获取当读取ipsec.conf时;    %cert 表示信息从 %leftcert 中获取

leftrsasigkey2

第2个公钥

leftcert

指定X509证书,如果没有指定全路径,则从 /etc/ipsec.d/certs/ 目录中查找
如果opesnswan编译时指定了 USE_LIBNSS=true,那么openswan将会去NSS数据库中查找RSA key

leftca

指定CA,如果没有指定,那么将用 leftcert 中的证书认为是CA证书

leftsendcert

openswan发送X509证书到远程主机的选项配置。    yes|always 表示总是允许发送证书
ifasked 表示如果远程主机要求证书则进行发送    no|never 表示从不发送证书。
缺省参数为 ifasked

leftxauthserver

左侧为XAUH服务端。可以使用PAM认证或 /etc/ipsec.d/passwd中的MD5口令。对端必须配置为rightxauthclient ,做为XAUTH客户端

leftxauthclient

左侧为XAUT客户端。xauth连接必须进行交互启动,不能使用配置 atuo=start。它必须使用命令行ipsec auto --up conname

leftxauthusername

XAUTH认证中使用的用户名,XAUTH密码在 ipsec.secrets 文件中配置

leftmodecfgserver

左侧是模式配置服务端。它能下发网络配置到客户端。 参数为 yes 或 no (缺省)

leftmodecfgclient

左侧是模式配置客户端。它能从服务端接收网络配置。参数为 yes 或 no (缺省)

modecfgpull

从服务端接收模式配置信息。参数为 yes 或 no (缺省)

modecfgdns1, modecfgdns2, modecfgwins1, modecfgwins2

指定DNS、WINS的IP地址

remote_peer_type

设置远程主机类型。参数为 cisco 或 ietf

forceencaps

参数为 yes 或 no (缺省为no)
当forceencaps=yes时将强制使用RFC-3948封装(UPD端口4500包封闭ESP)
如果此选项打开,那么 nat_traveral=yes必须打开

dpddelay

主机探测延迟时间,缺省为30秒。如果此选项被设置,dpdtimeout也应该设置

dpdtimeout

主机探测超时时间(以秒为单位),缺省为120秒。如果超时,将删除SA

dpdaction

当PDP探测到主机死亡时要执行的动作
hold (缺省)表示eroute将进入 %hold 状态
clear 表示eroute和SA都要清除
restart 表示SA将立即从协商
restart_by_peer 表示所有死亡主机的SA将进行从协商

pfs

参数为 yes 或 no (缺省为yes)

aggrmode

使用野蛮模式替换主模式。野蛮模式不安全,容易受到服务拒绝攻击。
参数为 yes 或 no (缺省为no)

salifetime

SA存活时间,参数为数字 + s/m/h/d (缺省为8h,最大24h)    "keylife""lifetime" 是 "salifetime" 的别名

rekey

参数为 yes 或 no (缺省为 yes)。表示当密钥到期后是否进行从协商

rekeymargin

密钥到期前多长时间进行从协商。参数请看 salifetime (缺省9m)

keyingtries

协商尝试次数。 %forever 表示从不放弃,一直进行协商

ikelifetime

IKE存活时间。参数请看salifetime

compress

是否进行压缩处理。 参数为 yes 或 no (缺省为 no)

metric

设置ipsecX 或 mastX 接口的 metric 优先级

mtu

设置MTU

failureshunt

当协商失败时执行的动作。缺省为 none;passthrough;drop;reject;具体看选项 type

CONFIG SECTIONS

config部分使用为一名字setup,此部分包含了软件启动时所使用到的信息(ipsec_setup(8). 例如:

config setup
		interfaes="ipsec0=eth1 ipsec1=ppp0"
		klipsdebug=none
		plutodebug=control
		protostack=auto
		manualstart=

config setup目前可用的选项如下:

protostack

指定IPsec协议攻栈。参数为 auto/klips/netkey/mast。mast是klips的变种

interfaces

IPsec使用的虚接口和实接口。格式为 "virtual=physical virtual=physical ..."

listen

监听IP地址

nat_traversal

是否支持NAT。参数为 yes 或 no (缺省为no)

disable_port_floasting

是否启用NAT-T。 参数为 yes 或 no (缺省为no)

force_keepalive

是否强制发送NAT-T保活。参数为 yes 或 no (缺省为no)

keep_alive

NAT-T保活包发送间隔时间

oe

是否启用机会加密(Opportunistic Encryption)。参数为 yes 或 no(缺省为no)
只有KLIPS支持此选项

nhelpers

设置pluto处理密码运算的进程(线程)
0表示所有操作都在主线程
-1表示根据CPU进行计算(n-1,n是CPU数)
其它值则表示强制的进程(线程)数

crlcheckinterval

CRL检查间隔时间,单位为秒。 如果设置为0表示开关CRL检查

strictcrlpolicy

是否强制进行CRL检查。参数为 yes 或 no (缺省为no)

forwardcontrol

此选项不再使用。请使用 /etc/sysctl.conf 文件中的 net.ipv4.ip_forward=0 控制IP转发设置

rp_filter

此选项不再使用。请使用 /etc/sysctl.conf 文件中的 net.ipv4.conf/[iface]/rp_filter=0 。 此参数在IPsec必须设置为0

syslog

syslog(2)中的显示名。缺省为 daemon.error

klipsdebug

KLIPS日志输出设置。none表示不输出;all表示全部输出。具体参数请看 ipsec_klipsdebug(8)

plutodebug

pluto日志输出设置。none表示不输出;all表示全部输出。具体参数请看 ipsec_pluto(8)

uniqueids

唯一ID。参数为 yes 或 no (缺省为yes)

plutorestartoncrash

当pluto崩溃时重启,并生成core文件。参数为 yes 或 no(缺省为yes)

plutopts

设置pluto的额外参数。具体请看ipsec_pluto(8)

plutostderrlog

不使用syslog,把日志输出重定向到指定的文件中

pluto

是否启动pluto。参数为 yes 或 no(缺省为yes)

plutowait

在处理下一个协商时,pluto是否等待当前协商完成。参数为 yes 或 no(缺省为no)

prepluto

配置Pluto启动前执行的脚本

postpluto

配置Pluto启动后执行的脚本

dumpdir

设置core dump文件路径

fragicmp

包被分片时是否发送ICMP消息。参数为 yes 或 no (缺省为yes)。此选项只对KLIPS起作用

hidetos

隧道中数据包的TOS设置为0。参数为 yes 或 no(缺省为yes)。此选项只对KLIPS起作用

overridemtu

设置ipsecX接口的MTU。此选项只对KLIPS起作用

IMPLICIT CONNS

系统自动定义了一些conns部分于用默认的策略组。如果conn中定义了auto=ignore,那么默认定义将被忽略

下面是自动提供的定义

conn clear
		type=passthrough
		authby=never
		left=%defaultroute
		right=%group
		auto=route
		
conn clear-or-private
		type=passthrough
		left=%defaultroute
		leftid=%myid
		right=%opportunisticgroup
		failureshunt=passthrough
		keyingtries=3
		ikelifetime=1h
		salifetime=1h
		rekey=no
		auto=route

conn private-or-clear
		type=tunnel
		left=%defaultroute
		leftid=%myid
		right=%opportunisticgroup
		failureshunt=passthrough
		keyingtries=3
		ikelifetime=1h
		salifetime=1h
		rekey=no
		auto=route

conn private
		type=tunnel
		left=%defaultroute
		leftid=%myid
		right=%opportunisticgroup
		failureshunt=drop
		keyingtries=3
		ikelifetime=1h
		salifetime=1h
		rekey=no
		auto=route


conn block
		type=reject
		authby=never
		left=%defaultroute
		right=%group
		auto=route# default policyconn packetdefault
		type=tunnel
		left=%defaultroute
		leftid=%myid
		left=0.0.0.0/0
		right=%opportunistic
		failureshunt=passthrough
		keyingtries=3
		ikelifetime=1h
		salifetime=1h
		rekey=no
		auto=route
		

POLICY GROUP FILES

配置文件在 /etc/ipsec.d/policies/ 目录下,包括

/etc/ipsec.d/policies/block
/etc/ipsec.d/policies/clear
/etc/ipsec.d/policies/clear-or-private
/etc/ipsec.d/policies/private
/etc/ipsec.d/policies/private-or-clear

## 192.168.10.4	host ip
## 106.15.00.126	internet ip
## 192.168.10.1		route

conn beijing-to-shanhai
		left=192.168.10.4
		leftid=106.15.00.126
		leftsubnet=192.168.10.0/24
		leftnexthop=192.168.10.1
		
		right=203.156.000.67
		rightid=203.156.000.67
		rightsubnet=192.168.20.0/24
				
		## phase 1 ##
		ike=3des-sha1,aes128-sha1,aes256-sha1,3des-md5,aes128-md5,aes256-md5,aes256-sha2_256
		keyexchange=ike
		## phase 2 ##
		phase2=esp
		phase2alg=3des-sha1,aes128-sha1,aes256-sha1,3des-md5,aes128-md5,aes256-md5,aes256-sha2_256
		
		auto=start
		authby=secret
		pfs=no
		type=tunnel
		
		ikelifetime=8h
		## keep restart to available
		keyingtries=%forever
		rekey=no
		keylife=1h
		
		dpddelay=40
		dpdtimeout=130
		## disconnected to restart ##
		dpdaction=restart
		

links:
chinease http://www.wscon.cn/16.html
chinease https://segmentfault.com/a/1190000000646294
english  http://blog.csdn.net/werewolf_ace/article/details/50320713