跳转到: 导航, 搜索

理解扁平网络

理解 扁平网络

(这花了我不少时间才理解,所以写下来给其他人)

OpenStack/Nova 在 Cactus/Diablo 版本中,通常有两类网络配置

扁平网络

扁平网络 使用配置为桥接器的以太网适配器,允许网络流量在所有节点之间传输。此设置可以使用物理主机上的单个适配器或多个适配器完成。此选项 _*不需要*_ 具有 VLAN 标记功能的交换机(VLAN 网络需要) - 并且是常见的开发安装或概念验证设置。

单网卡,一体化设置

  • 非常常见的开发设置

FlatNetworkSingleInterfaceAllInOne.png

使用单网卡的多个节点

  • 冒烟测试,概念验证布局

FlatNetworkSingleInterface.png

使用多个网卡的多个节点

  • 服务器设置,分离管理和数据流量

FlatNetworkMultInterface.png

出站流量流程

在任何使用 扁平网络 的设置中,具有 `nova-network` 的主机负责转发来自 nova.conf 中 {{--fixed_range=...} 指令配置的私有网络的流量。此主机需要配置 br100 并与托管 VM 的任何其他节点通信。对于扁平网络的任何选项,虚拟机的默认网关都设置为运行 `nova-network` 的主机。您必须设置 --flat_network_bridge 标志或使用桥接参数创建网络,以避免引发错误。

单网卡主机

  • 当虚拟机发送流量到公共网络时,它首先将其发送到其默认网关(无论 `nova-network` 配置在哪里)

SingleInterfaceOutbound 1.png

  • 然后,配置了 `nova-network` 的主机充当路由器并将流量转发到互联网。

SingleInterfaceOutbound 2.png

#!wiki caution
If you're using a single interface, then that interface (often eth0) needs to be set into promiscuous mode for the forwarding to happen correctly. This _does not_ appear to be needed if you're running with physical hosts that have and use two interfaces.

多网卡主机

  • 当虚拟机发送流量到公共网络时,它首先将其发送到其默认网关(无论 `nova-network` 配置在哪里)。在多网卡设置中,这是通过配置为桥接接口并连接到其他主机通过交换机的适配器进行的。

MultiInterfaceOutbound 1.png

  • 然后,配置了 `nova-network` 的主机充当路由器并将流量转发到互联网。通常通过第二个接口,该接口已配置为主机的互联网 IP 地址。

MultiInterfaceOutbound 2.png

入站流量

对于入站流量(假设已设置浮动 IP 地址),`nova-network` 主机负责托管该 IP 地址并执行 DNAT/SNAT 寻址以将流量路由到适当的虚拟机。