自定义博客皮肤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内核网络、虚拟化

  • 博客(10)
  • 资源 (5)
  • 论坛 (1)
  • 收藏
  • 关注

原创 内核网络命名空间

网络命名空间将内核网络协议栈(路由、流控、Netfilter、网桥等系统)虚拟成多个。内核默认创建的网络命名空间init_net。struct net init_net = {    .count      = ATOMIC_INIT(1),    .dev_base_head  = LIST_HEAD_INIT(init_net.dev_base_head),};网络命名空间创建...

2018-10-31 14:55:21 809

原创 内核UDP隧道框架

目前内核支持的基于UDP隧道的协议有L2TP、IPSec、FOU/GUE、GENEVE和VXLAN等。内核为这些隧道协议提供了一个通用的UDP隧道框架,参见文件net/ipv4/udp_tunnel.c,共性的一些操作统一到了框架中。隧道创建对于隧道L2TP、FOU/GUE、GENEVE和VXLAN,隧道创建时,都需要在内核中新建一个UDP套接口,框架中的函数udp_sock_creat...

2018-10-29 15:16:59 1986

原创 Linux内核TUN/TAP设备驱动

Linux内核的TUN/TAP虚拟设备,不同于内核的其它设备,其发送和接收数据包都在网络协议栈内部完成,发送的数据包并不会离开协议栈进入到物理网络中,同样,也不会接收到从物理网络中进入协议栈的数据包。用户空间的设备节点/dev/net/tun用于读写TUN/TAP设备,内核中TUN/TAP设备在发送数据包时,将数据包发送到与/dev/net/tun文件描述符相关联的套接口,用户空间就可从设备节...

2018-10-26 15:20:39 9158 1

原创 GRE隧道封装协议及内核处理解析

Generic Routing Encapsulation (GRE)通用路由封装协议,基于IP网络层协议封装以太网报文,可用于在IPSec VPN网络间传输多播路由信息报文,或者在PPTP协议中,承载PPP数据报文。其在数据帧中的位置如下: |-------------------|----------------|----------------------|-----------...

2018-10-22 22:52:21 18378 3

原创 内核网络协议栈传输层协议框架

 Linux内核支持的传输层协议包括传统的TCP,UDP,以及IPIP、GRE等隧道协议。内核协议栈使用net_protocol结构体表示其所支持的传输层协议,系统初始化或者相应协议模块加载时,具体的协议将根据协议号将其实现的net_protocol结构体注册到协议栈中,即以协议号为索引添加到全局结构体指针数组inet_protos[]中。inet_protos数据大小为MAX_INET_PR...

2018-10-19 15:40:06 1302

原创 Veth虚拟以太网设备对

内核网络中VETH设备表示一对虚拟的互联接口,可使用以下IP命令创建:$ sudo ip link add ep1 type veth peer name ep2$ ip link list5: ep2@ep1: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group de...

2018-10-16 18:23:44 1648

原创 详解vhost-user协议及其在OVS DPDK、QEMU和virtio-net驱动中的实现

 总述:OVS DPDK与QEMU之间如何通过vhost user协议通信vhost user协议的控制和数据通道所有的控制信息通过UNIX套接口(控制通道)交互。包括为进行直接内存访问而交换的内存映射信息,以及当数据填入virtio队列后需要出发的kick事件和中断信息。在Neutron中此UNIX套接口命名为vhuxxxxxxxx-xx;数据通道事实上由内存直接访问实现。客户机...

2018-10-16 12:34:19 4409

原创 IPv6本地链路地址生成方式

IPv6中定义的一种地址类别为本地链路地址Link-Local Addresses,协议中规定,每个IPv6接口必须要有本地链路地址,使用FE80::/10地址块,相同于IPv4中的169.254.0.0/16网段,尽在本地链路有效。Linux内核中定义了4中生成IPv6本地链路地址的方式,参见枚举类型in6_addr_gen_mode的定义:enum in6_addr_gen_mode {...

2018-10-15 11:34:19 14444 1

原创 QEMU的Vhost-User特性及Snabbswitch的Vhost-User应用

 此文旨在向读者介绍Virtual Open Systems公司为QEMU开发的vhost-user特性在Snabbswitch软交换机中的使用。vhost-user的架构和Vapp软件也会涉及到。读者可跟随本文构建具有vhost-user特性的QEMU软件,并且同Vapp的参考实现进行测试。Vhost-User的产生基于QEMU/KVM的虚拟机访问外部网络的一种方法是通过virtio...

2018-10-12 12:46:22 1316 2

原创 UDP的checksum计算与硬件Offload

Linux内核中UDP数据包的计算由函数udp_send_skb完成。根据代码可见,存在4种不同的计算方式。对于IPv4协议来说,UDP的校验和是可选的,用户可通过setsockopt(SO_NO_CHECK)系统调用关闭校验和计算。 if (is_udplite) /* UDP-Lite */ csum = udpl...

2018-10-09 11:32:20 3668

WEB Portal 认证完整的交互报文

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

2018-04-24

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

redwingz的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

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

TA关注的人 TA的粉丝

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