OVS 中的各种网络设备 - 每天5分钟玩转 OpenStack(128)

上一节我们启用了 Open vSwitch,本节将查看当前的网络状态并介绍 Open vSwitch 涉及的各种网络设备

初始网络状态

查看一下当前的网络状态。

控制节点

ifconfig 显示控制节点上有三个网桥 br-ex,br-int 和 br-tun。
从命名上看我们大致能猜出他们的用途:

br-ex
连接外部(external)网络的网桥

br-int
集成(integration)网桥,所有 instance 的虚拟网卡和其他虚拟网络设备都将连接到该网桥。

br-tun
隧道(tunnel)网桥,基于隧道技术的 VxLAN 和 GRE 网络将使用该网桥进行通信。

这些网桥都是 Neutron 自动为我们创建的,但是通过 brctl show 命令却看不到它们。
这是因为我们使用的是 Open vSwitch 而非 Linux Bridge,需要用 Open vSwitch 的命令 ovs-vsctl show 查看,如下图所示:

输出内容后面会详细讲解。

计算节点

计算节点上也有 br-int 和 br-tun,但没有 br-ext。
这是合理的,因为发送到外网的流量是通过网络节点上的虚拟路由器转发出去的,所以 br-ext 只会放在网络节点(devstack-controller)上。

了解 Open vSwitch 环境中的各种网络设备

在 Open vSwitch 环境中,一个数据包从 instance 发送到物理网卡大致会经过下面几个类型的设备:

  1. tap interface
    命名为 tapXXXX。
  2. linux bridge
    命名为 qbrXXXX。
  3. veth pair
    命名为 qvbXXXX, qvoXXXX。
  4. OVS integration bridge
    命名为 br-int。
  5. OVS patch ports
    命名为 int-br-ethX 和 phy-br-ethX(X 为 interface 的序号)。
  6. OVS provider bridge
    命名为 br-ethX(X 为 interface 的序号)。
  7. 物理 interface
    命名为 ethX(X 为 interface 的序号)。
  8. OVS tunnel bridge
    命名为 br-tun。

OVS provider bridge 会在 flat 和 vlan 网络中使用;OVS tunnel bridge 则会在 vxlan 和 gre 网络中使用。
后面会通过实例详细讨论这些设备。

Open vSwitch 支持 local, flat, vlan, vxlan 和 gre 所有五种 network type。
vxlan 和 gre 非常类似,接下来我们将深入学习 Open vSwitch 是如何实现 local, flat, vlan 和 vlxan 的。

下一节将从 local network 开始。

时间: 2024-07-30 10:44:38

OVS 中的各种网络设备 - 每天5分钟玩转 OpenStack(128)的相关文章

分析 OVS 如何实现 vlan 隔离 - 每天5分钟玩转 OpenStack(140)

上一节我们完成了 OVS vlan 环境的搭建,当前拓扑结构如下: cirros-vm1 位于控制节点,属于 vlan100. cirros-vm2 位于计算节点,属于 vlan100. cirros-vm3 位于计算节点,属于 vlan101. 今天详细分析 OVS 如何实现 vlan100 和 vlan101 的隔离.与 Linux Bridge driver 不同,Open vSwitch driver 并不通过 eth1.100, eth1.101 等 VLAN interface 来隔

OVS local network 连通性分析 - 每天5分钟玩转 OpenStack(132)

前面已经创建了两个 OVS local network,今天详细分析它们之间的连通性. launch 新的 instance "cirros-vm3",网络选择 second_local_net cirros-vm3 分配到的 IP 为 172.16.1.102 cirros-vm3 被 schedule 到控制节点,其虚拟网卡也连接到 br-int. 当前的控制节点上的网络结构如下:     下面我们讨论一个有趣的问题:cirros-vm3 能否 Ping 到 cirros-vm1

在 ML2 中 enable local network - 每天5分钟玩转 OpenStack(79)

