前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于vpp搭建ipsec环境

基于vpp搭建ipsec环境

作者头像
dpdk-vpp源码解读
发布2023-03-07 17:20:16
3.9K0
发布2023-03-07 17:20:16
举报
文章被收录于专栏:DPDK VPP源码分析

最近忙于工作任务,一直没有时间来更新文章,今天周末正好没有太重要的事情,就自己在家使用vmware 虚拟机搭建了一下基于vpp的ipsec的环境,来学习一下ipsec的流程。

1、ipsec配置及组网

ipsec vpp1 vpp2配置如下

vpp1 ipsec基本配置如下:

代码语言:javascript
复制
#1、配置物理链路的接口up及接口ip地址
set interface state GigabitEthernetb/0/0 up
set interface ip addr GigabitEthernetb/0/0 10.100.0.6/24
#2.1 创建名为pr1的IKEV2配置
ikev2 profile add pr1
#2.2 设置共享密钥认证方法
ikev2 profile set pr1 auth shared-key-mic string Vpp123
#2.3 设置本地id及远端id
ikev2 profile set pr1 id local fqdn vpp1.home
ikev2 profile set pr1 id remote fqdn vpp2.home
#2.4 设置远端ip地址和协商是对应的网络接口
ikev2 profile set pr1 responder GigabitEthernetb/0/0 10.100.0.5
#2.5 设置IKE秘钥套件和ESP秘钥套件,可以只在请求秘钥协商方添加秘钥套件
ikev2 profile set pr1 ike-crypto-alg aes-cbc 128 ike-integ-alg sha1-96 ike-dh modp-1024
ikev2 profile set pr1 esp-crypto-alg aes-cbc 128 esp-integ-alg sha1-96 esp-dh modp-1024
#2.6 设置IPSec内网IP地址和远端内网IP地址
ikev2 profile set pr1 traffic-selector local ip-range 0.0.0.0 - 255.255.255.255 port-range 0 - 65535 protocol 0
ikev2 profile set pr1 traffic-selector remote ip-range 0.0.0.0 - 255.255.255.255 port-range 0 - 65535 protocol 0
#2.7 设置ipsec sa 生命周期
ikev2 profile set pr1 sa-lifetime 3600 10 5 0

vpp2 ipsec基本配置:

代码语言:javascript
复制
set interface state GigabitEthernet2/5/0 up
set interface ip addr GigabitEthernet2/5/0 10.100.0.5/24

ikev2 profile add pr1
ikev2 profile set pr1 auth shared-key-mic string Vpp123
ikev2 profile set pr1 id remote fqdn vpp1.home
ikev2 profile set pr1 id local fqdn vpp2.home
ikev2 profile set pr1 traffic-selector local ip-range 0.0.0.0 - 255.255.255.255 port-range 0 - 65535 protocol 0
ikev2 profile set pr1 traffic-selector remote ip-range 0.0.0.0 - 255.255.255.255 port-range 0 - 65535 protocol 0
ikev2 profile set pr1 ike-crypto-alg aes-cbc 128 ike-integ-alg sha1-96 ike-dh modp-1024
ikev2 profile set pr1 esp-crypto-alg aes-cbc 128 esp-integ-alg sha1-96 esp-dh modp-1024
ikev2 profile set pr1 responder GigabitEthernet2/5/0 10.100.0.6
ikev2 profile set pr1 sa-lifetime 3600 10 5 0

发起ipsec协商请求

在vpp1 cli敲下面命令行,会进行ipsec 协商过程,生成ipsec sa信息,创建ipsec隧道。

IKEv1协议建立一对IPSec SA,使用主动模式需要9个报文,使用野蛮模式需要使用6个报文方能协商成功。IKEv2对IKEv1协议进行了优化,IKEv2只需要进行两次交互,使用 4 条消息就可以完成一个 IKEv2 SA 和一对 IPsec SA 的协商建立。IKEv2 定义了三种交互:初始交换、创建子 SA 交换通知交换。

代码语言:javascript
复制
ikev2 initiate sa-init pr1

通过cli 查询ipsec sa信息

