
网络虚拟化
redwingz
这个作者很懒,什么都没留下…
展开
-
如何在CentOS上搭建chroot环境
chroot环境可以用来在一个完整的大文件系统上运行另外一个虚拟的文件系统。可使用它来实现许多功能,比如生成虚拟共享主机账号。每个用户的账号与一个chroot环境一一对应,用户可使用此chroot内安装的Linux发行版的整个文件系统,但是不能触及外层的大文件系统。(译者使用chroot调试程序^_^)。使用Red Hat和CentOS系统的安装包管理器yum,非常容易创建一个chroot环境。步...翻译 2018-05-08 11:24:56 · 4758 阅读 · 2 评论 -
QEMU的网桥辅助程序
代码文件为qemu-bridge-helper.c,负责完成QEMU TAP设备的创建和网桥相关配置。QEMU程序在安装之后,网桥帮助程序默认安装到位于/usr/local/libexec目录下,可执行文件为qemu-bridge-helper。其默认创建名称为br0(见宏定义DEFAULT_BRIDGE_INTERFACE)的网桥设备。#define CONFIG_QEMU_HELPER...原创 2019-02-26 18:33:59 · 2655 阅读 · 0 评论 -
Open vSwitch结合DPDK的使用
Open vSwitch结合DPDK的使用本文档描述Open vSwitch结合DPDK数据路径的使用。重点:要使用DPDK数据路径功能需要在OVS编译时开启DPDK支持选项。OVS与DPDK的版本对应关系可能随发布版本不同而变化。版本对应信息可参考OVS文档releases FAQ。编译指令可参考/intro/install/dpdk。接口和网桥ovs-vsctl工具可用来创建网桥和...原创 2019-06-20 20:38:10 · 3872 阅读 · 0 评论 -
编译SONiC交换机镜像
sonic-buildimage编译SONiC交换机镜像描述以下是关于如何为网络交换机构建(ONIE)兼容网络操作系统(NOS)安装程序镜像的说明,以及如何构建在NOS内运行的Docker镜像。请注意,SONiC镜像是根据每个ASIC平台来构建的。使用相同ASIC平台的交换机共享一个通用镜像。有关支持的交换机和ASIC的列表,请参阅此列表。硬件任何服务器都可作为构建映像的服务器。我们使用...原创 2019-06-22 21:49:35 · 5661 阅读 · 0 评论 -
SONiC - 交换状态服务通用库 - SWSS-COMMON
描述交换状态服务(SWSS - SWitch State Service Common Library)通用库是旨在为数据库通信、netlink封装和SWSS所需的其他功能提供支持的库。入门代码编译获取代码:git clone --recursive https://github.com/Azure/sonic-swss-common其工程文件如下(选取了一部分), 可见其中包括链路...原创 2019-06-22 21:53:55 · 1678 阅读 · 0 评论 -
SONiC - 交换状态服务 - SWSS
描述交换状态服务(SWitch State Service,SWSS)是一个软件集合,它提供数据库接口与网络应用程序和网络交换硬件进行通信,以及呈现状态。入门安装在安装之前, 添加 key 和 package 源:sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893echo 'deb ht...原创 2019-06-22 21:55:59 · 2945 阅读 · 0 评论 -
Overlay (隧道) 协议简介
隧道是一种使在不兼容的传送网络上传输载荷变得可行的机制。它允许网络用户获得访问被拒绝或不安全的网络的权限。可以使用数据加密来传输有效负载,确保封装的用户网络数据显示为公共数据即使它是私有的,而且很容易通过不安全的网络。Generic routing encapsulation (GRE)通用路由封装(Generic routing encapsulation - GRE)是一种在IP上运行的协...原创 2019-07-04 21:11:24 · 4632 阅读 · 0 评论 -
OpenStack Firewall-as-a-Service (FWaaS) v2 场景
使能 FWaaS v2版本在文件/etc/neutron/neutron.conf中使能FWaaS插件:service_plugins = firewall_v2[service_providers]# ...service_provider = FIREWALL:Iptables:neutron.agent.linux.iptables_firewall.OVSHybridIpt...原创 2019-07-06 04:52:15 · 2004 阅读 · 0 评论 -
OVS集中控制集成指南
本文描述了如何将Open vSwitch 集成到新平台上,并开放现交换机的状态,及连接设备以进行集中控制。(如果你在寻找将Open vSwitch的组件移植到新的平台的信息,请参阅OVS官方文档porting)。本指南的重点是Hypervisor,但许多接口对硬件交换机也很有用。XenServer集成是最成熟的实现,因此多数的例子有它而来。此集成的外部可见的接口是不分平台的。我们鼓励集成Open...原创 2019-07-06 04:56:49 · 2433 阅读 · 0 评论 -
DPDK的RTE_INIT初始化
DPDK代码中广泛使用RTE_INIT宏进行设备驱动或者RTE模块等的初始化工作,其核心是RTE_INIT_PRIO宏,定义在文件rte_common.h中。如下可见,RTE_INIT_PRIO宏的实现,实际为一个附带GCC编译属性的函数定义。此处用到两个属性,constructor和used。其中后一个used比较简单,向GCC编译器表明此函数的有用性,即使函数没有被任何地方引用,也不要警告。c...原创 2019-02-12 17:36:39 · 2615 阅读 · 0 评论 -
VXLAN协议解析
Virtual Extensible LAN虚拟可扩展局域网,采用UDP封装形式。VXLAN是应用最广泛的基于主机的Overlay技术,主机端通过VTEP(Virtual Tunnel EndPoint)实体完成VXLAN的封装解封装等功能。与二层VLAN相似,VXLAN使用VNI来表示一个二层网络,VNI长度为24个bit,可支持16M个不同的网络段,解决了VLAN(4096)容量有限的问题。 ...原创 2018-11-29 13:15:15 · 7269 阅读 · 1 评论 -
数据中心Overlay技术简介
主要介绍以下几种协议: |------------|------------|------------|-------------|------------|------------|------------|-------------| | FabricPath | TRILL | PBB | ...原创 2018-11-18 07:33:48 · 2448 阅读 · 0 评论 -
实现socket监听所有网络命名空间
当前Linux内核的实现,一个socket监听在一个特定的网络命名空间中,不同的命名空间可有具有相同的socket,即可监听相同的地址端口,这样很好的实现网络隔离虚拟化的功能。但是对于网路设备来说,并不需要如此完全的隔离。比如VPN设备/路由器等,一个ike进程或者quagga进程能监听在所有的命名空间,更利于实现和管理。这样就要求应用层socket能够接收到所有命名空间的数据包,并且能够感知当前...原创 2018-07-09 17:46:47 · 1597 阅读 · 0 评论 -
接口网络命名空间的更改
内核中使用函数dev_change_net_namespace来变更接口的网络命名空间。目前从代码来看,变更的时候是一个mini版本的接口设备注销(unregister_netdevice)与注册(register_netdevice)的过程。改变命名空间使用dev_net_set完成。注销与重新注册操作比较简单直接,省去了netdevice的清理工作,相对来说比较安全。int dev_chang...原创 2018-07-09 18:33:14 · 1221 阅读 · 0 评论 -
Linux BOND接口配置
如下使用ip命令创建一个bond接口不指定参数:/ # ip link add bond1 type bond指定bond接口的mode:/ # ip link add bond2 type bond mode balance-xor查看新创建的bond接口,bond1未指定mode,其默认为balance-rr模式:/ # ip -detail link show type b...原创 2018-07-31 22:04:31 · 11397 阅读 · 0 评论 -
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 · 2766 阅读 · 2 评论 -
详解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 · 10577 阅读 · 0 评论 -
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 · 3055 阅读 · 0 评论 -
内核网络命名空间
网络命名空间将内核网络协议栈(路由、流控、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 · 2315 阅读 · 0 评论 -
Ubuntu创建LXD系统容器
基于Ubuntu 16.04.5 LTS系统,首先安装lxd。# sudo apt-get install lxd将当前用加入到lxd用户组中:# newgrp lxd使用lxc list可查看当前系统的容器列表,目前还没有创建任何容器,列表为空。# sudo lxc list+------+-------+------+------+------+---------...原创 2018-11-19 18:17:51 · 6264 阅读 · 1 评论 -
Open Virtual Networking 与 Docker
本文档描述如何使用Open Virtual Networking与Docker 1.9.0版本或更新版本。重要:要求Docker 1.9.0或之后版本。仅Docker 1.9.0+以上版本支持多宿主机网络。咨询 www.docker.com 关于如何安装Docker的指南。注:你必须编译并安装Open vSwitch,在继续以下的指南之前。参考Open vSwitch官方文档/intro/...原创 2019-07-06 04:59:52 · 358 阅读 · 0 评论