前面完成了一系列准备工作,本节开始将创建各种 Neutorn 网络,我们首先讨论 local network.   local network 的特点是不会与宿主机的任何物理网卡相连,也不关联任何的 VLAN ID. 对于每个 local netwrok,ML2 linux-bridge 会创建一个 bridge,instance 的 tap 设备会连接到 bridge.位于同一个 local network 的 instance 会连接到相同的 bridge,这样 instance 之间就可以

创建 OVS vlan101 并部署 instance - 每天5分钟玩转 OpenStack(139)

前面我们创建了 OVS vlan100 并部署了 instance,今天继续创建 vlan101. subnet IP 地址为 172.16.101.0/24. 底层网络发生了什么变化 Neutron 自动在 br-int 网桥上创建了 vlan100 dhcp 的接口 "tap1820558c-0a". 现在,网络结构如下: 将 instance 连接到 vlan101 launch 新的 instance "cirros-vm3",网络选择 vlan101. c

写在最前面 - 每天5分钟玩转 OpenStack(1)

<每天5分钟玩转 OpenStack>是一个 OpenStack 教程,这是第 1 篇. 这个教程有下面两个特点: 系统讲解 OpenStack 从架构到各个组件:从整体到细节逐一讨论 重实践并兼顾理论 主要从实际操作的角度带着大家学习 OpenStack.   为啥要写这个? 简单回答是:因为OpenStack 学习难度大,但如果掌握了价值会很大 先做一个自我介绍吧. 本人网名CloudMan,在 IT 这个行当已经摸爬滚打了十多年,05年之前是搞上层应用开发的,那时候 Java 比较火,所

在 ML2 中配置 OVS flat network - 每天5分钟玩转 OpenStack(133)

前面讨论了 OVS local network,今天开始学习 flat network. flat network 是不带 tag 的网络,宿主机的物理网卡通过网桥与 flat network 连接,每个 flat network 都会占用一个物理网卡. 在 ML2 配置中 enable flat network 在控制节点 /etc/neutron/plugins/ml2/ml2_conf.ini 中设置 flat network 相关参数: tenant_network_types = fl

ML2 配置 OVS VxLAN - 每天5分钟玩转 OpenStack(146)

今天我们开始学习 OVS 如何实现 Neutron VxLAN,关于 VxLAN 的概念以及 Linux Bridge 实现,大家可以参考前面相关章节. Open vSwitch 支持 VXLAN 和 GRE 这两种 overlay network.因为 OpenStack 对于 VXLAN 与 GRE 配置和实现差别不大,这里只讨论如何实施 VXLAN. 在 ML2 配置中 enable vxlan network 在 /etc/neutron/plugins/ml2/ml2_conf.ini

实践 Neutron 前的两个准备工作 - 每天5分钟玩转 OpenStack(78)

上一节配置了 linux-bridge mechanism driver,本节再做两个准备工作: 1. 检视初始的网络状态.2. 了解 linux bridge 环境中的各种网络设备. 初始网络状态 我们首先考察实验环境最初始的网络状态.随着学习的深入,我们会对网络不断进行新的配置,大家也将看到网络一步一步发生的变化. 在我们的实验环境中,当前节点上只存在物理网卡设备 ethX,还没有 bridge 和 tap,状态如下: 控制节点 计算节点 了解 linux bridge 环境中的各种网络设备

cloud-init 典型应用 - 每天5分钟玩转 OpenStack(174)

本节介绍几个 cloud-init 的典型应用:设置 hostanme,设置用户初始密码,安装软件.  设置 hostname cloud-init 默认会将 instance 的名字设置为 hostname.但这样不太方便,有时希望能够将二者分开,可利用 cloud-init 的set_hostname 模块实现.set_hostname 它会查询 metadata 中 hostname 信息,默认值就是 instance 的名字.我们可以指定自己的 hostname,方法是将下面的内容传给