云计算: OVN 集群 部署分布式交换机

目录

一、实验

1.环境

[2.OVN 集群 部署云主机](#2.OVN 集群 部署云主机)

3.中心端添加DVS分布式大二层交换机

二、问题

1.南向控制器查看主机名只显示localhost

2.中心端如何添加DVR分布式⼤三层路由器


一、实验

1.环境

(1) 主机

表1 宿主机

|-------------|------|-------------------------|-------------------------------------|----------------|-----------------------------------|
| 主机 | 架构 | 软件 | 主要服务 | IP | 备注 |
| ovn_central | 中心端 | ovn-central openvswitch | ovn-northd(控制平面层) ovn-controller | 192.168.204.64 | ovn-nbctl(北向控制器) ovn-sbctl(南向控制器) |
| ovn_node01 | 业务端1 | openvswitch libvirt | ovn-controller openvswitch libvirtd | 192.168.204.65 | |
| ovn_node02 | 业务端2 | openvswitch libvirt | ovn-controller openvswitch libvirtd | 192.168.204.66 | |

表2 目标云主机

|---------------|------------|---------------|
| 云主机 | IP | 备注 |
| cloudserver01 | 172.16.1.1 | 宿主机ovn_node01 |
| cloudserver02 | 172.16.1.2 | 宿主机ovn_node02 |

(2)中心端查看

南向控制器

bash 复制代码
ovn-sbctl  show

北向控制器目前为空

bash 复制代码
ovn-nbctl  show

(3)业务端查看

bash 复制代码
 ovs-vsctl show

ovn_node01

ovn_node02

2.OVN 集群 部署云主机

(1)ovn_node01创建云主机

bash 复制代码
virt-manager

新建虚拟机

前进

使用镜像

修改内存

完成

强制关机

查看云主机

bash 复制代码
virsh list-all

修改云主机

bash 复制代码
virsh edit cloudserver01

搜索接口

bash 复制代码
:/interface

修改前:

修改后:

bash 复制代码
<interface type='bridge'>
  <mac address='02:01:01:01:01:01'/>
  <source bridge='br-int'/>
  <virtualport type='openvswitch'/>
  <target dev='vm01-1'/>
  <model type='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

挂载镜像

修改启动项为光驱

开机选择第3个命令行

(2) ovn_node02创建云主机

bash 复制代码
virt-manager

新建虚拟机

前进

使用镜像

修改内存

完成(网络默认,暂不修改)

强制关机

查看云主机

bash 复制代码
virsh list-all

修改云主机

bash 复制代码
virsh edit cloudserver02

搜索接口

bash 复制代码
:/interface

修改前:

修改后:

bash 复制代码
<interface type='bridge'>
  <mac address='02:01:01:01:01:02'/>
  <source bridge='br-int'/>
  <virtualport type='openvswitch'/>
  <target dev='vm02-1'/>
  <model type='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

挂载镜像

修改启动项为光驱

开机选择第3个命令行

(3)网络测试

云主机01 ping 云主机02,目前不通

3.中心端添加DVS分布式大二层交换机

(1)北向添加逻辑交换机

bash 复制代码
 ovn-nbctl ls-add ls1

(2)添加并设置⽤于连接业务端1的端⼝

bash 复制代码
ovn-nbctl lsp-add ls1 ls1-node1-vm1
ovn-nbctl lsp-set-addresses ls1-node1-vm1 02:01:01:01:01:01
ovn-nbctl lsp-set-port-security ls1-node1-vm1 02:01:01:01:01:01

(3)添加并设置⽤于连接业务端2的端⼝

bash 复制代码
ovn-nbctl lsp-add ls1 ls1-node2-vm2
ovn-nbctl lsp-set-addresses ls1-node2-vm2 02:01:01:01:01:02
ovn-nbctl lsp-set-port-security ls1-node2-vm2 02:01:01:01:01:02

(4)查看北向控制器

bash 复制代码
ovn-nbctl show

(5)查看南向控制器

bash 复制代码
ovn-sbctl show

(6) 业务端查看流表

bash 复制代码
ovs-ofctl  dump-flows  br-int | wc -l

ovn_node01

ovn_node02

(7)业务端OVS添加端⼝映射(南北向接⼝映射)

ovn_node01

bash 复制代码
ovs-vsctl set Interface vm01-1 external_ids:iface-id=ls1-node1-vm1

ovn_node02

bash 复制代码
ovs-vsctl set Interface vm02-1 external_ids:iface-id=ls1-node2-vm2

(8)中心端再次查看南向控制器

端⼝已经绑定

bash 复制代码
ovn-sbctl show

(9)业务端再次查看流表

bash 复制代码
ovs-ofctl  dump-flows  br-int | wc -l

ovn_node01

ovn_node02

(10)网络测试

云主机01 ping 云主机02,目前已通

二、问题

1.南向控制器查看主机名只显示localhost

(1)报错

主机名显示localhost

(2)原因分析

hosts文件配置需要修改。

(3)解决方法

修改hosts文件

bash 复制代码
vim /etc/hosts

成功:

2.中心端如何添加DVR分布式⼤三层路由器

(1)中心端添加逻辑路由器

bash 复制代码
ovn-nbctl lr-add lr1

(2)逻辑路由器添加连接交换机ls1的端⼝

bash 复制代码
ovn-nbctl lrp-add lr1 lr1-ls1 02:01:01:01:0F:01 172.16.1.254/24

(3)逻辑路由器连接逻辑交换机ls1

bash 复制代码
ovn-nbctl lsp-add ls1 ls1-lr1
ovn-nbctl lsp-set-type ls1-lr1 router
ovn-nbctl lsp-set-addresses ls1-lr1 02:01:01:01:0F:01
ovn-nbctl lsp-set-options ls1-lr1 router-port=lr1-ls1

(4)查看北向数据库信息

bash 复制代码
ovn-nbctl show

(5)查看南向数据库信息

bash 复制代码
ovn-sbctl show

(6)业务端查看流表

bash 复制代码
ovs-ofctl  dump-flows  br-int | wc -l

ovn_node01

ovn_node02

相关推荐
慕雪华年7 小时前
【Docker】dockerfile识别当前构建的镜像平台
运维·docker·容器
我的青春不太冷8 小时前
【实战篇章】深入探讨:服务器如何响应前端请求及后端如何查看前端提交的数据
运维·服务器·前端·学习
Bulestar_xx9 小时前
vulnhub DC-4 walkthrough (含非预期)
linux·网络·安全
涛ing9 小时前
【5. C++ 变量作用域及其深入探讨】
java·linux·c语言·开发语言·c++·ubuntu·vim
大秦王多鱼9 小时前
Kafka ACL(访问控制列表)介绍
运维·分布式·安全·kafka·apache
曾经的三心草9 小时前
小程序项目-购物-首页与准备
运维·服务器·小程序·项目·购物
weixin_3077791311 小时前
在AWS上使用Flume搜集分布在不同EC2实例上的应用程序日志具体流程和代码
python·flask·云计算·flume·aws
蓝染k9z12 小时前
在Ubuntu上使用Docker部署DeepSeek
linux·人工智能·ubuntu·docker·deepseek+
苏-言12 小时前
Linux环境下的Java项目部署技巧:安装 Mysql
linux·运维·mysql
代码对我眨眼睛13 小时前
重回C语言之老兵重装上阵(十三)C 预处理器
linux·c语言