代码语言:javascript
复制
DBGvpp# show ikev2 sa
 iip 10.100.0.5 ispi 3559b5a196dc8ab8 rip 10.100.0.6 rspi ed612561f639fccd
 encr:aes-cbc-128 prf:hmac-sha2-256 integ:sha1-96 dh-group:modp-1024
  nonce i:5b21011428380db3cea587fe2d350e19f6b4ec01894d007f6f7957cac89f280a
        r:938dbf6e1b1a03ffba1967a4f9a8c54c042298f006c65ce774d3dd9e48ae6ca8
  SK_d    5fdc253a8de36462bed5abcb71ec5403e3a5210050a2e75a4c4b57db087fe942
  SK_a  i:7b08729394c200230cc0a55c4091d71c7b9ee170
        r:cf37f1775c9d74bf13acb34c453b0dd240618506
  SK_e  i:00a05d0c6c1f60f3af15f5ebab2e84c9
        r:e0da39996011b323bb13df80e774d209
  SK_p  i:09824590d4c6aa2842c10eaf70cdc1bf451303d72bbd7c240b1acbab70d7d24e
        r:c0bb629f4c0e6eea83ae1bc5ded62f15ada070dca65964ea4275edcc4e7d420c
  identifier (i) fqdn vpp2.home
  identifier (r) fqdn vpp1.home
  child sa 0:
    encr:aes-cbc-128 integ:sha1-96 esn:yes
    spi(i) c14b411a spi(r) 991dbe4e
    SK_e  i:78441fbd92fd816c840a277c63df74f4
          r:09e7e1a92326d93a5ae0082cd9b96870
    SK_a  i:3efe22aed0fd48963be471b4bd1f8b2b214be2db
          r:4496df2083b0516daee2780f6319c3c82f26495a
    traffic selectors (i):
      0 type 7 protocol_id 0 addr 0.0.0.0 - 255.255.255.255 port 0 - 65535
    traffic selectors (r):
      0 type 7 protocol_id 0 addr 0.0.0.0 - 255.255.255.255 port 0 - 65535
 iip 10.100.0.5 ispi 3559b5a196dc8ab8 rip 10.100.0.6 rspi ed612561f639fccd

下面在vpp2上抓取ipsec协商第一个包的回应报文,了解其转发流程。

代码语言:javascript
复制
00:46:33:129128: dpdk-input
  GigabitEthernet2/5/0 rx queue 0
00:46:33:129397: ethernet-input
00:46:33:129417: ip4-input-no-checksum
00:46:33:129427: ip4-lookup #Dip 10.100.0.5查路由
  fib 0 dpo-idx 5 flow hash: 0x00000000
  UDP: 10.100.0.6 -> 10.100.0.5
    tos 0x00, ttl 253, length 276, checksum 0xa806
    fragment id 0x0000
  UDP: 500 -> 500
    length 256, checksum 0x0000
00:46:33:129436: ip4-local # 本地ip进行ip local节点处理
    UDP: 10.100.0.6 -> 10.100.0.5
      tos 0x00, ttl 253, length 276, checksum 0xa806
      fragment id 0x0000
    UDP: 500 -> 500
      length 256, checksum 0x0000
00:46:33:129441: ip4-udp-lookup #根据端口号500,送到ipsec流程
  UDP: src-port 500 dst-port 500
00:46:33:129446: ikev2  ##ikev2 协商处理流程,回复给对端
  ikev2: sw_if_index 1, next index 0
00:46:33:131264: ip4-lookup
00:46:33:131277: ip4-rewrite
00:46:33:131283: GigabitEthernet2/5/0-output
00:46:33:131292: GigabitEthernet2/5/0-tx

ipsec接口up并配置ip

vpp1 配置如下:

代码语言:javascript
复制
set interface state ipsec1 up
set interface ip address ipsec1 100.1.1.1/24

vpp2 配置如下:

代码语言:javascript
复制
set interface state ipsec1 up
set interface ip address ipsec1 100.1.1.2/24

在vpp1上 ping vpp2 ipsec1接口ip,ping 100.1.1.2,下面是在vpp2 trace抓包情况

代码语言:javascript
复制
01:23:53:931295: dpdk-input
  GigabitEthernet2/5/0 rx queue 0
01:23:53:931360: ethernet-input
01:23:53:931378: ip4-input-no-checksum
01:23:53:931390: ip4-lookup
  fib 0 dpo-idx 5 flow hash: 0x00000000
  IPSEC_ESP: 10.100.0.6 -> 10.100.0.5
    tos 0x00, ttl 253, length 168, checksum 0xa851
    fragment id 0x0000
