自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

redwingz的博客

Linux内核网络、虚拟化

  • 博客(24)
  • 资源 (5)
  • 收藏
  • 关注

原创 ClassBench工具集问题修复

用于测试报文分类算法性能,以及分类设备(如TCAM)性能的工具集ClassBench,包含三个部分:预先定义的参数文件parameter_files,分类规则集生成器程序db_generator,和报文生成器程序trace_generator。目前由于db_generator在Ubuntu 17.04编译不过,并且开发者已不再维护。在进行了修改之后,将代码提交到了github之上,地址如下:...

2019-05-30 21:09:41 978 4

原创 数组越界问题

如下代码,对于两个局部数组遍历s1和s2,其中s1的大小为4,而字符串“test”在给其赋值时,将导致最后的结束符赋值到紧随其后的s2数组的开始。而后,在数组s2赋值时,第二个字符串“test”的第一个字符t由将覆盖之前的结束符。#include <stdio.h>#include <string.h>int main(){ char s1[4] = ...

2019-05-30 19:59:36 1469

原创 DPDK ACL链表

本文简介DPDK中ACL链表的几个主要函数,以及数据结构。ACL初始化函数rte_acl_init如下,主要初始化工作是选择使用的分类算法。对于AVX2(Advanced Vector Extensions),仅当编译DPDK代码的编译器支持AVX2指令集,并且运行DPDK程序的处理器支持AVX2指令集时,才启用RTE_ACL_CLASSIFY_AVX2算法。否则,退而求其次...

2019-05-29 21:39:47 3710

原创 dpdk-pmdinfo.py运行问题

系统环境Ubuntu 17.04:$ cat /etc/issueUbuntu 17.04 \n \l$问题一,找不到elftools:$ ./dpdk-pmdinfo.py Traceback (most recent call last): File "./dpdk-pmdinfo.py", line 16, in <module> f...

2019-05-27 20:34:34 1894

原创 DPDK用户工具cpu_layout.py

其位于目录usertools下,用于显示当前系统中CPU的结构布局。首先读取当前系统支持的最大CPU数量。base_path = "/sys/devices/system/cpu"fd = open("{}/kernel_max".format(base_path))max_cpus = int(fd.read())fd.close()即读取如下的sys目录中的文件:...

2019-05-23 20:53:30 1220

原创 配置静态L2TPv3隧道传输non-IP报文

L2TP网络拓扑如下,两个系统Host-A与Host-B直连互通,网段为192.168.1.0/24。会话session设备不再配置独立的IP地址,而是与网口eth0桥接在同一个网桥br0下,这样进入网口eth0的数据报文(包括非IP报文)都将被转发到l2tpeth0接口上,最终通过L2TP隧道由eth1发出。 Host-A ...

2019-05-23 20:50:03 1484

原创 配置基于IP的静态L2TPv3隧道

L2TP网络拓扑如下,两个系统Host-A与Host-B直连互通,网段为192.168.1.0/24: Host-A Host-B |-------------------| |-------------------| | | ...

2019-05-23 20:45:26 3194

原创 基于UDP的静态L2TPv3隧道

L2TP网络拓扑如下,两个系统Host-A与Host-B直连互通,网段为192.168.1.0/24: Host-A Host-B |-------------------| |-------------------| | | ...

2019-05-23 20:37:42 1707 10

原创 IPSec NAT穿越静态配置和问题

网络拓扑 |-------------------| |-------------------| | | | | | 192.168.1.115 | <---------> | 192.168.1.142 | | ...

2019-05-22 21:35:09 2888

原创 IPSec手动创建隧道

网络拓扑 |-------------------| |-------------------| | | | | | 192.168.1.115 | <---------> | 192.168.1.142 | ...

2019-05-21 21:01:34 3458 2

原创 Ubuntu 17.04系统git LFS安装及使用

github不允许存储超过100MB的单个文件,但是提供了git的大文件存储Large File Storage扩展功能。本文假设你已经安装了git。$ git push -u origin masterUsername for 'https://github.com': usernonexistPassword for 'https://usernonexist@github.c...

2019-05-21 19:31:42 3427

原创 PF_KEYv2接口

