openvswitch常用操作
2016-01-16 21:48
302 查看
原理讲解:
当我们创建一个交换机(网桥)之后即(ovs-vsctl add-br brname),此时网络功能不受影响,但是会产生一个虚拟网卡,名字为brname(与网桥名字同名,可以使用 ifconfig brname查看),之所以会产生一个虚拟网卡,是为了实现接下来的网桥(交换机)功能,有了这个交换机以后,还需要为这个交换机增加端口(port),一个 端口就相当于一个物理网卡,当网卡加入到这个交换机之后,其工作方式就和普通交换机的一个端口的工作方式类似了;
再执行(ovs-vsctl add-port brname port)之后,即网卡加入网桥之后,按照网桥的工作标准工作,则加入的端口(网卡)必须以混杂模式工作,工作在链路层,处理2 层的帧,所以这个port就不需要配置IP的(应该没有见过哪个交换机的端口有IP的吧)
那么接下来你可能会问,通常的交换机不都是有一个管理接口,通过telnet到交换机上进行配置的,那么在OVS中创建的虚拟机有没有该接口呢,有的!上面提到创建交换机brname的时候产生了一个虚拟网口brname,那么,给这个虚拟网卡配置了ip之后,就相当于给交换机的管理接口配置了IP,对此一个正常的虚拟交换机就搞定了!!
除此之外,与网桥同名的网卡(端口)起到了桥的功能;
1 VM实例instance产生一个数据包并发送至实例内的虚拟网络接口VNIC,图中就是instance中的eth0.
2 这个数据包会传送到物理节点上的VNIC接口,如图就是vnet接口。
3 数据包从vnet NIC出来,到达桥(虚拟交换机)br100上.
4 数据包经过交换机的处理,从物理节点上的物理接口发出,如图中物理节点上的eth0.
5 数据包从eth0出去的时候,是按照物理节点上的路由以及默认网关操作的,这个时候该数据包其实已经不受你的控制了。
1、添加网桥br0:
#ovs-vsctl add-br br0
2、列出open vswitch中所有的网桥:
#ovs-vsctl list-br
3、判断网桥是否存在:
#ovs-vsctl br-exists br0
4、将物理网卡挂接到网桥:
#ovs-vsctl add-port br0 eth0
5、新建虚拟端挂接到网桥中:
#ovs-vsctl add-port br0 my_port_name
eg:ovs-vsctl add-port br0 gre0 -- set Interface gre0 type=gre options:remote_ip = XX.XX.XX.XX
6、列出网桥中所有端口:
#ovs-vsctl list-ports br0
7、列出所有挂接到网卡的网桥:
#ovs-vsctl port-to-br eth0
8、查看open vswitch的网络状态:
#ovs-vsctl show
9、删除网桥上已挂接的网口:
#ovs-vsctl del-port br0 eth0
10、删除网桥:
#ovs-vsctl del-br br0
参见:http://blog.chinaunix.net/uid-20737871-id-4333314.html
当我们创建一个交换机(网桥)之后即(ovs-vsctl add-br brname),此时网络功能不受影响,但是会产生一个虚拟网卡,名字为brname(与网桥名字同名,可以使用 ifconfig brname查看),之所以会产生一个虚拟网卡,是为了实现接下来的网桥(交换机)功能,有了这个交换机以后,还需要为这个交换机增加端口(port),一个 端口就相当于一个物理网卡,当网卡加入到这个交换机之后,其工作方式就和普通交换机的一个端口的工作方式类似了;
再执行(ovs-vsctl add-port brname port)之后,即网卡加入网桥之后,按照网桥的工作标准工作,则加入的端口(网卡)必须以混杂模式工作,工作在链路层,处理2 层的帧,所以这个port就不需要配置IP的(应该没有见过哪个交换机的端口有IP的吧)
那么接下来你可能会问,通常的交换机不都是有一个管理接口,通过telnet到交换机上进行配置的,那么在OVS中创建的虚拟机有没有该接口呢,有的!上面提到创建交换机brname的时候产生了一个虚拟网口brname,那么,给这个虚拟网卡配置了ip之后,就相当于给交换机的管理接口配置了IP,对此一个正常的虚拟交换机就搞定了!!
除此之外,与网桥同名的网卡(端口)起到了桥的功能;
二、工作场景
ovs主要是用来虚拟化环境中,虚拟机之间的一个虚拟机和外网之间的通信场景,如下一个典型的结构图:1 VM实例instance产生一个数据包并发送至实例内的虚拟网络接口VNIC,图中就是instance中的eth0.
2 这个数据包会传送到物理节点上的VNIC接口,如图就是vnet接口。
3 数据包从vnet NIC出来,到达桥(虚拟交换机)br100上.
4 数据包经过交换机的处理,从物理节点上的物理接口发出,如图中物理节点上的eth0.
5 数据包从eth0出去的时候,是按照物理节点上的路由以及默认网关操作的,这个时候该数据包其实已经不受你的控制了。
1、添加网桥br0:
#ovs-vsctl add-br br0
2、列出open vswitch中所有的网桥:
#ovs-vsctl list-br
3、判断网桥是否存在:
#ovs-vsctl br-exists br0
4、将物理网卡挂接到网桥:
#ovs-vsctl add-port br0 eth0
5、新建虚拟端挂接到网桥中:
#ovs-vsctl add-port br0 my_port_name
eg:ovs-vsctl add-port br0 gre0 -- set Interface gre0 type=gre options:remote_ip = XX.XX.XX.XX
6、列出网桥中所有端口:
#ovs-vsctl list-ports br0
7、列出所有挂接到网卡的网桥:
#ovs-vsctl port-to-br eth0
8、查看open vswitch的网络状态:
#ovs-vsctl show
9、删除网桥上已挂接的网口:
#ovs-vsctl del-port br0 eth0
10、删除网桥:
#ovs-vsctl del-br br0
参见:http://blog.chinaunix.net/uid-20737871-id-4333314.html
相关文章推荐
- nginx +phpfastcgi 环境下 导出excel文件,超时,数据被截断问题,解决
- docker命令记录
- 【Xshell】连接【Mac】电脑之ssh设置
- linux面试题大全
- lnmp架构
- Java开发必会的Linux命令
- 微服务与Docker介绍
- Linux下软连接和硬链接的关系
- linux学习笔记----权限与命令之间的关系(极重要)
- nginx机制-从源码分析(1)
- Linux crontab 计划执行详解
- Java开发必会的Linux命令
- Linux mysql 主从复制
- Nginx 启动出错 error while loading shared libraries: libpcre.so.1
- redhat Nginx 安装
- 大型网站技术架构03
- 谈谈陌生平台、语言的学习与mvc
- Hive的安装以及基本的shell操作以及基本模型的介绍
- linux学习笔记----文件与目录管理
- *Linux之rpm命令