OVN-软件定义网络(一)

2023-05-16

前言

测试环境是用github上开源代码搭建。
编译完成后进行如下操作。

环境配置

控制节点
创建逻辑交换机
ovn-nbctl --db=unix:/run/openvswitch/ovnnb_db.sock ls-add ly-ls

在逻辑交换机上增加端口并分配地址
ovn-nbctl --db=unix:/run/openvswitch/ovnnb_db.sock list Logical_Switch
ovn-nbctl --db=unix:/run/openvswitch/ovnnb_db.sock lsp-add ly-ls ls-port1
ovn-nbctl --db=unix:/run/openvswitch/ovnnb_db.sock lsp-set-addresses ls-port1 “de:d4:1d:8c:d9:7f 172.20.1.1”
ovn-nbctl --db=unix:/run/openvswitch/ovnnb_db.sock lsp-set-port-security ls-port1 “de:d4:1d:8c:d9:7f 172.20.1.1”

ovn-nbctl --db=unix:/run/openvswitch/ovnnb_db.sock list Logical_Switch
ovn-nbctl --db=unix:/run/openvswitch/ovnnb_db.sock lsp-add ly-ls ls-port2
ovn-nbctl --db=unix:/run/openvswitch/ovnnb_db.sock lsp-set-addresses ls-port2 “de:d4:1d:8c:d9:8f 172.20.1.2”
ovn-nbctl --db=unix:/run/openvswitch/ovnnb_db.sock lsp-set-port-security ls-port2 “de:d4:1d:8c:d9:8f 172.20.1.2”

计算节点

ip link add vm10 type veth peer name nmsvm10
ovs-vsctl add-port br-int vm10
ip link set dev vm10 up

ip netns add vm10
ip link set nmsvm10 netns vm10
ip netns exec vm10 ip link set nmsvm10 address de:d4:1d:8c:d9:7f
ip netns exec vm10 ip addr add 172.20.1.1/24 dev nmsvm10
ip netns exec vm10 ip link set nmsvm10 up
ovs-vsctl set Interface vm10 external_ids:iface-id=ls-port1

ip link add vm11 type veth peer name nmsvm11
ovs-vsctl add-port br-int vm11
ip link set dev vm11 up

ip netns add vm11
ip link set nmsvm10 netns vm11
ip netns exec vm10 ip link set nmsvm10 address de:d4:1d:8c:d9:8f
ip netns exec vm10 ip addr add 172.20.1.2/24 dev nmsvm10
ip netns exec vm11 ip link set nmsvm11 up
ovs-vsctl set Interface vm11 external_ids:iface-id=ls-port2


如果遇到RTNETLINK answers: Cannot assign requested address问题,是因为de:d4:1d:8c:d9:7f地址分配出问题,尝试更换地址段即可


验证

控制节点的验证
[root@packet1 openvswitch]# ovn-sbctl show
Chassis “60183885-391e-47ef-a0b9-46ab1fd82773”
hostname: “computer2.suning.com”
Encap geneve
ip: “192.168.0.9”
options: {csum=“true”}
Port_Binding “inside-vm4”
Port_Binding “inside-vm3”
Chassis “aa8e3263-a3f0-4d62-917a-e625579241c5”
hostname: “computer1”
Encap geneve
ip: “192.168.0.8”
options: {csum=“true”}
Port_Binding “ls-port1”
Port_Binding “dmz-vm2”
Port_Binding “dmz-vm1”

控制节点上已经存在Port_Binding “ls-port1” ,代表成功。

在计算节点创建多个虚机时,根据分配的私网地址段去ping,如果通了,则代表正确。

计算节点上的验证
[root@computer1 network-scripts]# ip netns exec vm11 ping 172.20.1.1
PING 172.20.1.1 (172.20.1.1) 56(84) bytes of data.
64 bytes from 172.20.1.1: icmp_seq=1 ttl=64 time=0.396 ms
64 bytes from 172.20.1.1: icmp_seq=2 ttl=64 time=0.028 ms
64 bytes from 172.20.1.1: icmp_seq=3 ttl=64 time=0.022 ms

基本功能测试

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

创建逻辑交换机后南向和北向数据库的更新测试
ovn-nbctl --db=unix:/run/openvswitch/ovnnb_db.sock ls-add ly-ls2

ovn-nbctl --db=unix:/run/openvswitch/ovnnb_db.sock Logical_Switch

_uuid : 75cbc78d-a0da-4af9-9a91-62ffdb0f9545
acls : []
dns_records : []
external_ids : {}
load_balancer : []
name : “ly-ls2”
other_config : {}
ports : []
qos_rules : []

北向数据库创建成功

ovn-sbctl --db=unix:/run/openvswitch/ovnsb_db.sock list Datapath_Binding
南向数据库中的Datapath_Binding表中对应生成了ly-ls2表项
_uuid : a1857db8-df75-446e-94ce-e9375d502764
external_ids : {logical-switch=“75cbc78d-a0da-4af9-9a91-62ffdb0f9545”, name=“ly-ls2”}
tunnel_key : 15