01:23:53:931399: ip4-local #ip local 查询ip protocols是50进入ipsec if input几点
    IPSEC_ESP: 10.100.0.6 -> 10.100.0.5
      tos 0x00, ttl 253, length 168, checksum 0xa851
      fragment id 0x0000
01:23:53:931405: ipsec-if-input #通过spi+src ip地址 查询sa信息
  IPSec: spi 3242934554 seq 6 #这里有个重要信息接口切换成ipsec接口。
01:23:53:931414: esp4-decrypt #进行ipsec 解封装流程
  esp: crypto aes-cbc-128 integrity sha1-96
01:23:53:931609: ip4-input #解封装后暴露内存IP报文重新查路由
01:23:53:931619: ip4-lookup
  fib 0 dpo-idx 6 flow hash: 0x00000000
  ICMP: 100.1.1.1 -> 100.1.1.2
    tos 0x00, ttl 254, length 96, checksum 0xf297
    fragment id 0x0000
  ICMP echo_request checksum 0x5c36
01:23:53:931624: ip4-local # icmp报文,送到icmp处理节点
    ICMP: 100.1.1.1 -> 100.1.1.2
      tos 0x00, ttl 254, length 96, checksum 0xf297
      fragment id 0x0000
    ICMP echo_request checksum 0x5c36
01:23:53:931628: ip4-icmp-input 
  ICMP: 100.1.1.1 -> 100.1.1.2
    tos 0x00, ttl 254, length 96, checksum 0xf297
    fragment id 0x0000
  ICMP echo_request checksum 0x5c36
01:23:53:931634: ip4-icmp-echo-request # 生成icmp 回应报文 sip dip呼唤
  ICMP: 100.1.1.1 -> 100.1.1.2
    tos 0x00, ttl 254, length 96, checksum 0xf297
    fragment id 0x0000
  ICMP echo_request checksum 0x5c36
01:23:53:931655: ip4-load-balance 
01:23:53:931659: ip4-rewrite
01:23:53:931666: ipsec1-output #查路由后送到ipsec接口
01:23:53:931673: ipsec1-tx 
  IPSec: spi 2568863310 seq 5
01:23:53:931677: esp4-encrypt #进行ipsec封装
  esp: spi 2568863310 seq 5 crypto aes-cbc-128 integrity sha1-96
01:23:53:931699: ip4-lookup
  fib 0 dpo-idx 1 flow hash: 0x00000000
  IPSEC_ESP: 10.100.0.5 -> 10.100.0.6
    tos 0x00, ttl 254, length 168, checksum 0xa751
    fragment id 0x0000
01:23:53:931703: ip4-rewrite
  tx_sw_if_index 1 dpo-idx 1 : ipv4 via 10.100.0.6 
01:23:53:931706: GigabitEthernet2/5/0-output
  GigabitEthernet2/5/0
  IP4: 00:0c:29:3f:f3:77 -> 00:0c:29:a5:97:3a
  IPSEC_ESP: 10.100.0.5 -> 10.100.0.6
    tos 0x00, ttl 253, length 168, checksum 0xa851
    fragment id 0x0000
01:23:53:931709: GigabitEthernet2/5/0-tx

这里有两点重要信息: 1、查询sa信息是使用src + esp spi来查询。 2、接口切换成ipsec接口是在ipsec-if-input节点。(show ip local 可以查询esp 协议号50,对应节点50: ipsec-if-input)。

ipsec加密流程如下:

ipsec使用DPDK Cryptodev IPsec 库加速

VPP的默认实现包括IPsec功能,该功能依赖于OpenSSL库,在ipsec加密和解密流程中存在报文缓存区替换过程,相对性能会比较低一些。 DPDK Cryptodev库提供了用于管理和配置硬件和软件加密轮询模式驱动程序的加密设备框架,并定义了支持多种不同Crypto操作的通用API。VPP中的扩展DPDK Cryptodev IPsec实现架构如下图所示。

