关于GRE over IPsec及IPsec over GRE

2023-11-18

                                   GRE over IPsec & IPsec over GRE
IPSec -Over-GRE是先ipsec后gre,这种我没用过。
GRE -Over-IPSec 是先gre后ipsec,也就是说ipsec是最后的承载方式。一般常用的就是这种,解决了ipsec不支持多播的问题。
另外在mtu上也有一些相关,gre是先分段后封装,而ipsec则是先封装再分段。
个人理解。
 
IPsec over GRE 和GRE over IPsec在配置上的区别:
                                                                    GRE over IPsec                       IPsec over GRE
ACL定义:                                                   GRE数据流                              内网数据流
IKE Peer中指定的remote-address                对方公网地址                          对方GRE Tunnel地址
应用端口:                                                   公网出口                                  GRE Tunnel上
 
GRE over IPSEC(传输模式)
IPSEC封装 GRE
好处:可以利用 GRE封装组播或广播了以及非IP流量,因为如果不使用 GRE的话, IPSEC是传不了组播或广播IP流量的
 
IPSEC over GRE(里外)(tunel模式)
IPSEC over GRE:GRE在 IPSEC外面,由 GRE来封装 IPSEC注意!!!IPSEC over GRE的时候,路由协议流量是明文的
注意!!!当指的peer是对等体物理接口地址的时候不是 IPSEC over GRE,只有当peer是对等体的lookback是才是真正的 IPSEC over GRE
 
 
Cisco Tunnel Over IPSec例子
 
R1 (s1/0)----------------------------------------------S1/0(R2)
200.1.1.1                                               200.1.1.2
由于IPSEC隧道不能承载路由协议.所以对×××的扩展性造成了很大的影响.
GRE能够封装路由协议,但是单纯的password不能解决在公网上面安全性的问题.所以如果把GRE和IPSEC完美的结合起来,不仅可以解决××× 扩展性的问题,同时也能解决安全性的目的.一下的例子是完全按照小弟的一个案子模拟出来的.有什么不妥的地方希望大家指正批评.
R1配置:
sh run
Building configuration...
Current configuration : 1466 bytes
!
version 12.2
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname R1
!
!
ip subnet-zero
!
!
no ip domain-lookup
!
ip audit notify log
ip audit po max-events 100
!
crypto isakmp policy 1
encr 3des
authentication pre-share
group 2
crypto isakmp key cisco address 200.1.1.2
!
!
crypto ipsec transform-set cisco ah-sha-hmac esp-3des
!
crypto map *** local-address Serial1/0
 
crypto map *** 10 ipsec-isakmp   
set peer 200.1.1.2
set transform-set cisco
match address 100
!
call rsvp-sync
!
!
!
!
!
!
!
!
interface Loopback0
ip address 192.168.1.1 255.255.255.0
!
interface Tunnel0
ip address 172.16.1.1 255.255.255.0
tunnel source Serial1/0
tunnel destination 200.1.1.2
crypto map ***
!
interface FastEthernet0/0
no ip address
shutdown
duplex auto
speed auto
!
interface Serial1/0
ip address 200.1.1.1 255.255.255.0
serial restart-delay 0
crypto map ***
!
interface Serial1/1
no ip address
shutdown
serial restart-delay 0
!
interface Serial1/2
no ip address
shutdown
serial restart-delay 0
!
interface Serial1/3
no ip address
shutdown
serial restart-delay 0
!
router ospf 1
router-id 1.1.1.1
log-adjacency-changes
network 172.16.1.1 0.0.0.0 area 0
network 192.168.1.1 0.0.0.0 area 0
!
ip classless
ip http server
!
access-list 100 permit gre host 200.1.1.1 host 200.1.1.2      非常重要
 