ovn-nbctl --db=unix:/run/openvswitch/ovnnb_db.sock ls-del ly-ls2

删除后,北向的Logical_Switch表和南向的Datapath_Binding表对应的表项,也删除。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

创建逻辑交换机端口测试
ovn-nbctl lsp-add ly-ls ly-port2

_uuid : 3aa75fda-1929-4fba-80d0-47abeea00aaa
acls : []
dns_records : []
external_ids : {}
load_balancer : []
name : ly-ls
other_config : {}
ports : [4663ee28-8d58-494f-8317-5234e91336c4, 988f581d-48ff-4b05-ada2-657922f86812, fcba9d26-500b-4041-acd2-fad0fd1c830f]
qos_rules : []

ovn-nbctl list Logical_Switch_Port |grep -C 10 4663ee28-8d58-494f-8317-5234e91336c4

ha_chassis_group : []
name : “inside-vm4”
options : {}
parent_name : []
port_security : [“02:d4:1d:8c:d9:8c 172.16.2.131”]
tag : []
tag_request : []
type : “”
up : true

_uuid : 4663ee28-8d58-494f-8317-5234e91336c4
addresses : []
dhcpv4_options : []
dhcpv6_options : []
dynamic_addresses : []
enabled : []
external_ids : {}
ha_chassis_group : []
name : “ly-port2”
options : {}
parent_name : []

以上可知,逻辑交换机上增加了一个ly-port2端口。

[root@packet1 openvswitch]# ovn-sbctl list Port_Binding|grep -C 10 ls-port2
type : “”
virtual_parent : []

_uuid : f7301a51-f528-42f5-9a9f-3e72c4c79d52
chassis : 536095c2-f967-454f-918d-692e503ca19f
datapath : 9611af86-939b-4ce8-a0fb-69083bbf8895
encap : []
external_ids : {}
gateway_chassis : []
ha_chassis_group : []
logical_port : “ls-port2”
mac : [“de:d4:1d:8c:d9:8f 172.20.1.2”]
nat_addresses : []
options : {}
parent_port : []
tag : []
tunnel_key : 2
type : “”
virtual_parent : []
南向数据库的port_inding表多出ls-port2表项,说明创建端口功能正常。

创建逻辑交换机端口测试
ovn-nbctl lsp-add ly-ls ly-port2

_uuid : 3aa75fda-1929-4fba-80d0-47abeea00aaa
acls : []
dns_records : []
external_ids : {}
load_balancer : []
name : ly-ls
other_config : {}
ports : [4663ee28-8d58-494f-8317-5234e91336c4, 988f581d-48ff-4b05-ada2-657922f86812, fcba9d26-500b-4041-acd2-fad0fd1c830f]
qos_rules : []

ovn-nbctl list Logical_Switch_Port |grep -C 10 4663ee28-8d58-494f-8317-5234e91336c4

ha_chassis_group : []
name : “inside-vm4”
options : {}
parent_name : []
port_security : [“02:d4:1d:8c:d9:8c 172.16.2.131”]
tag : []
tag_request : []
type : “”
up : true

_uuid : 4663ee28-8d58-494f-8317-5234e91336c4
addresses : []
dhcpv4_options : []
dhcpv6_options : []
dynamic_addresses : []
enabled : []
external_ids : {}
ha_chassis_group : []
name : “ly-port2”
options : {}
parent_name : []

以上可知,逻辑交换机上增加了一个ly-port2端口。

[root@packet1 openvswitch]# ovn-sbctl list Port_Binding|grep -C 10 ls-port2
type : “”
virtual_parent : []

_uuid : f7301a51-f528-42f5-9a9f-3e72c4c79d52
chassis : 536095c2-f967-454f-918d-692e503ca19f
datapath : 9611af86-939b-4ce8-a0fb-69083bbf8895
encap : []
external_ids : {}
gateway_chassis : []
ha_chassis_group : []
logical_port : “ls-port2”
mac : [“de:d4:1d:8c:d9:8f 172.20.1.2”]
nat_addresses : []
options : {}
parent_port : []
tag : []
tunnel_key : 2
type : “”
virtual_parent : []
南向数据库的port_inding表多出ls-port2表项,说明创建端口功能正常。

删除逻辑交换机端口测试
ovn-nbctl lsp-del ly-port2

[root@packet1 openvswitch]# ovn-nbctl lsp-list ly-ls
fcba9d26-500b-4041-acd2-fad0fd1c830f (ls-port1)
988f581d-48ff-4b05-ada2-657922f86812 (ls-port2)
发现ly-ls交换机下的ly-port2已经删除