内核的PF_KEY类型套接口,提供了IPSec的应用层管理程序与内核的交互接口。套接口初始化sock_register函数注册PF_KEY套接口pfkey_family_ops,另外函数pfkeyv2_mgr注册一个KM(key manager)秘钥管理器pfkeyv2_mgr。static int __init ipsec_pfkey_init(void){ err = ...

2019-05-20 20:56:03 1755

原创 OPENSSL证书制作与浏览器认证

准备环境$ mkdir -p CA/{certs,crl,newcerts,private}$ $ touch CA/index.txt$ $ echo 00 > CA/serial生成CA秘钥$ openssl genrsa -out ca.key 2048Generating RSA private key, 2048 bit long modulus....

2019-05-18 00:00:14 1414

原创 TCP ACK的pingpong交互模式

ACK的pingpong模式,用于TCP两端的套接口为交互模式时,数据在两个方向交叉发送,所以pingpong模式可减少单独ACK报文的发送。开启pingpong模式由于ACK的pingpong模式与quick模式互斥,应用层可通过setsockopt系统调用的TCP_QUICKACK选项来开启和关闭pingpong模式,即如果应用层开启了快速ACK模式,将清除pingpong模式,反...

2019-05-15 21:26:48 2928

原创 OSPF报文交互流程

使用如下的拓扑结构: |---------------------| |----------------------| | | 172.1.1.1 | | |P1 R1 ...

2019-05-15 21:22:22 6530

原创 BGP报文流程简介

拓扑结构如下: Local AS:65410 Local AS: 100 |--------------| |------------------| | | 10.1.1.1 | | 10...

2019-05-15 21:00:42 2000

原创 TCP ACK状态

如下定义,TCP的ACK状态由如下4个。enum inet_csk_ack_state_t { ICSK_ACK_SCHED = 1, ICSK_ACK_TIMER = 2, ICSK_ACK_PUSHED = 4, ICSK_ACK_PUSHED2 = 8};初始状态在TCP套接口初始化时,注册延迟ACK等一系列超时处理函数。并且在inet_c...

2019-05-14 20:48:30 1786

原创 TCP延迟ACK策略

在报文接收路径上,处理完报文的接收之后,使用函数__tcp_ack_snd_check检查是否需要发送ACK确认报文。如果不符合立即发送的条件,内核将延迟发送ACK确认报文。1)接收到一个以上的全尺寸报文;2)a)接收窗口增长足够大,可接收新报文。否则,只有在应用层调用tcp_recvmsg函数取走数据后,发送ACK确认报文,避免窗口满; b)或者套接口处于QUICK ACK模式; ...

2019-05-13 21:02:44 4584

原创 TCP之QUICKACK

当TCP套接口的ACK策略处于QUICKACK模式时,意味着TCP套接口将尝试立即回复对端ACK确认报文。配置用户层可通过setsockopt系统调用的选项TCP_QUICKACK开启QUICKACK模式,但是这不是永久生效的,内核根据之后的报文处理,可能退出此模式。在QUICKACK模式开启之后,如果套接口存在需要调度的ACK,调用tcp_cleanup_rbuf函数进一步检查ACK是...

2019-05-10 23:46:42 7534

原创 TCP之延迟ACCEPT

通常情况下,在一个新的TCP连接完成三次握手之后,监听端的accept系统调用就可返回与此对应的子套接口。然而,TCP的延迟ACCEPT功能,允许TCP监听端仅在接收到客户端的数据报文后才去唤醒服务端应用的ACCEPT请求。延迟ACCEPT开启应用层通过setsockopt系统调用的选项TCP_DEFER_ACCEPT控制延迟ACCEPT功能。用户层下发以秒为单位的数值,内核转换为重...

2019-05-08 21:24:29 1414

原创 利用DPDK的l2fwd例程创建二口交换机

l2fwd示例程序默认情况下会改变数据包的MAC地址,如下:源MAC地址替换为发送端口的MAC地址;目的MAC地址替换为02:00:00:00:00:TX_PORT_ID。static void l2fwd_mac_updating(struct rte_mbuf *m, unsigned dest_portid){ struct ether_hdr *eth; vo...

2019-05-08 21:15:47 1176

原创 DPDK的日志log系统代码介绍

全局日志结构变量rte_logs,可见默认的日志级别为调试级别RTE_LOG_DEBUG。/* global log structure */struct rte_logs rte_logs = { .type = ~0, .level = RTE_LOG_DEBUG, .file = NULL,};日志系统的初始化函数rte_log_init,首先是再次设置...

2019-05-07 17:39:05 4440

原创 TCP的minshall算法

minshall改进针对NAGLE算法与RFC1122定义的延迟确认功能在配合时的低效问题。例如在内核要发送一个大包和紧随的一个小包时,对端的延迟确认功能可能导致第一个大包的确认ACK报文不能及时发送(最长200毫秒),进而本端的最后一个小包由于NAGLE算法也不能发出。为此minshell功能做了一些改进,即在检测到本端并没有未确认的小包时,立即发送此小包。初始化对于TCP客户端或者服务...

2019-05-06 21:53:53 565

原创 DPDK创建UIO设备节点

根据DPDK的官方文档说明,其提示IGB_UIO内核驱动程序可以自动创建/dev/uioX设备,但是没有提到uio_pci_generic驱动和vfio-pci驱动的情况。由于目前项目使用的是uio_pci_generic驱动,就遇到如下问题,UIO设备没有创建:EAL: Invalid NUMA socket, default to 0EAL: probe driver: 808...

2019-05-06 21:52:14 2659

botan-ed25519.pcap

IKEv2协议交互报文,认证方式选用Ed25519算法的证书方式。

2019-10-28

IKEv2-rw-cert2.pcap

strongswan使用linux内核的af_alg加密接口配置,IKEv2协议交互报文。

2019-10-28

IKEv2-camellia.pcap

IKEv2协议使用camellia加密算法的协商报文,交互流程。

2019-10-28

libssh2-1.8.0 and ssh2_batch example

ssh2_batch可执行程序,用于非交互式的ssh命令执行。源代码和libssh2

2018-06-13

WEB Portal 认证完整的交互报文

web认证交互报文,包括WLAN controller与portal server的认证与注销,AC与radius 服务器的认证报文。

2018-04-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除