!
dial-peer cor custom
!
!
!         
!
!
line con 0
exec-timeout 0 0
logging synchronous
line aux 0
line vty 0 4
!
end
-----------------------------------------------------------------------------------------------------------------------------------
R2的配置:
sh run
Building configuration...
Current configuration : 1466 bytes
!
version 12.2
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname R2
!
!
ip subnet-zero
!
!
no ip domain-lookup
!
ip audit notify log
ip audit po max-events 100
!
crypto isakmp policy 1
encr 3des
authentication pre-share
group 2
crypto isakmp key cisco address 200.1.1.1
!
!
crypto ipsec transform-set cisco ah-sha-hmac esp-3des
!
crypto map *** local-address Serial1/0
crypto map *** 10 ipsec-isakmp   
set peer 200.1.1.1
set transform-set cisco
match address 100
!
call rsvp-sync
!
!
!
!
!
!
!
!
interface Loopback0
ip address 192.168.2.1 255.255.255.0
!
interface Tunnel0
ip address 172.16.1.2 255.255.255.0
tunnel source Serial1/0
tunnel destination 200.1.1.1
crypto map ***
!
interface FastEthernet0/0
no ip address
shutdown
duplex auto
speed auto
!
interface Serial1/0
ip address 200.1.1.2 255.255.255.0
serial restart-delay 0
crypto map ***
!
interface Serial1/1
no ip address
shutdown
serial restart-delay 0
!
interface Serial1/2
no ip address
shutdown
serial restart-delay 0
!
interface Serial1/3
no ip address
shutdown
serial restart-delay 0
!
router ospf 1
router-id 2.2.2.2
log-adjacency-changes
network 172.16.1.2 0.0.0.0 area 0
network 192.168.2.1 0.0.0.0 area 0
!
ip classless
ip http server
!
access-list 100 permit gre host 200.1.1.2 host 200.1.1.1
!
dial-peer cor custom
!
!
!         
!
!
line con 0
exec-timeout 0 0
logging synchronous
line aux 0
line vty 0 4
!
end
 
 
 
  关于 GRE Tunnel Over Ipsec ××× 速度很慢的问题:
 
楼上说的不错,但是一阶段的group的资源浪费不是太明显,因为ISAKMP的SA超时时间是一天,一天内只要 ipsec不断,一般来说,一阶段是不会重新协商的,但是如果2阶段设置PFS,那CPU就厉害了
 
 
有个做法,在inter tun 0下敲tunnel mode ipsec ipv4------------这是 IPSEC自己的tunnel,(不再需要 GRE了)敲了后就不是 GRE OVER IPSEC了,12.4开始有的,不知道你那26支持不
 
 
上面的问题已解决了,原因是那些安全性的设置,导致不能访问应用程序。将这些
no ip redirects
no ip unreachables
no ip proxy-arp
删掉之后正常。
现在还有一个问题,我×××通了之后,用户反映访问速度很慢,用show proc cpu 看到encrypt proc  占用CPU很高,当占用率达到50%左右的时候,Ping值就会很大,访问速度很慢。我尝试将 IPSEC参数做了修改,现已改到:
encry---des     hash---md5   group----1  
crypto   ipsec  trans  esp-des
CPU就会下降一点。但当数据流大时,还是会占用很高的CPU。  
请问,需怎么样调整啊?   IPSEC我已调到最低了啊。。。
还忘大家指点指点,谢谢!
补充: 路由器用的是Cisco 2611XM
Cisco IOS Software, C2600 Software (C2600-ADVSECURITYK9-M), Version 12.4(4)T, RELEASE SOFTWARE (fc1)
 
 
 