在VPP中启用DPDK Cryptodev可以提升常见IPsec加密和认证算法的性能,包括在VPP默认实现中无法启用的AES-GCM。 正因如此,启用DPDK Cryptodev功能不仅可以提高性能,同时还被赋予VPP更多选择,提升其灵活性,例如: 1、使用英特尔®QuickAssist技术(英特尔®QAT)技术的设备,用于硬件卸载所有支持算法,包括AES-GCM。 2、IPsec库的英特尔®多缓冲加密器,用于大幅优化软件实施。 3、英特尔®智能存储加速库(英特尔®ISA-L),用于大幅优化AES-GCM算法的软件实施。 基于英特尔®QuickAssist技术的加密轮询模式驱动程序可提供对各种硬件加速器设备的支持。更多信息,请参阅《英特尔QuickAssist技术的DPDK文档(http://dpdk.org/doc/guides/cryptodevs/qat.html)。

根据vpp官方文档介绍使用dpdk crypto ipscec 的配置说明具体(https://docs.fd.io/vpp/19.01/dpdk_crypto_ipsec_doc.html) 新增加了如下节点: dpdk-crypto-input : 用于从dpdk crypto pmd 收包 dpdk-esp-encrypt : 用于替换esp-encrypt,将报文送到dpdk crypto pmd。 dpdk-esp-decrypt : 用于替换esp-decrypt,将报文送到dpdk crypto pmd。 dpdk-esp-encrypt-post : dpdk ipsec 加密处理节点。 dpdk-esp-decrypt-post : dpdk ipsec解密处理节点。

在vpp启动配置文件dpdk模块中增加下面的配置,就可以启用。

代码语言:javascript
复制
vdev crypto_aesni_mb0,socket_id=0

启用后的ipsec加密流程如下图所示:区别就是esp_encrypt节点替换dpdk-esp-encypt,转发中增加了2个处理节点。

ipsec over gre 配置

只需要在上述ipcec配置基础上创建gre0隧道接口

代码语言:javascript
复制
#vpp1配置如下
create gre tunnel src 100.1.1.1 dst 100.1.1.2 instance 0
# 配置gre0 接口up及ip地址
set interface state gre0 up
set interface ip addr gre0 200.1.1.1/24
#vpp2配置如下:
create gre tunnel src 100.1.1.2 dst 100.1.1.1 instance 0
# 配置gre0 接口up及ip地址
set interface state gre0 up
set interface ip addr gre0 200.1.1.2/24

在vpp2上ping vpp1 gre0接口的ip地址是可以ping 通的。在vpp1上抓包如下:

代码语言:javascript
复制
00:07:45:208772: dpdk-input
  GigabitEthernetb/0/0 rx queue 0
  buffer 0x1857f: current data 0, length 198, free-list 0, clone-count 0, totlen-nifb 0, trace 0x0
                  ext-hdr-valid
                  l4-cksum-computed l4-cksum-correct
  PKT MBUF: port 0, nb_segs 1, pkt_len 198
    buf_len 2176, data_len 198, ol_flags 0x80, data_off 128, phys_addr 0x44a16040
    packet_type 0x91 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
    rss 0x0 fdir.hi 0x0 fdir.lo 0x0
    Packet Offload Flags
      PKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is valid
    Packet Types
      RTE_PTYPE_L2_ETHER (0x0001) Ethernet packet
      RTE_PTYPE_L3_IPV4_EXT_UNKNOWN (0x0090) IPv4 packet with or without extension headers
  IP4: 00:0c:29:3f:f3:77 -> 00:0c:29:a5:97:3a
  IPSEC_ESP: 10.100.0.5 -> 10.100.0.6
    tos 0x00, ttl 253, length 184, checksum 0xa841
    fragment id 0x0000
00:07:45:208781: ethernet-input
  frame: flags 0x3, hw-if-index 1, sw-if-index 1
  IP4: 00:0c:29:3f:f3:77 -> 00:0c:29:a5:97:3a
00:07:45:208785: ip4-input-no-checksum
  IPSEC_ESP: 10.100.0.5 -> 10.100.0.6
    tos 0x00, ttl 253, length 184, checksum 0xa841
    fragment id 0x0000
00:07:45:208790: ip4-lookup
  fib 0 dpo-idx 5 flow hash: 0x00000000
  IPSEC_ESP: 10.100.0.5 -> 10.100.0.6
    tos 0x00, ttl 253, length 184, checksum 0xa841
    fragment id 0x0000
00:07:45:208792: ip4-local
    IPSEC_ESP: 10.100.0.5 -> 10.100.0.6
      tos 0x00, ttl 253, length 184, checksum 0xa841
      fragment id 0x0000
00:07:45:208793: ipsec-if-input
  IPSec: spi 3049841754 seq 12
00:07:45:208795: esp4-decrypt
  esp: crypto aes-cbc-128 integrity sha1-96
00:07:45:208815: ip4-input
  GRE: 100.1.1.2 -> 100.1.1.1
    tos 0x00, ttl 253, length 120, checksum 0xf351
    fragment id 0x0000
  GRE ip4
00:07:45:208817: ip4-lookup
  fib 0 dpo-idx 6 flow hash: 0x00000000
  GRE: 100.1.1.2 -> 100.1.1.1
    tos 0x00, ttl 253, length 120, checksum 0xf351
    fragment id 0x0000
  GRE ip4
00:07:45:208818: ip4-local
    GRE: 100.1.1.2 -> 100.1.1.1
      tos 0x00, ttl 253, length 120, checksum 0xf351
      fragment id 0x0000
    GRE ip4
00:07:45:208818: gre4-input
  GRE: tunnel 4 len 120 src 100.1.1.2 dst 100.1.1.1
00:07:45:208820: ip4-input
  ICMP: 200.1.1.2 -> 200.1.1.1
    tos 0x00, ttl 254, length 96, checksum 0x2a97
    fragment id 0x0000
  ICMP echo_request checksum 0x8819
00:07:45:208821: ip4-lookup
  fib 0 dpo-idx 7 flow hash: 0x00000000
  ICMP: 200.1.1.2 -> 200.1.1.1
    tos 0x00, ttl 254, length 96, checksum 0x2a97
    fragment id 0x0000
  ICMP echo_request checksum 0x8819
00:07:45:208821: ip4-local
    ICMP: 200.1.1.2 -> 200.1.1.1
      tos 0x00, ttl 254, length 96, checksum 0x2a97
      fragment id 0x0000
    ICMP echo_request checksum 0x8819
00:07:45:208822: ip4-icmp-input
  ICMP: 200.1.1.2 -> 200.1.1.1
    tos 0x00, ttl 254, length 96, checksum 0x2a97
    fragment id 0x0000
  ICMP echo_request checksum 0x8819
00:07:45:208824: ip4-icmp-echo-request
  ICMP: 200.1.1.2 -> 200.1.1.1
    tos 0x00, ttl 254, length 96, checksum 0x2a97
    fragment id 0x0000
  ICMP echo_request checksum 0x8819
00:07:45:208828: ip4-load-balance
  fib 0 dpo-idx 3 flow hash: 0x00000000
  ICMP: 200.1.1.1 -> 200.1.1.2
    tos 0x00, ttl 64, length 96, checksum 0x9e6b
    fragment id 0x4a2c
  ICMP echo_reply checksum 0x9019
00:07:45:208829: ip4-midchain
    GRE: 100.1.1.1 -> 100.1.1.2
      tos 0x00, ttl 254, length 120, checksum 0xf251
      fragment id 0x0000
    GRE ip4
00:07:45:208831: adj-midchain-tx
  adj-midchain:[3]:ipv4 via 0.0.0.0 gre0: mtu:9000 4500000000000000fe2ff2c9640101016401010200000800
  stacked-on entry:16:
    [@3]: ipv4 via 0.0.0.0 ipsec0: mtu:9000
00:07:45:208832: ip4-rewrite
  tx_sw_if_index 3 dpo-idx 2 : ipv4 via 0.0.0.0 ipsec0: mtu:9000 flow hash: 0x00000000
  00000000: 4500007800000000fd2ff351640101016401010200000800450000604a2c0000
  00000020: 40019e6bc8010101c801010200009019efe0000168b40c96a1320000
00:07:45:208832: ipsec0-output
  ipsec0
  00000000: 4500007800000000fd2ff351640101016401010200000800450000604a2c0000
  00000020: 40019e6bc8010101c801010200009019efe0000168b40c96a132000000010203
  00000040: 0405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223
  00000060: 2425262728292a2b2c2d2e2f303132333435363738393a3b01020304
00:07:45:208837: ipsec0-tx
  IPSec: spi 813220480 seq 11
00:07:45:208838: esp4-encrypt
  esp: spi 813220480 seq 11 crypto aes-cbc-128 integrity sha1-96
00:07:45:208844: ip4-lookup
  fib 0 dpo-idx 1 flow hash: 0x00000000
  IPSEC_ESP: 10.100.0.6 -> 10.100.0.5
    tos 0x00, ttl 254, length 184, checksum 0xa741
    fragment id 0x0000
00:07:45:208845: ip4-rewrite
  tx_sw_if_index 1 dpo-idx 1 : ipv4 via 10.100.0.5 GigabitEthernetb/0/0: mtu:9000 000c293ff377000c29a5973a0800 flow hash: 0x00000000
  00000000: 000c293ff377000c29a5973a0800450000b800000000fd32a8410a6400060a64
  00000020: 00053078c2800000000c458388c827ef7cd9e0efcbd664b83d8cfb74
00:07:45:208845: GigabitEthernetb/0/0-output
  GigabitEthernetb/0/0
  IP4: 00:0c:29:a5:97:3a -> 00:0c:29:3f:f3:77
  IPSEC_ESP: 10.100.0.6 -> 10.100.0.5
    tos 0x00, ttl 253, length 184, checksum 0xa841
    fragment id 0x0000
00:07:45:208847: GigabitEthernetb/0/0-tx
  GigabitEthernetb/0/0 tx queue 0
  buffer 0x29815: current data 0, length 198, free-list 0, clone-count 0, totlen-nifb 0, trace 0x0
  PKT MBUF: port 65535, nb_segs 1, pkt_len 198
    buf_len 2176, data_len 198, ol_flags 0x0, data_off 128, phys_addr 0x44e605c0
    packet_type 0x0 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
    rss 0x0 fdir.hi 0x0 fdir.lo 0x0
  IP4: 00:0c:29:a5:97:3a -> 00:0c:29:3f:f3:77
  IPSEC_ESP: 10.100.0.6 -> 10.100.0.5
    tos 0x00, ttl 253, length 184, checksum 0xa841
    fragment id 0x0000

扩展

问题1、前段时间在微信群里同学在问Centos怎么成debug版本的rpm包? 跟踪了一下make pkg-rpm 执行过程: 1、/vpp/Makefile下make pkg-rpm 首先需要执行dist目标,大概的意思就是使用git archive命令将vpp的代码进行打包,打包后的文件放置在vpp/build-root/vpp-(version).tar,并创建一个软链接文件 vpp-latest.tar.xz 指向当前压缩文件。

代码语言:javascript
复制
pkg-rpm: dist #先执行dist目标
   make -C extras/rpm

git archive 可以参考一下官方资料 https://git-scm.com/docs/git-archive

2、执行vpp/extras/rpm/Makefile 这里有点复杂,需要了解rpm打包教程(https://blog.csdn.net/get_set/article/details/53453320) 大概的意思就是先生成rpmbuild打包的目录,并vpp源码tar包拷贝到SOURCES目录下。 rpmbuild -bb vpp.spec 3、vpp/extras/rpm/vpp.spec build

代码语言:javascript
复制
#TAG 环境变量决定的,默认是release,
%define _vpp_tag         %{getenv:TAG}
%build:
make -C build-root PLATFORM=vpp AESNI=n TAG=%{_vpp_tag} install-packages

4、vpp/build-root/MakeFile 执行vpp的编译动作。 所以编译生成debug版本的make pkg-rpm TAG=vpp_debug 问题2、每次支持make pkg-rpm都需要重新下载dpdk及其他依赖库的包。 想到的一个解决思路就是,先在vpp目录下执行make build,会下载dpdk及其他依赖包,然后将依赖包提交到vpp版本库中。

我的vpp版本库从github上导入到码云上面,所以将dpdk及其他依赖包提交到个人码云上的vpp版本库。这样就能解决上面的问题。

总结

介绍介绍vpp使用ikev2协议创建ipsec隧道、熟悉其转发流程;使用dpdk_crypto pmd的配置方法及转发流程,在ipsec基础上搭建ipsec over gre流程。

参考资料

1、https://www.cnblogs.com/APeng2019/p/10719299.html 2、https://docs.fd.io/vpp/19.01/dpdk_crypto_ipsec_doc.html 3、https://blog.csdn.net/u010827484/article/details/79390166

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DPDK VPP源码分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、ipsec配置及组网
  • ipsec vpp1 vpp2配置如下
  • 发起ipsec协商请求
  • ipsec接口up并配置ip
    • ipsec使用DPDK Cryptodev IPsec 库加速
      • ipsec over gre 配置
        • 扩展
          • 总结
            • 参考资料
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档