OpenVSwitch】的更多相关文章

openvswicth : 开源的网络虚拟化软件,可以划分vlan隔离虚拟机,做流量控制 dnsmasq:小心的dns,dhcp服务器 安装openvswicth wget  http://openvswitch.org/releases/openvswitch-2.5.0.tar.gz 编译成rpm包安装 yum install rpm-build mkdir -p ~/rpmbuild/SOURCES tar xf openvswitch-2.5.0.tar.gz sed 's/openvs…
在一篇随笔中,我们已经尝试了在不依赖工具的情况下设置docker的ip,连我都想吐槽,MD单机都这么麻烦,在多机的环境中岂不是要了我的小命! 本文就是为了多机环境中各个节点的容器通信而做的,网络拓朴如下,这里用到了openvswitch工具. openvswitch为我们建立一个扩展到三层网络的网桥,我们知道vlan是不能跨子网的,openvswitch利用了隧道技术,将二层的报文用三层的协议(udp/sdn)重新封装,从而实现二层网络在三层中进行扩展:如下图: openvswitch是一个比较…
一.概述                                                    1.环境:我这里是2台linux机器(host1和host2),发行版是kali2.0,内核版本是4.3.每台机器都安装Docker.OpenvSwitch(ovs). 2.host1和host2分别启动1个ubuntu的docker容器. 3.网络结构: 2.1:host1的eth0:192.168.2.1,host1里面的docker容器ip地址是10.1.2.3 2.2:host…
  当一个数据包到达网卡的时候,首先要经过内核Openvswitch.ko,流表Flow Table在内核中有一份,通过key查找内核中的flow table,即可以得到action,然后执行action之后,直接发送这个包,只有在内核无法查找到流表项的时候,才会到用户态查找用户态的流表.仅仅查找内核中flow table的情况被称为fast path.     第一步:从数据包中提取出key   实现函数为int ovs_flow_key_extract(const struct ip_tun…
  在上一节提到,Openvswitch的内核模块openvswitch.ko会在网卡上注册一个函数netdev_frame_hook,每当有网络包到达网卡的时候,这个函数就会被调用.   static struct sk_buff *netdev_frame_hook(struct sk_buff *skb) {    if (unlikely(skb->pkt_type == PACKET_LOOPBACK))       return skb;      port_receive(skb)…
  上一节我们讲了ovs-vswitchd,其中虚拟网桥初始化的时候,对调用内核模块来添加虚拟网卡.   我们从openvswitch内核模块的加载过程,来看这个过程.   在datapath/datapath.c中会调用module_init(dp_init);来初始化内核模块.   static int __init dp_init(void) {    int err;      BUILD_BUG_ON(sizeof(struct ovs_skb_cb) > FIELD_SIZEOF(s…
ovs-vswitchd.c的main函数最终会进入一个while循环,在这个无限循环中,里面最重要的两个函数是bridge_run()和netdev_run().     Openvswitch主要管理两种类型的设备,一个是创建的虚拟网桥,一个是连接到虚拟网桥上的设备.   其中bridge_run就是初始化数据库中已经创建的虚拟网桥.   一.虚拟网桥的初始化bridge_run   bridge_run会调用bridge_run__,bridge_run__中最重要的是对于所有的网桥,都调…
  一.Opevswitch总体架构   Openvswitch的架构网上有如下的图表示:       每个模块都有不同的功能 ovs-vswitchd 为主要模块,实现交换机的守护进程daemon   在Openvswitch所在的服务器进行ps aux可以看到以下的进程 root 1008 0.1 0.8 242948 31712 ? S<Ll Aug06 32:17 ovs-vswitchd unix:/var/run/openvswitch/db.sock -vconsole:emer…
Namespace实现网络隔离与互通 新建ns: ip netns add foo 查看ns: ip netns 查看ns详细配置: ip netns exec foo ip addr 设置ns内部lo网络up: ip netns exec foo ip link set lo up ip netns exec foo ip addr ip netns exec foo route –n ip netns exec foo iptables -t nat –S ip netns exec foo…
安装openvswitch的步骤请参考上一篇文章:http://www.cnblogs.com/xkops/p/5568167.html 环境:192.168.3.201 node1192.168.3.202 node2 1.在node1上创建网桥obr0,然后增加端口gre0到obr0.ovs-vsctl add-br obr0ovs-vsctl add-port obr0 gre0ovs-vsctl set interface gre0 type=gre options:remote_ip=…
What is Open vSwitch? Open vSwitch is a production quality, multilayer virtual switch licensed under the open source Apache 2.0 license.  It is designed to enable massive network automation through programmatic extension, while still supporting stand…
Openvswitch的架构 数据库结构和OVS-VSCTL # ps aux | grep openvswitch root      1117  0.0  0.0  21200  1580 ?        S<   Jun09   0:35 ovsdb-server /etc/openvswitch/conf.db -vconsole:emer -vsyslog:err -vfile:info --remote=punix:/var/run/openvswitch/db.sock --pr…
对于普通的switch,都会有这个学习的过程,当一个包到来的时候,由于包里面有MAC,VLAN Tag,以及从哪个口进来的这个信息.于是switch学习后,维护了一个表格port –> MAC –> VLAN Tag. 这样以后如果有需要发给这个MAC的包,不用ARP,switch自然之道应该发给哪个port,应该打什么VLAN Tag. OVS也要学习这个,并维护三个之间的mapping关系. 在我们的例子中,无论是从port进来的本身就带Tag的,还是从port 2, 3, 4进来的后来被…
qemu-kvm和openvswitch安装部署 本文包含两个部分: qemu-kvm的安装部署 openvswitch的安装部署 参考文档: kvm官网:http://www.linux-kvm.org/page/Documents qemu文档:kvm官网把qemu文档(qemu user manual)直接指向wiki了,^_^ http://wiki.qemu.org/Qemu-doc.html *** 1. qemu-kvm的安装部署 环境准备 1). 内核需要支持KVM.KVM版本>…
1. 测试环境 75机(10.11.150.75):Red Hat Enterprise Linux Server 7.0,无外网访问权限,已安装Docker Server 74机(10.11.150.74):Red Hat Enterprise Linux Server 7.0,无外网访问权限,已安装Docker Server 73机(10.11.150.73):Red Hat Enterprise Linux Server 7.0,无外网访问权限,已安装Docker Server 183机:…
在这篇文章里介绍了如果运行主机管理在openvswitch之上,而不是单独配置一个物理网卡用于主机管理,并且所有的vm的流量还是通过openvswitch走的. Running Host Management on Open vSwitch Open vSwitch (OVS) brings lots of functionality to Linux virtualization hosts, including the ability to use Link Aggregation Cont…
最近又开始弄openvswitch,网上也有不少的资料,但是发觉都集中在openvswitch安装及简单使用或者一些原码分析,从心里来讲,感觉这些和心里得到的差距有点大啊,其实更希望能类似资料在openvswitch和其它硬件结合起来的总体架构资料,openvswitch的实际生产应用的架构和要点方面,找到一个日本对于这个研究很完善的PDF文件,更是除了一些图,其它完全看不懂,心里不是滋味,最近估计会转载一些比较偏近研究方面的比较好的openvswitch文章,希望能让自己对openvswith…
1 软件安装 1.1测试环境和网络拓朴 大部分朋友估计也没有一个真实环境来完全整个的测试,所以我也是使用了在一台PC机上使用Vmware Workstation的方式来进行实验.总体结构是在PC机上安装vmware,vmware上安装fedora_17 64bit,然后在fedora上安装kvm以及openvswitch.在KVM里面安装了centos6.4,并且是最小化安装.我的拓朴图是在完全环境下,其实可以每个fedora17上只起一台或者两台KVM虚拟机,并不需要这么多. 网络交换机,是在…
1.下载openvswitch源文件,注意版本要适合操作系统内核. 推荐openvswitch2.0及其以上版本. 2.开始安装openvswitch cd openvswitch sudo ./boot.sh sudo ./configure --with-linux=/lib/modules/`uname -r`/build#这是选择使用内核,不加择使用系统默认内核 sudo make sudo make install sudo insmod datapath/linux/openvswi…
一.安装,配置 //下载源码.编译.安装: #wget http://openvswitch.org/releases/openvswitch-2.3.0.tar.gz #tar -zxvf openvswitch-.tar.gz #cd openvswitch-/ #./configure --with-linux=/lib/modules/`uname -r`/build >/dev/null #make && make install //如果需要OVS支持VLAN功能,还需要…
1. 测试环境 75机(10.11.150.75):Red Hat Enterprise Linux Server 7.0,无外网访问权限,已安装Docker Server 74机(10.11.150.74):Red Hat Enterprise Linux Server 7.0,无外网访问权限,已安装Docker Server 73机(10.11.150.73):Red Hat Enterprise Linux Server 7.0,无外网访问权限,已安装Docker Server 183机:…
安装 1.安装依赖包:yum -y install openssl-devel wget kernel-devel 2.安装开发工具:yum groupinstall "Development Tools" 3.添加用户:adduser ovswitch,切换用户并跳转至用户文件夹:su - ovswitch  //此步骤并不是必须,仅仅为为了有一个用户文件夹好用来执行后面的命令,可以是用当前的非root 用户执行下面相关的命令 4.下载源码:wget http://openvswit…
关于openstack安全组,采用一问一答的形式记录如下 1. 是加载在计算节点的还是网络节点的? 是加载在计算节点的 2. 是使用iptable规则实现的吗? M版的neutron实现了openvswitch 基于流表的防火墙 之前常见的是用iptables实现的,一般会创建neutron-openvswi-XXX链 3. iptables实现的防火墙方法中,添加的规则都是accept,其余的包都是drop的吗? 是的添加的规则一般都在最后默认drop规则的前面return掉.安全组利用ipt…
Megaflow is an OpenVSwitch (OVS) feature than enables us to install flows for which some fields are wildcarded (the input port field is never wildcarded, as a totally wildcarded flow would be of little use). We do this by providing OVS with a flow ma…
 openstack使用openvswitch实现vxlan openstack环境: 1 版本:ocata 2 系统:ubuntu16.04.2 3 控制节点 1个 + 计算节点 1个 4 控制节点网卡为ens33,ip = 172.171.5.200 ens34 manual模式 无IP 一 下载openswitch controller : apt-get install  neutron-openvswitch-agent compute : apt-get install neutro…
envswitch 2.7 安装过程记录 总结 安装思路是参考文档: http://docs.openvswitch.org/en/latest/intro/install/general/#obtaining-open-vswitch-sources 1.下载ovs 2.7.0代码 $ git clone https://github.com/openvswitch/ovs.git 准备编译环境 2.配置环境预准备(必须使用root权限) ./boot.sh 曾经出现的问题: [zhou@lo…
# openstack pike 使用 openvswitch + vxlan# openstack pike linuxbridge-agent 换为 openvswitch-agent #openstack pike 集群高可用  安装部署 汇总 http://www.cnblogs.com/elvi/p/7613861.html ############################################################ # openstack 使用 openv…
所有做过网络编程的程序员,想必都会看<TCP/IP详解>卷一:协议 后来出了第二版,但是由于第一版才是Rechard Stevens的原版,本人还是多次看了第一版. 对这一版印象最深的就是下面这个拓扑图 书上的很多实验,都是基于这个图做的,看了实验结果,很多理论才有真实的感觉. 看这本书的时候,不尽感慨Rechard Stevens的天赋英才,他能够利用工作中当时少于的实验环境,做了大量的实验,写出了普惠程序员的这本书. 可是除了看书中的实验结果,如何能够模拟这么一个环境,也动手测试一下呢?…
我们知道,Openvwitch可以创建虚拟交换机,而网络包可以通过虚拟交换机进行转发,并通过流表进行处理,具体的过程如何呢? 一.内核模块Openvswitch.ko的加载 OVS是内核态和用户态配合工作的,所以首先要加载内核态模块Openvswitch.ko. 在datapath/datapath.c中会调用module_init(dp_init);来初始化内核模块. 其中比较重要的是调用了dp_register_genl(),这个就是注册netlink函数,从而用户态进程ovs-vswitc…
下载链接: Openvswitch实验教程 http://files.cnblogs.com/popsuper1982/Openvswtich.pptx 一.概论 Software Defined Network简介 OpenFlow简介 Openvswitch简介 二.架构 Openvswitch架构 实验一:查看Openvswitch的架构 Openvswitch数据库表结构 实验二:打印数据库表结构 三.Manager 实验三:设置Manager的TCP连接 四.SSL 实验四:设置SSL…