IPSEC主模式SA建立详细过程总结
第一阶段
有主模式和积极模式2种
注意!!!只有remote ***和Easy ***是积极模式的,其他都是用主模式来协商的
让IKE对等体彼此验证对方并确定会话密钥,这个阶段永DH进行密钥交换,创建完IKE SA后,所有后续的协商都将通过加密和完整性检查来保护
phase 1帮助在对等体之间创建了一条安全通道,使后面的phase 2过程协商受到安全保护
第二阶段
快速模式
协商IPSEC SA使用的安全参数,创建IPSEC SA,使用AH或ESP来加密IP数据流
详细过程主模式协商
IKE phase 1在IPSEC对等体间交换6条消息,这些消息的具体格式取决于使用的对等体认证方法
一,使用预共享密钥进行验证的主模式(6条)
协商过程使用ISAKMP消息格式来传递(UDP 500)
第一阶段
准备工作
在前2条消息发送以前,发送者和接受者必须先计算出各自的cookie(可以防重放和DOS***),这些cookie用于标识每个单独的协商交换消息
cookie---RFC建议将源目IP,源目端口,本地生成的随机数,日期和时间进行散列操作.cookie成为留在IKE协商中交换信息的唯一标识, 实际上cookie是用来防止DOS***的,它把和其他设备建立IPSEC所需要的连接信息不是以缓存的形式保存在路由器里,而是把这些信息HASH成个 cookie值
1&2消息
消息1---发送方向对等体发送一条包含一组或多组策略提议,在策略提议中包括5元组(加密算法,散列算法,DH,认证方法,IKE SA寿命)
消息2---接受方查看IKE策略消息,并尝试在本地寻找与之匹配的策略,找到后,则有一条消息去回应
注意!!!发起者会将它的所有策略发送给接受者,接受者则在自己的策略中寻找与之匹配的策略(对比顺序从优先级号小的到大的)(默认策略实际就是个模版没作用,如果认证只配置预共享的话,其他参数就会copy默认策略里的)
在1&2消息中报错可能出现的原因
1,peer路由不通
2,crypto iskmp key没有设置
3,一阶段的策略不匹配
3&4消息
这2条消息,用于交换DH的公开信息和随机数
两个对等体根据DH的公开信息都算出了双方相等的密植后,两个nonce连通预共享密钥生成第一个skeyID
随后便根据SKEY__ID来推算出其他几个skeyID
skeyID_d---用来协商出后续IPSEC SA加密使用的密钥的
skeyID_a---为后续的IKE消息协商以及IPSEC SA协商进行完整性检查(HMAC中的密钥)
skeyID_e---为后续的IKE消息协商以及IPSEC SA协商进行加密
5&6消息
这2条消息用于双方彼此验证,这个过程是受skeyID_e加密保护的
为了正确生成密钥,每一个对等体必须找到与对方相对应的预共享密钥,当有许多对等体连接时,每一对对等体两端都需要配置预共享密钥,每一对等体都必须使用ISAKMP分组的源IP来查找与其对等体对应的预共享密钥(此时由于ID还没到,彼此先用HASH来彼此验证对方)
HASH认证成分---SKEYID_a,cookieA,cookieB,preshare_key,SA paload,转换集,策略
在5&6消息中报错可能出现的原因
1,crypto iskmp key设置错了
接受者处理过程
1,用skeyID_e对消息进行加密  2,用ID(源IP)查找出与共享密钥 3,skeyID_a和preshare-key等一堆东西一起来计算HASH 4,和收到的HASH做比较
第二阶段(3条)
phase 2的目标是协商IPSEC SA,而且只有一种模式,快速模式,快速模式的协商是受IKE SA保护的
1&2消息
消息1---发送方发送一条报文,其中包含HASH,IPSEC策略提议,NONCE和可选的DH,身份ID
HASH:是用于给接受方作完整性检查的,用于再次认证对等体(必须)HASH的成分和5-6阶段一样
IPSEC策略提议:其中包括了安全协议,SPI,散列算法,隧道模式,IPSEC SA生命周期(必须)
NONCE:用于防重放***,还被用作密码生成的材料,仅当启用PFS时用到
ID:描述IPSEC SA是为哪些地址,协议和端口建立的
PFS(利用DH交换,可选):用了PFS后就会在第二阶段重新DH出个数据加密KEY,这个KEY和以前IKE协商出来的KEY没有任何关系,然后由这个新KEY来加密数据,只有到这个IPSEC SA的生命周期后,会再次DH出新的KEY,这样,安全性就提高了(普通等ipec SA过期或密钥超时时,重新生成的数据加密密钥还是根据以阶段DH出来的skeyID_d衍生出来的)( PFS启用后,数据加密部分使用的密钥就没有了衍 生的过程)
DH:重新协商IPSEC SA实使用的密钥(正常情况下IPSEC阶段使用的密钥都是由skeyID_d衍生而来,密钥之间都有一定的关系,就算IPSEC SA超时,新的KEY还是和skeyID_d有一定的关系)
在1&2消息中报错可能出现的原因
1,ipsec trasport不匹配
2,感兴趣流不对称

