openswan一条隧道多保护子网配置
|
在学习IKE协商过程中,一般都知道IKE支持这种配置:“一个IKE SA可以保护多个Ipsec SA”。这种场景在实际ipsec环境部署过程中也是相当常见,但是对于openswan是否支持此功能,以及如何进行配置一直不太清楚,直到前几天才得到确定,因此特意记录下来。
我是在两台虚拟机中搭建的测试环境,并通过配置文件进行IPsec隧道配置。
我的网络拓扑如下:
我配置了一条隧道test,协商地址为:192.168.1.10 VS 192.168.1.13,他们中间是我家的路由器(木办法,我电脑通过无线网卡上网,普通的那个网卡没用,无法桥接使用,因此将虚拟机网卡桥接到了我的无线网卡上,这样虚拟机便可以直接通讯了);
第二阶段保护子网有三个,分别为 :
左端保护子网 |
右端保护子网 |
224.0.0.0/24 |
224.0.0.0/24 |
192.168.105.0/24 |
224.0.0.0/24 |
10.1.2.0/24 |
224.0.0.0/24 |
具体配置信息如下(兩端配置文件相同):
conn test
auto=start
pfs=no # PFS(Perfect Forward Secrecy)
compress=no # IP Compression
type=tunnel
keyingtries=0
disablearrivalcheck=no
## phase 1 ##
ike=aes128-sha1;modp1024 # 第一阶段参数
ikelifetime=86400s # 第一阶段的生存时间
keyexchange=ike
## phase 2 ##
phase2alg=aes128-sha1 # 第二阶段参数
salifetime=3600s # 第二阶段参数
phase2=esp
left=192.168.1.10
leftid=ToneySun@papa.com.cn
leftsubnets={224.0.0.0/24 10.1.2.0/24 192.168.105.0/24}
leftsourceip=192.168.1.10
leftnexthop=%defaultroute
right=192.168.1.13
rightid=@right
rightsubnet=224.0.0.0/24
rightsourceip=192.168.1.13
rightnexthop=%defaultroute
# rsakey AQPGLAfkE
leftrsasigkey=0sAQPGLAfkEfGISg4FfXZqRe47LMX5sGyG+0ec1b5FWDriEpy4tiOvjusVzx2eyP3PTM+J9uKW93GxRugxpqa82O/aegGpnUpWGHBnEBBIvjpiMawrv3RhtCYeXodMKKqI6jhdEYzU69AYHkbPI3jOtk8TVYhaoSEkDRoBkbUzasAXOCrxL6a61G8C8XwOaW0qz+yEaoYwh/Nhc0fz1li/vQWofwXuR7ZQ5FlfDUY+JCgqbIhpmUfA9mRtawqIupYxQO3j55lhX4yUT9mBcRl9dlUNZnNEXL3hvoIABm/O+xMTwM695JBF0lVM5MJ/zizy7TsbHFJlNEPuGMI/An4FseHK0pQwe4BUZ08A8izIiI9ZT4Lp
# rsakey AQOzIeXfR
rightrsasigkey=0sAQOzIeXfRPL5ODGw97Y6wwotc9LExdihgdfxprYLKukKSpe3oH9G6smILqqkU+8INImuHwpL7mDPqKxDWb/YiYxRgRciXAMkuhq8c/IjcVIbK9EXSmWyPkC1Rn5+cD+2FDUd85FtQWMlEObwLJDC0UxqN5ZoFr7sR0Kur9LqZFS1FlD72E/x3RckY1R/LiR27R83Zv2EXEi1lhYf/ZstKPsGuzlEAzSnyV6jRz9Urz/SFrnyL8vGapiq5p6q+PkBEqsw97Wp8taj8tzK+lH1oxMB4+ArUKhGNk/w+tKPgKrLI8AR2nh2892P6cN0dta83t67k8Mf0ZrOCpxWLcZUnjLkFBvs9fJca3ONXH2RA+jMjn1l
当时为了测试保护子网是否可以配置组播,因此我将保护子网设置成了224.0.0.0组播网段。结果是隧道可以协商成功,但感兴趣流是否真的可以走此流量,仍是不清楚,但从结果和常理推测来看,应该是可以封装组播报文了,因为openswan开源代码和Linux内核实现时,如果说保护子网不支持组播报文,那么应该不会让配置组播地址,这相当于一个重大bug。但是两个都没有进行限制,因此我个人认为它是可以封装组播报文的。
隧道添加完毕后,通过whack命令查看隧道配置情况:
000 "test/1x0": 224.0.0.0/24===192.168.1.10[ToneySun@papa.com.cn]---192.168.1.1...192.168.1.1---192.168.1.13[@right]===224.0.0.0/24; erouted; eroute owner: #12 000 "test/1x0": myip=192.168.1.10; hisip=192.168.1.13; 000 "test/1x0": keys: 1:8F4C 47D1 466A 6F7C C469 B04C 9525 1F9B E69A E022 2:none... 000 "test/1x0": ....1:AD25 3E8F B131 F1DB 5926 B2C9 CCF1 2D3E A9D7 858D 2:none 000 "test/1x0": ike_life: 86400s; ipsec_life: 3600s; rekey_margin: 540s; rekey_fuzz: 100%; keyingtries: 0 000 "test/1x0": policy: RSASIG+ENCRYPT+TUNNEL+UP+IKEv2ALLOW+SAREFTRACK; prio: 24,24; interface: ens33; kind=CK_PERMANENT 000 "test/1x0": newest ISAKMP SA: #3; newest IPsec SA: #12; eroute owner: #12; 000 "test/1x0": aliases: test 000 "test/1x0": IKE algorithms wanted: AES_CBC(7)_128-SHA1(2)_000-MODP1024(2); flags=-strict 000 "test/1x0": IKE algorithms found: AES_CBC(7)_128-SHA1(2)_160-MODP1024(2) 000 "test/1x0": IKE algorithm newest: AES_CBC_128-SHA1-MODP1024 000 "test/1x0": ESP algorithms wanted: AES(12)_128-SHA1(2)_000; flags=-strict 000 "test/1x0": ESP algorithms loaded: AES(12)_128-SHA1(2)_160 000 "test/1x0": ESP algorithm newest: AES_128-HMAC_SHA1; pfsgroup=<N/A> 000 "test/2x0": 10.1.2.0/24===192.168.1.10[ToneySun@papa.com.cn]---192.168.1.1...192.168.1.1---192.168.1.13[@right]===224.0.0.0/24; erouted; eroute owner: #11 000 "test/2x0": myip=192.168.1.10; hisip=192.168.1.13; 000 "test/2x0": keys: 1:8F4C 47D1 466A 6F7C C469 B04C 9525 1F9B E69A E022 2:none... 000 "test/2x0": ....1:AD25 3E8F B131 F1DB 5926 B2C9 CCF1 2D3E A9D7 858D 2:none 000 "test/2x0": ike_life: 86400s; ipsec_life: 3600s; rekey_margin: 540s; rekey_fuzz: 100%; keyingtries: 0 000 "test/2x0": policy: RSASIG+ENCRYPT+TUNNEL+UP+IKEv2ALLOW+SAREFTRACK; prio: 24,24; interface: ens33; kind=CK_PERMANENT 000 "test/2x0": newest ISAKMP SA: #2; newest IPsec SA: #11; eroute owner: #11; 000 "test/2x0": aliases: test 000 "test/2x0": IKE algorithms wanted: AES_CBC(7)_128-SHA1(2)_000-MODP1024(2); flags=-strict 000 "test/2x0": IKE algorithms found: AES_CBC(7)_128-SHA1(2)_160-MODP1024(2) 000 "test/2x0": IKE algorithm newest: AES_CBC_128-SHA1-MODP1024 000 "test/2x0": ESP algorithms wanted: AES(12)_128-SHA1(2)_000; flags=-strict 000 "test/2x0": ESP algorithms loaded: AES(12)_128-SHA1(2)_160 000 "test/2x0": ESP algorithm newest: AES_128-HMAC_SHA1; pfsgroup=<N/A> 000 "test/3x0": 192.168.105.0/24===192.168.1.10[ToneySun@papa.com.cn]---192.168.1.1...192.168.1.1---192.168.1.13[@right]===224.0.0.0/24; erouted; eroute owner: #10 000 "test/3x0": myip=192.168.1.10; hisip=192.168.1.13; 000 "test/3x0": keys: 1:8F4C 47D1 466A 6F7C C469 B04C 9525 1F9B E69A E022 2:none... 000 "test/3x0": ....1:AD25 3E8F B131 F1DB 5926 B2C9 CCF1 2D3E A9D7 858D 2:none 000 "test/3x0": ike_life: 86400s; ipsec_life: 3600s; rekey_margin: 540s; rekey_fuzz: 100%; keyingtries: 0 000 "test/3x0": policy: RSASIG+ENCRYPT+TUNNEL+UP+IKEv2ALLOW+SAREFTRACK; prio: 24,24; interface: ens33; kind=CK_PERMANENT 000 "test/3x0": newest ISAKMP SA: #1; newest IPsec SA: #10; eroute owner: #10; 000 "test/3x0": aliases: test 000 "test/3x0": IKE algorithms wanted: AES_CBC(7)_128-SHA1(2)_000-MODP1024(2); flags=-strict 000 "test/3x0": IKE algorithms found: AES_CBC(7)_128-SHA1(2)_160-MODP1024(2) 000 "test/3x0": IKE algorithm newest: AES_CBC_128-SHA1-MODP1024 000 "test/3x0": ESP algorithms wanted: AES(12)_128-SHA1(2)_000; flags=-strict 000 "test/3x0": ESP algorithms loaded: AES(12)_128-SHA1(2)_160 000 "test/3x0": ESP algorithm newest: AES_128-HMAC_SHA1; pfsgroup=<N/A> 000 |
隧道协商成功后,通过whack命令查看隧道协商情况:
000 #14: "test/1x0":500 IKEv1.0 STATE_QUICK_I1 (sent QI1, expecting QR1); EVENT_RETRANSMIT in 24s; lastdpd=-1s(seq in:0 out:0); idle; import:admin initiate 000 #12: "test/1x0":500 IKEv1.0 STATE_QUICK_I2 (sent QI2, IPsec SA established); EVENT_SA_EXPIRE in 675s; newest IPSEC; eroute owner; isakmp#3; idle; import:admin initiate 000 #12: "test/1x0" esp.da8cbccf@192.168.1.13 esp.d360f4f8@192.168.1.10 tun.0@192.168.1.13 tun.0@192.168.1.10 ref=0 refhim=4294901761 000 #3: "test/1x0":500 IKEv1.0 STATE_MAIN_I4 (ISAKMP SA established); EVENT_SA_REPLACE in 82667s; newest ISAKMP; lastdpd=-1s(seq in:0 out:0); idle; import:admin initiate 000 #4: "test/1x0":500 IKEv1.0 STATE_MAIN_R3 (sent MR3, ISAKMP SA established); EVENT_SA_REPLACE in 83181s; lastdpd=-1s(seq in:0 out:0); idle; import:not set 000 #9: "test/1x0":500 IKEv1.0 STATE_QUICK_R2 (IPsec SA established); EVENT_SA_REPLACE in 390s; isakmp#6; idle; import:not set 000 #9: "test/1x0" esp.43aae72@192.168.1.13 esp.5b469df8@192.168.1.10 tun.0@192.168.1.13 tun.0@192.168.1.10 ref=0 refhim=4294901761 000 #6: "test/1x0":500 IKEv1.0 STATE_MAIN_R3 (sent MR3, ISAKMP SA established); EVENT_SA_REPLACE in 83190s; lastdpd=-1s(seq in:0 out:0); idle; import:not set 000 #5: "test/1x0":500 IKEv1.0 STATE_MAIN_R3 (sent MR3, ISAKMP SA established); EVENT_SA_REPLACE in 83181s; lastdpd=-1s(seq in:0 out:0); idle; import:not set 000 #15: "test/2x0":500 IKEv1.0 STATE_QUICK_I1 (sent QI1, expecting QR1); EVENT_RETRANSMIT in 37s; lastdpd=-1s(seq in:0 out:0); idle; import:admin initiate 000 #11: "test/2x0":500 IKEv1.0 STATE_QUICK_I2 (sent QI2, IPsec SA established); EVENT_SA_EXPIRE in 665s; newest IPSEC; eroute owner; isakmp#2; idle; import:admin initiate 000 #11: "test/2x0" esp.ab81cf5e@192.168.1.13 esp.dfb5ea09@192.168.1.10 tun.0@192.168.1.13 tun.0@192.168.1.10 ref=0 refhim=4294901761 000 #2: "test/2x0":500 IKEv1.0 STATE_MAIN_I4 (ISAKMP SA established); EVENT_SA_REPLACE in 82615s; newest ISAKMP; lastdpd=-1s(seq in:0 out:0); idle; import:admin initiate 000 #8: "test/2x0":500 IKEv1.0 STATE_QUICK_R2 (IPsec SA established); EVENT_SA_REPLACE in 381s; isakmp#5; idle; import:not set 000 #8: "test/2x0" esp.a232fdce@192.168.1.13 esp.b66703a8@192.168.1.10 tun.0@192.168.1.13 tun.0@192.168.1.10 ref=0 refhim=4294901761 000 #7: "test/3x0":500 IKEv1.0 STATE_QUICK_R2 (IPsec SA established); EVENT_SA_REPLACE in 381s; isakmp#4; idle; import:not set 000 #7: "test/3x0" esp.d288020b@192.168.1.13 esp.205dd4b1@192.168.1.10 tun.0@192.168.1.13 tun.0@192.168.1.10 ref=0 refhim=4294901761 000 #10: "test/3x0":500 IKEv1.0 STATE_QUICK_I2 (sent QI2, IPsec SA established); EVENT_SA_REPLACE in 107s; newest IPSEC; eroute owner; isakmp#1; idle; import:admin initiate 000 #10: "test/3x0" esp.6084c13a@192.168.1.13 esp.43d65919@192.168.1.10 tun.0@192.168.1.13 tun.0@192.168.1.10 ref=0 refhim=4294901761 000 #1: "test/3x0":500 IKEv1.0 STATE_MAIN_I4 (ISAKMP SA established); EVENT_SA_REPLACE in 82845s; newest ISAKMP; lastdpd=-1s(seq in:0 out:0); idle; import:admin initiate 000 |
可以看出3个保护子网全部协商成功。
openswan一条隧道多保护子网配置的更多相关文章
- ipsec.conf配置文件多个保护子网解析流程
Author : Email : vip_13031075266@163.com Date : 2021.01.23 Copyright : 未经同意不得 ...
- 7、二种 为二个不同的子网配置DHCP服务器(中继代理服务器)
环境如下: (参考之前,保证二个子网可以互相ping通) 虚拟机vm1 192.168.170.3 VMnet8 (NAT模式) 虚拟 ...
- win7有多条隧道适配器(isatap、teredo、6to4)的原因及关闭方法
问题:sdp协商时,带有IPV6的信息,需要将IPV6相关信息去掉 原因:网卡启用了ipv6通道 解决:关闭IPv6数据接口 netsh interface isatap set state disa ...
- openswan IPSec专栏目录锦集
为了方便查阅现有的文章,特准备一个目录页供后续查询使用 专栏序言 1. 基础知识 openswan任务调度基础知识之信号 2. openswan环境搭建 openswan框架和编译时说明 opensw ...
- openswan框架和编译时说明
刚开始学习openswan项目代码时,自己尝试了在虚拟机上编译.安装.运行openswan代码,由于当时刚开始学习openswan代码,因此对于其构成并不清楚,在编译.运行过程中有了问题,基本是通过百 ...
- 快速模式第二包: quick_inI1_ouR1()
文章目录 1. 序言 2. quick_inI1_outR1()流程图 3. 快速模式消息②数据包格式 4. 源码分析 4.1 quick_inI1_outR1() 4.2 quick_inI1_ou ...
- 快速模式第三包:quick_inR1_outI2()
快速模式第三包:quick_inR1_outI2() 文章目录 快速模式第三包:quick_inR1_outI2() 1. 序言 2. quick_inR1_outI2()的处理流程 3. 快速模式第 ...
- 内部办公网与IDC机房的GRE隧道配置实践
背景 公司内网与机房服务器为了实现用内网IP通信的功能,故使用了linux的IP gre隧道的方式.使得公司内部可以直接通过路由直连的方式访问机房服务器. 拓扑图如下: 注:拓扑中的外网IP为虚构的I ...
- 华三F100系列防火墙 、华为USG6300系列防火 GRE 隧道配置
GRE概述: 通用路由封装(GRE: Generic Routing Encapsulation)是通用路由封装协议,可以对某些网络层协议的数据报进行封装,使这些被封装的数据报能够在IPV4网络中传输 ...
随机推荐
- Scrapy入门到放弃04:下载器中间件,让爬虫更完美
前言 MiddleWare,顾名思义,中间件.主要处理请求(例如添加代理IP.添加请求头等)和处理响应 本篇文章主要讲述下载器中间件的概念,以及如何使用中间件和自定义中间件. MiddleWare分类 ...
- Netty入门(一):ByteBuf
网络数据的基本单位总是字节.Java NIO 提供了 ByteBuffer 作为它的字节容器,但是这个类使用起来过于复杂,而且也有些繁琐.Netty 的 ByteBuffer 替代品是 ByteBuf ...
- 开源与Saas,如何选择软件?
随着云计算的发展和普及,在云上使用软件已经成为了主流,为了帮助广大用户理解,我在这里对云上软件的三种主要形态以及如何做出选择做一个简单的分析. 开源免费软件 绝大部分开源软件都是免费的,免费的出发点有 ...
- Feign远程调用
有关微服务中,服务与服务如何通信,我已经给大家介绍了Ribbon远程调用的相关知识,不知道大家有没有发现Ribbon的问题呢? Ribbon的问题 在Ribbon中,如果我们想要发起一个调用,是这样的 ...
- Flutter开发进阶学习指南Flutter开发进阶学习指南
Flutter 的起源 Flutter 的诞生其实比较有意思,Flutter 诞生于 Chrome 团队的一场内部实验, 谷歌的前端团队在把前端一些"乱七八糟"的规范去掉后,发现在 ...
- 2020Android高级开发面试题以及答案整理,持续更新中~
本篇收录了一些大厂面试中经常会遇到的经典面试题,并且我做好了整理分类.虽然今年的金九银十已经过去了,但是可以为明年的金三银四做准备啊,相信每一个跳槽季都有很多的前端开发者蠢蠢欲动,通过对本篇知识的整理 ...
- java使用Selenium操作谷歌浏览器学习笔记(三)键盘操作
我们用Selenium打开网页后,可能需要在输入框输入一些内容等等,这时候就需要键盘操作了 使用sendKEys进行键盘操作,在bing的搜索框中输入内容并点击跳转 1 import org.open ...
- dython:Python数据建模宝藏库
尽管已经有了scikit-learn.statsmodels.seaborn等非常优秀的数据建模库,但实际数据分析过程中常用到的一些功能场景仍然需要编写数十行以上的代码才能实现. 而今天要给大家推荐的 ...
- SpringMVC学习05(整合ssm)
5.整合SSM 环境要求 环境: IDEA MySQL 5.7.19 Tomcat 9 Maven 3.6 要求: 需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单 ...
- Swagger在线文档使用教程
springboot整合Swagger2 1.首先创建一个springboot工程,在pom文件内导入依赖 <!--swagger依赖--> <!--Swagger2- ...