[root@packet1 openvswitch]# ovn-sbctl list Port_Binding|grep -C 10 ly-port2
[root@packet1 openvswitch]#
南向数据库查看Port_Binding表后ly-port2表项已经不存在。
说明删除功能正常

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OVN-软件定义网络(一) 的相关文章

  • Testing ovn manually based on LXD (by quqi99)

    作者 xff1a 张华 发表于 xff1a 2022 05 27 版权声明 xff1a 可以任意转载 xff0c 转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 准备两个LXD容器 lxc list 43 43 43 43
  • set up ovn development env (by quqi99)

    作者 xff1a 张华 发表于 xff1a 2022 07 08 版权声明 xff1a 可以任意转载 xff0c 转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 编译ovs并启动ovs vswitchd https docs
  • ovn-central raft HA (by quqi99)

    作者 xff1a 张华 发表于 xff1a 2022 10 12 版权声明 xff1a 可以任意转载 xff0c 转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 What s raft RAFT https raft git
  • OVN简介

    作者简介 xff1a 郑敏先 xff0c 就职于诺云系统 xff08 上海 xff09 有限公司 工作地点为南京的诺云研发中心 担任解决方案工程师 本人博客为 xff1a http blog csdn net zhengmx100 一 为什
  • OVN总结

    参考 xff1a https www sdnlab com 18600 html 三 OVN L3 对比 Neutron L3 Neutron 的三层功能主要有路由 xff0c SNAT 和 Floating IP xff08 也叫 DNA
  • OVN – OVN OpenStack(二)

    OpenStack networking ovn 项目为Neutron提供了一个基于ML2的OVN插件 xff0c 它使用OVN组件代替了各种Neutron的Python agent xff0c 也不再使用 RabbitMQ xff0c 而
  • OVN-软件定义网络(一)

    前言 测试环境是用github上开源代码搭建 编译完成后进行如下操作 环境配置 控制节点 创建逻辑交换机 ovn nbctl db 61 unix run openvswitch ovnnb db sock ls add ly ls 在逻辑
  • ovn-architecture

    参考 文章目录 1 Name2 Description2 1 Information Flow in OVN OVN中的信息流向 2 2 Chassis Setup2 3 Logical Networks2 4 Life Cycle of
  • OVN入门

    参考链接 如何借助 OVN 来提高 OVS 在云计算环境中的性能 OVN简介 Open vSwitch Documentation OVSDB介绍及在OpenDaylight中的调用 OpenDaylight即将迈入 七年之痒 xff1f
  • openstack/ovn环境,虚拟机连接外网设置

    当使用OVN来做为neutron的后端 xff0c 来实现SDN方案时 xff0c 我们也会需要虚拟机连接外网 xff0c 本文记录操作方法 xff1a 环境 xff1a pike版本 xff0c 创建好net1 xff0c 子网subne
  • ovn 架构介绍

    ovn是什么就不多说了 xff0c 网上有很多介绍的文章 这里主要是学习下ovn的架构 xff0c 并通过实践认识一下ovn ovn代码最初是在ovs源码下 xff0c 但是从版本v2 13 0开始 xff0c ovn被移除ovs xff0
  • ovn-controller源码分析

    ovn controller是运行在chassis hypervisor上的后台进程 xff0c 向上通过OVSDB协议连接到OVN sourthbound数据库 xff0c 向下通过OVSDB协议连接到ovs数据库 xff0c 并通过op
  • ovn隧道类型

    本文简单介绍下ovn支持的隧道类型 xff0c 具体可参考ovn architecture的Tunnel Encapsulations部分 报文在跨节点转发时 xff0c 会被封装在隧道内 xff0c 同时需要携带足够的信息 xff0c 到
  • OpenvSwitch 的 Open Virtual Network(OVN)项目

    几天前 xff08 1 月 13 日 xff09 xff0c OpenvSwitch 团队正式宣布了 OVN xff08 Open Virtual Network xff09 项目 xff0c 参考 Open Virtual Network
  • OVN 简介

    文章目录 OVN 介绍OVN的架构OVN 应用OVN 信息流配置数据状态信息 Chassis 设置逻辑网络 OVN 介绍 Open vSwitch xff08 OVS xff09 是一款开源的 虚拟交换机 xff0c 控制协议方面它不但支持
  • OVN 流表基础 -- 基于 kubeOVN (一)

    文章目录 Kubectl ko 工具分析Nbctl SbctlTrace Ovn 流表MatchActionRegisterTable 介绍Logical Switch DatapathsLogical Router Datapaths K
  • OVN架构原理

    ovn architecture 本文最初整理在我的github上SDN Learning notes 本文翻译自ovs官方手册 xff0c 有删减 OVN架构 OVN xff08 即Open Virtual Network xff09 是
  • OVS和OVN 2.8新功能

    OVS和OVN 2 8新功能 本文最初整理在我的github上SDN Learning notes 本文翻译自ovs官方文档 本文档主要是关于2017年8月底发布的Open vSwitch 2 8中添加的内容 xff0c 重点介绍OVN中的
  • OVN实验----L3互通

    概述 在L2互通基础上 xff0c 完成跨网段互访 物理拓扑 如上一个实验OVN实验 L2互通 逻辑拓扑 按照上个实验OVN实验 L2互通 的操作方式 xff0c 再配置一组容器blue xff0c 网段192 168 2 0 24 配置完
  • Testing ovn manually based on LXD (by quqi99)

    作者 张华 发表于 2022 05 27 版权声明 可以任意转载 转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 准备两个LXD容器 lxc list NAME STATE IPV4 IPV6 TYPE SNAPSHOTS

随机推荐