转载于:https://blog.51cto.com/secroom88/90361

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于GRE over IPsec及IPsec over GRE 的相关文章

  • PHP 多个 Curl 请求

    我目前经常使用 PHP 的 Curl 每次获取100页左右的结果需要花费很多时间 对于每个请求 我都使用这样的代码 ch curl init get source curl close ch 我有什么选择可以加快速度 我应该如何使用mult
  • PHP:如何使用 nl2br() 和 HTML Purifier 保持换行?

    Issue 使用时HTML 净化器 http htmlpurifier org 为了处理用户输入的内容 换行符不会被转换为 br tags 考虑以下用户输入的内容 Lorem ipsum dolor sit amet This is ano
  • 更短的 POST 验证方式?

    我总是进行 POST 的检查验证 有时它会变得太混乱和冗长 保持简短和整洁的最佳方法是什么 Example if isset POST albumName trim POST albumName isset POST slugName PO
  • 删除 SQL 中重复的字段条目

    无论如何 我可以删除某个表中的所有重复条目 users 这是我拥有的条目类型的示例 我必须说一下桌子users由3个字段组成 ID user and pass mysql query DELETE FROM users WHERE or d
  • 单元测试魔术方法

    当涉及到 PHP 中魔术方法的单元测试实现时 调用这些方法的推荐方法是什么 我看到三个可用选项 显式 直接调用它们 object gt get someValue 间接调用它们 使用任何旨在触发它们的操作 object gt someVal
  • 如何 POST 从 PHP 创建的 HTML 表数据

    while row mysql fetch array res echo tr echo td td tr
  • PDO::bindValue() 在使用嵌套 SELECT 进行查询时失败

    我正在使用通过 ODBC 连接的 MSSQL 数据库 使用时PDO bindValue 在具有嵌套 SELECT 语句的查询上 它无法绑定嵌套 SELECT 中的值 在主 SELECT 上没有问题 这是一段失败的示例代码 stmt cmdb
  • Aurelia 以 PHP 传递的参数开头

    我需要在开始时将参数传递给 Aurelia 根据传递的值 应用程序将具有不同的状态 该应用程序被注入到使用 PHP 构建的页面上 因此最好的方法是使用 PHP 代码指定的参数启动它 有什么办法可以做到这一点吗 您可以在普通 JS 中访问的任
  • 使用php显示.txt文件的内容

    使用此代码 我可以显示文件夹中任何txt文件的内容 问题是 txt 文件中的所有格式等都被跳过 txt 文件看起来像 nipponsei irc rizon net presents Title Ah My Goddess Sorezore
  • 颠倒句子中的“英语”单词

    我有一个字符串 其中可能使用多种语言 例如 and this is in English this is going to be continued 我只想反转英语单词 所以结果应该是这样的 English in is this and c
  • 如何在 PHP >= 5.4 的特征中重载类构造函数

    在 PHP 5 中 我可以重载构造函数 以及任何其他方法 但是如果我得到这样的代码 class Base public function construct a b echo a b public function sayHello ech
  • Laravel 5.1 用户、角色和操作

    我正在使用 Laravel 5 1 创建一个应用程序users roles and actions 表设置如下 user id name 1 John Smith 2 Fred Smith role id name 1 Administra
  • 如何知道 PHP require_once() 语句中使用的正确路径

    正如许多人一样 我在 Web 应用程序的根目录中有一个 config php 文件 我想将其包含在几乎所有其他 php 文件中 所以他们中的大多数都有这样的一行 require once config php 或有时 require onc
  • simplexml_load_file 在 Solr 的 url 中带有 &(与号)

    我正在使用 Solr 并有以下查询 该查询在我的浏览器中运行良好 http www someipaddress com 8983 solr select q fq shopid 40 start 0 rows 18 fq manufactu
  • CodeIgniter 3 - 在控制器中支持 API 和 Web 请求?

    我目前正在使用 CodeIgniter3 应用程序 并为标准的类似博客系统奠定了基础 该结构是标准 CI 用户请求页面 页面加载控制器方法 控制器方法从其模型调用任何相关的数据库函数 然后加载视图 不过 我还希望能够通过 API 访问此视图
  • PHP while 语句回显重复项

    我是 PHP 新手 我花了几个小时研究并试图找出我做错了什么 我正在连接多个表 以使用交易表中的多个交易填充客户配置文件页面 页面的其余部分按预期处理查询 但是当使用 while 语句时 结果中的每个事务的重复次数等于结果中的事务总数 例如
  • 使用 JWT Laravel 5 进行身份验证,无需密码

    我正在尝试学习 Laravel 我的目标是能够构建一个 RESTful API 不使用视图或刀片 仅使用 JSON 结果 稍后 AngularJS Web 应用程序和 Cordova 混合移动应用程序将使用此 api 经过一番研究 我倾向于
  • 如何在 Zend 中使用 cookie?

    如何使用 Zend Http Cookie 来设置和读取 cookie 我尝试像这样设置cookie cookie new Zend Http Cookie TestCookie TestValue localhost com 但没有生成c
  • 两边带有感叹号的正则表达式 ('!\d!')

    我见过正则表达式 d PHP 内部preg match功能 这到底是什么 来自PHP PCRE 文档 http php net manual en regexp reference delimiters php 使用 PCRE 函数时 要求
  • PHP mysql 选择连接

    我有这个功能 以某种形式显示自动建议 function searchbyId params input strtolower params input len strlen input limit isset params limit in

