openstack
文章平均质量分 71
诸葛钢铁云
这个作者很懒,什么都没留下…
展开
-
访问外网 ML2 的配置 - 每天5分钟玩转 OpenStack(103)
虽然外部网络是已经存在的网络,但我们还是需要在 Neutron 中定义外部网络的对象,这样 router 才知道如何将租户网络和外部网络连接起来。上一节我们已经为创建外部网络配置了ML2,本节将通过 UI 创建 ext_net。进入 Admin -> Networks 菜单,点击 “Create Network” 按钮。显示创建页面。Provider Network Type 选择 “Flat”Physical Network 填写 “external”,与 ml2..转载 2021-06-22 09:12:23 · 400 阅读 · 0 评论 -
Routing 功能概述 - 每天5分钟玩转 OpenStack(98)
上一节我们介绍了路由服务(Routing)的基本功能,今天教大家如何配置。Neutron 的路由服务是由 l3 agent 提供的。 除此之外,l3 agent 通过 iptables 提供firewall 和 floating ip 服务。l3 agent 需要正确配置才能工作,配置文件为 /etc/neutron/l3_agent.ini,位于控制节点或网络节点上。interface_driver 是最重要的选项,如果 mechanism driver 是 l...转载 2021-06-22 09:11:15 · 147 阅读 · 0 评论 -
OVS VxLAN Flow 分析 - 每天5分钟玩转 OpenStack(149)
OVS 的数据流向都是由 Flow 规则控制的,今天我们就来分析 VxLAN 的 Flow 规则。提个醒:这可能是本教程最烧脑的一节,let's rock it !下面分析控制节点上的 flow rule,计算节点类似。br-int 的 flow rulebr-int 的 rule 看上去虽然多,其实逻辑很简单,br-int 被当作一个二层交换机,其重要的 rule 是下面这条:cookie=0xaaa0e760a7848ec3, duration=52798.625s,..原创 2021-07-04 15:53:48 · 481 阅读 · 2 评论 -
OVS vxlan 底层结构分析 - 每天5分钟玩转 OpenStack(148
上一节创建了 vxlan100_net 并部署 instance,今天我们来分析底层网络结构。控制节点执行 ovs-vsctl show:br-intbr-int 连接了如下 port: tap0d4cb13a-7a 是 vxlan100_net 的 DHCP 服务对应的 interface。 qvoa2ac3b9a-24 将 cirros-vm1 虚拟网卡连接到 vxlan100_net。 br-tunbr-tun 上创建了一个特殊的 p...转载 2021-07-04 15:53:25 · 302 阅读 · 0 评论 -
创建 vxlan 并部署 instance - 每天5分钟玩转 OpenStack(147)
上一节我们完成了OVS VxLAN 的配置工作,今天创建 vxlan100_net 并部署 instance。创建 vxlan100_net打开菜单 Admin -> Networks,点击 “Create Network” 按钮。显示创建页面。Provider Network Type 选择 “VXLAN”。Segmentation ID 即 VNI,设置为 100。点击 “Create Network”,vxlan100 创建成功。...转载 2021-07-04 15:53:15 · 139 阅读 · 0 评论 -
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 ...转载 2021-07-04 15:53:05 · 491 阅读 · 1 评论 -
将 ext_net 连接到 router - 每天5分钟玩转 OpenStack(145)
上一节完我们创建了外部网络 ext_net,接下来需要将其连接到 Neutron 的虚拟路由器,这样 instance 才能访问外网。点击菜单 Project -> Network -> Routers 进入 router 列表。点击 router_100_101 的 “Set Gateway” 按钮。在 “External Network” 下拉列表中选择 ext_net,点击 “Set Gateway”。外网设置成功。我们需要看看 router 发生了什么变.转载 2021-07-03 15:55:50 · 158 阅读 · 0 评论 -
创建 OVS 外部网络 ext_net - 每天5分钟玩转 OpenStack(144)
上一节完成了连接外网的配置准备工作,今天就来创建 OVS 外部网络 ext_net。进入 Admin -> Networks 菜单,点击 “Create Network” 按钮。显示创建页面。Provider Network Type 选择 “Flat”。Network 填写 “external”,与 ml2_conf.ini 中 flat_networks 的参数值保持一致。勾选 External Network 选择框。点击 “Create Netw...转载 2021-07-03 15:55:38 · 364 阅读 · 0 评论 -
访问 Neutron 外部网络 - 每天5分钟玩转 OpenStack(143)
前面我们学习了位于不同 Neutron subnet 的 instance 可以通过 router 通信,今天开始讨论 instance 如何访问外部网络。这里的外部网络是指的租户网络以外的网络。租户网络是由 Neutron 创建和维护的网络。 外部网络不由 Neutron 创建。如果是私有云,外部网络通常指的是公司 intranet;如果是公有云,外部网络通常指的是 internet。具体到我们的实验网络环境: 计算节点和控制节点 eth1 提供的是租户网络,IP 段租户可以自由设置。..转载 2021-07-03 15:55:26 · 244 阅读 · 0 评论 -
Neutron Router 工作原理 - 每天5分钟玩转 OpenStack(142)
上一节我们用 router 连通了 vlan100 和 vlan101, 今天分析router是如何工作的。首先查看控制节点的网络结构发生了什么变化:br-int 上多了两个 port:1. qr-d295b258-45,从命名上可以推断该 interface 对应 router_100_101 的 interface (d295b258-4586),是 subnet_172_16_100_0 的网关。2. qr-2ffdb861-73,从命名上可以推断该 interface 对应 ro.转载 2021-07-03 15:55:13 · 195 阅读 · 0 评论 -
用虚拟 router 连通 subnet - 每天5分钟玩转 OpenStack(141)
Neutron Routing 服务提供跨 subnet 互联互通的能力。例如前面我们搭建了实验环境:cirros-vm1 172.16.100.3 vlan100cirros-vm3 172.16.101.3 vlan101这两个 instance 要通信必须借助 router。可以是物理 router 或者虚拟 router。下面详细讨论 Neutron 的虚拟 router 实现。配置 l3 agent...转载 2021-07-03 15:55:02 · 274 阅读 · 0 评论 -
分析 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 ...转载 2021-07-03 15:54:49 · 682 阅读 · 0 评论 -
创建 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 连接到 vlan101launch 新的 instance “cirros-...转载 2021-07-03 15:54:36 · 154 阅读 · 0 评论 -
部署 instance 到 OVS vlan100 - 每天5分钟玩转 OpenStack(138)
上一节创建了 OVS vlan network vlan100,今天部署 instance 到该网络。launch 新的 instance “cirros-vm1”,网络选择 vlan100。cirros-vm1 分配到的 IP 为 172.16.100.3。cirros-vm1 被 schedule 到控制节点,其虚拟网卡也连接到 br-int。虚拟网卡与 br-int 的连接方式与 local 和 flat 网络没有任何区别,不再赘述。当前 vlan100 ...转载 2021-07-03 15:54:23 · 118 阅读 · 0 评论 -
创建 OVS vlan100 netwrok - 每天5分钟玩转 OpenStack(137)
上一节完成了OVS vlan network 的配置准备工作,今天我们创建 vlan100。打开菜单 Admin -> Networks,点击 “Create Network” 按钮。显示创建页面。Provider Network Type 选择 “VLAN”。Physical Network 填写 “default”,与 ml2_conf.ini 中 network_vlan_ranges 参数值保持一致。Segmentation ID 即 VLAN I...转载 2021-07-03 15:54:10 · 220 阅读 · 0 评论 -
在 ML2 中配置 OVS vlan network - 每天5分钟玩转 OpenStack(136)
前面我们已经学习了OVS 的 local 网络和falt 网络,今天开始讨论 vlan 网络。vlan network 是带 tag 的网络。在 Open vSwitch 实现方式下,不同 vlan instance 的虚拟网卡都接到 br-int 上。这一点与 linux bridge 非常不同,linux bridge 是不同 vlan 接到不同的网桥上。在我们的实验环境中,收发 vlan 数据的物理网卡为 eth1,上面可以走多个 vlan,所以物理交换机上与 e...转载 2021-07-03 15:53:57 · 216 阅读 · 0 评论 -
部署 instance 到 OVS flat network - 每天5分钟玩转 OpenStack(135)
上一节创建了 OVS flat network,今天我们部署 instance 并验证 flat 网络的连通性。launch 新的 instance “cirros-vm1”,网络选择 falt_net。cirros-vm1 分配到的 IP 为 172.16.1.3。cirros-vm1 被 schedule 到控制节点,其虚拟网卡也连接到 br-int。虚拟网卡与 br-int 的连接方式与 local 网络是一样的,不再赘述。当前 flat_net 的结构如下:..转载 2021-07-02 08:35:03 · 117 阅读 · 0 评论 -
创建 OVS flat network - 每天5分钟玩转 OpenStack(134)
上一节完成了flat 的配置工作,今天创建 OVS flat network。Admin -> Networks,点击 “Create Network” 按钮。显示创建页面。Provider Network Type 选择 “Flat”。Physical Network 填写 “default”,与 ml2_conf.ini 中 flat_networks 参数值保持一致。点击 “Create Network”,flat_net 创建成功。点...转载 2021-07-02 08:34:51 · 156 阅读 · 0 评论 -
在 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...转载 2021-07-02 08:34:40 · 584 阅读 · 0 评论 -
OVS local network 连通性分析 - 每天5分钟玩转 OpenStack(132)
前面已经创建了两个 OVS local network,今天详细分析它们之间的连通性。launch 新的 instance “cirros-vm3”,网络选择 second_local_netcirros-vm3 分配到的 IP 为 172.16.1.102cirros-vm3 被 schedule 到控制节点,其虚拟网卡也连接到 br-int。当前的控制节点上的网络结构如下:下面我们讨论一个有趣的问题:cirros-vm3 能否 Ping 到 cirros-v...转载 2021-07-02 08:34:27 · 229 阅读 · 0 评论 -
部署cirros_vm2 和second_local_net - 每天5分钟玩转 OpenStack(131
上一节部署了 cirros-vm1 到 first_local_net,今天我们将再部署 cirros-vm2 到同一网络,并创建 second_local_net。连接第二个 instance 到 first_local_net以同样的方式 launch instance “cirros-vm2”,分配的 IP 为 172.16.1.4。cirros-vm2 也被 schedule 到控制节点,ovs-vsctl show 的输出如下:cirros-...转载 2021-07-02 08:34:17 · 305 阅读 · 0 评论 -
将 instance 部署到 OVS Local Network - 每天5分钟玩转 OpenStack(130)
上一节创建了 OVS 本地网络 first_local_net,今天我们会部署一个 instance 到该网络并分析网络结构。launch 一个 instance,选择 first_local_net 网络:instance 部署成功,分配的 IP 地址为 172.16.1.3底层网络发生了什么变化?对于 instance “cirros-vm1”,Neutron 会在 subnet 中创建一个 port,分配 IP 和 MAC 地址,并将 port 分配给 cirro...转载 2021-07-02 08:34:05 · 108 阅读 · 0 评论 -
创建 OVS Local Network - 每天5分钟玩转 OpenStack(129)
上一节我们完成了OVS 的准备工作,本节从最基础的 local network 开始学习。local network 不会与宿主机的任何物理网卡连接,流量只被限制在宿主机内,同时也不关联任何的 VLAN ID。创建第一个 local network下面我们通过 Web GUI 创建 local network。进入菜单 Admin -> Networks,点击 “Create Network” 按钮。显示创建页面。“Provider ...转载 2021-07-02 08:33:53 · 179 阅读 · 0 评论 -
OVS 中的各种网络设备 - 每天5分钟玩转 OpenStack(128)
上一节我们启用了 Open vSwitch,本节将查看当前的网络状态并介绍 Open vSwitch 涉及的各种网络设备。初始网络状态查看一下当前的网络状态。控制节点ifconfig 显示控制节点上有三个网桥 br-ex,br-int 和 br-tun。从命名上看我们大致能猜出他们的用途:br-ex连接外部(external)网络的网桥。br-int集成(integration)网桥,所有 instance 的虚拟网卡和其他虚拟网络设备都将连接...转载 2021-07-02 08:33:42 · 1090 阅读 · 0 评论 -
启用 Open vSwitch - 每天5分钟玩转 OpenStack(127)
Linux Bridge 和 Open vSwitch 是目前 OpenStack 中使用最广泛的两种虚机交换机技术。前面各章节我们已经学习了如何用 Linux Bridge 作为 ML2 mechanism driver 实现 Neutron 网络。今天开始我们将详细讨论如何用 Open vSwitch 实现 Neutron。实验环境两节点的网卡分配方式与 Linux Bridge 一致,如下所示: 控制节点三个网卡(eth0, eth1, eth2),计算节点两网卡...转载 2021-07-02 08:33:31 · 307 阅读 · 0 评论 -
通过 floating IP 访问 VIP - 每天5分钟玩转 OpenStack(126)
前面我们是直接用 curl 测试 VIP,在更为真实的场景中通常会使用 floating IP 访问 VIP。下面我们给 VIP 关联一个 floating IP,再进行测试。访问 Project -> Compute -> Access & Security,打开 Floating IPs 标签页,点击 “Allocate IP to Project” 按钮。在下拉列表中选择 “ext_net”,Neutron 将从该网络中分配 floating...转载 2021-07-02 08:33:19 · 209 阅读 · 0 评论 -
LBaaS 实现机制 - 每天5分钟玩转 OpenStack(125)
上一节我们已经配置并测试 LBaaS,今天重点分析 Neutron 是如何用 Haproxy 来实现负责均衡的。在控制节点上运行 ip netns,我们发现 Neutron 创建了新的 namespace qlbaas-xxx。该 namespace 对应我们创建的 pool “web servers”。其命名格式为 qlbaas-< pool ID>。可以通过 ip a 查看其设置。VIP 172.16.100.11 已经配置在 namespace int...转载 2021-06-30 15:06:14 · 118 阅读 · 0 评论 -
添加 Pool Member - 每天5分钟玩转 OpenStack(123)
我们已经有了Load Balance Pool “web servers”和 VIP,接下来需要往 Pool 里添加 member 并学习如何使用 cloud image。先准备两个 instance: “Web1” 和 “Web2”。使用 Ubuntu Cloud Image由于 cirros 镜像不能运行 HTTP 服务,我们将使用 Ubuntu Cloud Image。下载地址为http://uec-images.ubuntu.com/trusty/current/trusty-...转载 2021-06-30 15:05:54 · 192 阅读 · 0 评论 -
创建 Pool & VIP - 每天5分钟玩转 OpenStack(122)
上节完成了LBaaS 配置,今天我们开始实现如下 LBaaS 环境。环境描述如下:1. 创建一个 Pool “web servers”。2. 两个 pool member “WEB1” 和 “WEB2”,均为运行 Ubuntu cloud image 的 instance。3. load balancer VIP 与 floating IP 关联。4. 位于外网的 client 通过 floating IP 外网访问 web server。我们从第...转载 2021-06-30 15:05:44 · 327 阅读 · 0 评论 -
配置 LBaaS - 每天5分钟玩转 OpenStack(121)
上一节学习了Neutron LBaaS 的原理,今天开始实践。首先在配置中启用 LBaaS 服务。Neutron 通过 lbaas plugin 和 lbaas agent 提供 LBaaS 服务。lbaas plugin 与 Neutron Server 一起运行在控制节点上。lbaas agent 运行在网络节点上。对于我们的实验环境,控制节点和网络节点是一个,都是 devstack-controller。配置 LBaaS agent配置 LBaaS agent 的地方是...转载 2021-06-30 15:05:32 · 605 阅读 · 0 评论 -
理解 Neutorn LBaaS - 每天5分钟玩转 OpenStack(120)
Load Balance as a Service(LBaaS)是 Neutron 提供的一项高级网络服务。LBaaS 允许租户在自己的网络中创建和管理 load balancer。load balancer 可以说是分布式系统中比较基础的组件。它接收前端发来的请求,然后将请求按照某种均衡策略转发给后端资源池中的某个处理单元,以完成处理。load balancer 可以实现系统高可用和横向扩展。LBaaS 有三个主要的概念:Pool Member,Pool 和 Virtual IP..转载 2021-06-30 15:05:21 · 236 阅读 · 0 评论 -
FWaaS 实践: 允许 ssh - 每天5分钟玩转 OpenStack(119)
上一节应用了无规则的虚拟防火墙,不允许任何流量通过。今天我们会在防火墙中添加一条规则,允许 ssh。最后我们会对安全组和 FWaaS 作个比较。下面我们添加一条 firewall rule:允许 ssh。在 Firewall Rules 标签页面点击 “Add Rule” 按钮。将新 rule 命名为 “allow ssh”,Protocal 选择 “TCP”,Action 为 “ALLOW”,Destination Port/Port Range 为 “22”,...转载 2021-06-30 15:05:10 · 134 阅读 · 0 评论 -
实践 Neutron FWaaS - 每天5分钟玩转 OpenStack(118)
前面我们学习了FWaaS 的理论知识,今天将通过实验来学习 FWaaS。在我们的实验环境中,有两个 instance:cirros-vm1(172.16.100.3) 和 cirros-vm2(172.16.101.3)。cirros-vm1 和 cirros-vm2 分别位于网络 vlan100 和 vlan101。vlan100 和 vlan101 之间由虚拟路由器 test_router 连接。网络拓扑如下:在 test_router 没有应用任...转载 2021-06-30 15:05:01 · 205 阅读 · 0 评论 -
理解 Neutron FWaaS - 每天5分钟玩转 OpenStack(117)
前面我们学习了安全组,今天学习另一个与安全相关的服务 -- FWaaS。理解概念Firewall as a Service(FWaaS)是 Neutron 的一个高级服务。用户可以用它来创建和管理防火墙,在 subnet 边界上对 layer 3 和 layer 4 的流量进行过滤。传统网络中的防火墙一般放在网关上,用来控制子网之间的访问。FWaaS 的原理也一样,是在 Neutron 虚拟 router 上应用防火墙规则,控制进出租户网络的数据。FWaaS 有三个重...转载 2021-06-30 15:04:51 · 631 阅读 · 0 评论 -
将 instance 连接到 vlan100 - 每天5分钟玩转 OpenStack(95)
上一节我们创建了 vlan100,今天将部署两个 instance 到 vlan 并验证其连通性。同时我们也将讨论底层网络结构的变化。launch 新的 instance “cirros-vm1”,网络选择 vlan100。cirros-vm1 分配到的 IP 为 172.16.100.3。cirros-vm1 被 schedule 到控制节点,对应的 tap 设备为 tapc1875c7f-cb,并且连接到 bridge。当前 vlan100 的结构如下。...转载 2021-06-20 13:38:37 · 308 阅读 · 0 评论 -
在 ML2 中配置 Vlan Network- 每天5分钟玩转 OpenStack(93)
上一节我们学习了Neutron Vlan Network 的原理,今天讨论如何在 ML2 配置中 enable 它。首先在 /etc/neutron/plugins/ml2/ml2_conf.ini 中设置 vlan network 相关参数。tenant_network_types = vlan指定普通用户创建的网络类型为 vlan。然后指定 vlan 的范围:上面配置定义了 label 为 “default” 的 vlan network,vlan id 的范围是 3..转载 2021-06-20 13:38:03 · 315 阅读 · 0 评论 -
获取 dhcp IP 过程分析 - 每天5分钟玩转 OpenStack(91)
前面我们已经讨论了DHCP agent 的配置以及namespace 如何隔离 dnsmasq 服务,本节将以 cirros-vm1 为例分析获取 DHCP IP 的详细过程。在创建 instance 时,Neutron 会为其分配一个 port,里面包含了 MAC 和 IP 地址信息。这些信息会同步更新到 dnsmasq 的 host 文件。如下图所示:同时 nova-compute 会设置 cirros-vm1 VIF 的 MAC 地址。一切准备就绪,instance...转载 2021-06-20 13:37:30 · 240 阅读 · 0 评论 -
Neutron 默认安全组规则 - 每天5分钟玩转 OpenStack(115)
Neutron 为 instance 提供了两种管理网络安全的方法:安全组(Security Group)和虚拟防火墙。安全组的原理是通过 iptables 对 instance 所在计算节点的网络流量进行过滤。虚拟防火墙则由 Neutron Firewall as a Service(FWaaS)高级服务提供。其底层也是使用 iptables,在 Neutron Router 上对网络包进行过滤。这两种安全方案我们都会讨论,本章先重点学习安全组。默认安全组每个 Proje...转载 2021-06-28 13:53:56 · 507 阅读 · 0 评论 -
配置 L2 Population - 每天5分钟玩转 OpenStack(114)
前面我们学习了L2 Population 的原理,今天讨论如何在 Neutron 中配置和启用此特性。目前 L2 Population 支持 VXLAN with Linux bridge 和 VXLAN/GRE with OVS。可以通过以下配置启用 L2 Population。在 /etc/neutron/plugins/ml2/ml2_conf.ini 设置 l2population mechanism driver。mechanism_drivers = linuxb...转载 2021-06-28 13:53:45 · 158 阅读 · 0 评论 -
L2 Population 原理 - 每天5分钟玩转 OpenStack(113)
前面我们学习了VXLAN,今天讨论跟 VXLAN 紧密相关的 L2 Population。L2 Population 是用来提高 VXLAN 网络 Scalability 的。通常我们说某个系统的 Scalability 好,其意思是:当系统的规模变大时,仍然能够高效地工作。L2 Population 到底解决了怎样的 Scalability 问题?请看下图:这是一个包含 5 个节点的 VXLAN 网络,每个节点上运行了若干 VM。现在假设 Host 1 上的...转载 2021-06-28 13:53:35 · 223 阅读 · 0 评论