1.1Open vSwitch网桥管理
Open vSwitch网桥管理
任务目的
1、了解网桥的基本概念以及工作原理。
2、掌握网桥相关的基本命令,学会添加、删除、查看网桥,为后续实验做准备。
任务环境
设备名称 | 软件环境 | 硬件环境 |
---|---|---|
交换机 | Ubuntu 14.04命令行版 Open vSwitch 2.3.1 | CPU:1核 内存:2G 磁盘:20G |
注:系统默认的账户为:
管理员权限用户名:root,密码:root@openlab;
普通用户用户名:openlab,密码:user@openlab。
可查看当前实验环境右侧“钥匙” 按钮获取对应的密码。
任务内容
1、学习网桥相关的基本概念。
2、学习常用的网桥命令,进行网桥和端口的添加、删除、查看等操作。
实验原理
在网络中,交换机和桥概念类似,Open vSwitch是一个虚拟交换软件,也就是说,Open vSwitch实现了网桥的功能。学习Open vSwitch的第一步要弄清楚网桥的概念。网桥是连接两个局域网的设备,工作在数据链路层,根据MAC地址来转发帧。在Open vSwitch中创建一个网桥后,此时网络功能不受影响,但是会产生一个虚拟网卡,之所以会产生一个虚拟网卡,是为了实现接下来的网桥(交换机)功能。有了这个网桥以后,还需要为这个网桥增加端口(port),一个端口就是一个物理网卡,当网卡加入到这个网桥之后,其工作方式就和普通交换机的一个端口的工作方式类似了。以下是一个网桥的具体信息:
root@localhost:~# ovs-vsctl show
bc12c8d2-6900-42dd-9c1c-30e8ecb99a1b
Bridge "br0"
Port "eth0"
Interface "eth0"
Port "br0"
Interface "br0"
type: internal
ovs_version: "1.4.0+build0"
上述信息显示了一个名为br0的桥(交换机),这个交换机有两个接口,一个是eth0,一个是br0。
上面说到,创建桥的时候会创建一个和桥名字一样的接口,并自动作为该桥的一个端口,那么这个虚拟接口的作用,一方面是可以作为交换机的管理端口,另一方面也是基于这个虚拟接口实现了桥的功能。Open vSwitch的内核模块实现了多个“数据路径”,每个都可以有多个vports。每个数据路径也通过关联流表(flow table)来设置操作,而这些流表中的流都是用户空间在报文头和元数据的基础上映射的关键信息,一般的操作都是将数据包转发到另一个vport。当一个数据包到达一个vport,内核模块所做的处理是提取其流的关键信息并在流表中查找这些关键信息,当有一个匹配的流时它执行对应的操作,如果没有匹配,它会将数据包送到用户空间的处理队列中,作为处理的一部分,用户空间可能会设置一个流用于以后碰到相同类型的数据包可以在内核中执行操作。
ovs-vsctl关于网桥管理的常用命令如下:
命令 | 含义 |
---|---|
init | 初始化数据库(前提数据分组为空) |
show | 打印数据库信息摘要 |
add-br BRIDGE | 添加新的网桥 |
del-br BRIDGE | 删除网桥 |
list-br | 打印网桥摘要信息 |
list-ports BRIDGE | 打印网桥中所有port摘要信息 |
add-port BRIDGE PORT | 向网桥中添加端口 |
del-port [BRIDGE] PORT | 删除网桥上的端口 |
get-controller BRIDGE | 获取网桥的控制器信息 |
del-controller BRIDGE | 删除网桥的控制器信息 |
set-controller BRIDGE TARGET | 向网桥添加控制器 |
实验步骤
一、实验环境检查
步骤1 登录交换机,执行ovs-vsctl show命令,查看镜像中原有的网桥,如下图所示。
步骤2 执行以下命令删除当前网桥,并进行确认,如下图所示。
# ovs-vsctl del-br br-sw
# ovs-vsctl show
二、添加网桥和端口
步骤1 执行以下命令添加名为br0的网桥。
# ovs-vsctl add-br br0
步骤2 执行以下命令,列出Open vSwitch中所有网桥,如下图所示。
# ovs-vsctl list-br
步骤3 执行以下命令,将物理网卡挂接到网桥br0上,如下图所示。
# ovs-vsctl add-port br0 eth0
说明:port和bridge是多对一的关系,也就是说一个网桥上可以挂接多个物理网卡。
步骤4 执行以下命令,列出挂接到网桥br0上的所有网卡,如下图所示。
# ovs-vsctl list-ports br0
步骤5 执行以下命令,列出挂接到eth0网卡上的所有网桥,如下图所示。
# ovs-vsctl port-to-br eth0
步骤6 执行以下命令,查看Open vSwitch的网络状态,如下图所示。
# ovs-vsctl show
三、删除网桥和端口
步骤1 执行以下命令,删除挂接到网桥br0上的网卡eth0。
$ ovs-vsctl del-port br0 eth0
步骤2 执行以下命令,查看open vswitch的网络状态,如下图所示。
# ovs-vsctl show
由上图可知,删除eth0后网桥br0依旧存在。
步骤3 执行如下命令,删除网桥br0,并进行确认,如下图所示。
# ovs-vsctl del-br br0
说明:如果不删除eth0直接删除br0,br0及挂接到br0上的端口会被一并删除。