随机推荐

  • sqlmap过SQLi-LABS靶场 11-20关

    第11关 后面基本都是post注入了 不过我们用的是神器sqlmap 我们先随便输入 然后bp抓包 把抓到的包保存问txt格式 然后在sqlmap 指定他 用 r sqlmap py r C Users Administrator Desk
  • 记录shardingsphere 5.0.0的一个问题

    shardingsphere的一个问题 最近shardingsphere更新了5 0 0版本 加入了很多新特性 所以我在自己的练习项目中想启动配置启动一下 但是并不是那么顺利 升级之后就直接无法启动了 根据错误栈提示是找不到一个名为Mode
  • Android studio 模拟器启动黑屏解决办法附图详细

    Android studio 模拟器启动黑屏解决办法附图详细 问题描述 原因分析 android模拟器在创建时 一般默认设置为热启动 所以每次关闭模拟器时 会提示保存当前运行界面状态 若选择取消 则下一次启动会以最近一次保存的状态启动显示
  • Pycharm安装CV2

    1 win r 然后输入cmd进入中端 安装的指令用 pip install opencv python i http mirrors aliyun com pypi simple trusted host mirrors aliyun c
  • husky hooks 不起作用的解决方法

    问题 在项目实际应用过程中遇到过一次 husky hooks 不生效的问题 这里记录下 问题表现 问题比较直观 通过 huksy install 之后 git commit 时 pre commit 设置的 hooks 不起作用 重新安装
  • 最详细的Vivado安装教程

    V i v a d o 安 装
  • Date类型与字符串的相互转换

    Date时间类型与字符串的相互转换 Test public void date throws ParseException 一 Date时间类型转字符串 1 获取当前时间 Date date new Date 2 设定时间格式 下面两行可以
  • 2017蓝桥杯C++A组题解集合

    总结 蓝桥杯的题目大多数都是暴利或者dfs bfs解出来的 注意往这上面思考 下面是赛题的链接 https wenku baidu com view 951dab772a160b4e767f5acfa1c7aa00b52a9d2d html
  • 程序发生run time error原因及解决方案

    程序发生run time error原因及解决方案 runtime error现象即产生原因 属于运行时错误 当程序运行到一半 程序发生崩溃 1 数组过小 2 除数为零 3 大数组定义在函数内 4 指针越界 5 还有可能是程序抛出了未接收的
  • angular Model 指令

    ng model指令用于绑定应用程序数据到HTML控制器 input select textarea 的值 可以将输入域的值域AngularJS创建的变量绑定 并且支持双向绑定 如下例子 div name div
  • elementUI使用el-upload上传文件写法总结及避坑,上传图片/视频到本地/服务器以及回显+删除

    Element Upload 上传 Element Upload官方文档 el upload 具体细节只看官方文档 本篇主要介绍避坑点和用法总结 注意点以及坑 本地上传想要回显图片视频 使用on success是没办法再在上传后获取到本地文
  • 20个简洁的 JS 代码片段

    20个简洁的 JS 代码片段 1 单行 If Else 语句 这是许多编程语言的共同特征 你可以使用三元运算符用一行代码编写整个语句 而不是在多行上编写 if else 例如 const age 12 let ageGroup LONG F
  • proteus8.9仿真闪退怎么解决?如何找到ProgramData?

    proteus8 9仿真闪退 将C Program Files x86 Labcenter Electronics Proteus 8 Professional 中MODELS文件夹复制到C ProgramData Labcenter El
  • 线性代数---之正交向量

    转载 百度百科 正交向量 编辑 本词条由 科普中国 百科科学词条编写与应用工作项目审核 正交向量 是一个数学术语 指点积为零的两个或多个向量 几何向量的概念在 线性代数中经由抽象化 得到更一般的向量概念 此处向量定义为 向量空间的元素 要注
  • 【计算机视觉

    文章目录 一 检测相关 11篇 1 1 Follow Anything Open set detection tracking and following in real time 1 2 YOLO MS Rethinking Multi
  • 【分治法】中位数问题和Gray码问题——武汉理工大学算法分析与设计课程实验

    i 中位数问题 问题描述 设X 0 n 1 和Y 0 n 1 为两个数组 每个数组中含有n个已排好序的数 找出X和Y的2n个数的中位数 编程任务 利用分治策略试设计一个O log n 时间的算法求出这2n个数的中位数 数据输入 由文件inp
  • sublime text添加install package报错 Package Control There are no packages available for installation

    sublime text在使用插件之前 需要安装Package Control插件 但在安装时报错 There are no packages available for installation 也就是说无法获取安装所需的包 首先确认网络
  • 基于java项目 服务器远程debug开启教程

    首先 在我们的工作中避免不了进行远程调试 我们可以通过远程debug的方式去调试我们的程序代码 通常我们的spring项目打成包的方式有jar 或者war包发布到我们的远程服务器上 我们先介绍第一种jar包方式开启远程debug 打成jar
  • JAVA 面向对象

    第五章 面向对象 面向对象技术利用对现实世界中对象的抽象和对象之间相互关联及相互作用的描述来对现实世界进行模拟 并且使其映射到目标系统中 其以基本对象模型为单位 将对象内部处理细节封装在模型内部 重视对象模块间的接口联系和对象与外部环境间的
  • 关于GRE over IPsec及IPsec over GRE

    GRE over IPsec IPsec over GRE IPSec Over GRE是先ipsec后gre 这种我没用过 GRE Over IPSec 是先gre后ipsec 也就是说ipsec是最后的承载方式 一般常用的就是这种 解决