Ubuntu 20.04 上学习Open vSwitch :VxLAN

news2024/11/25 2:45:53

参考
OpenvSwitch完全使用手册
云计算底层技术-使用openvswitch
Open vSwitch 概述;OVS支持的功能;ovs的模块介绍(ovs-vswitchd、ovsdb-server等等

学习环境

学习 OpenStack

2 个 Hyper-V 虚拟机

  1. Ubuntu 20.04
    203.0.113.101 /24 ( 网关:203.0.113.1 )

  2. Ubuntu 20.04
    203.0.113.103 /24 ( 网关:203.0.113.1 )

连接示意图
在这里插入图片描述

安装 openvswitch-switch

  1. 先看 OpenStacj 文档
    OVN Manual install & Configuration

摘录 Ubuntu 相关部分:

Ubuntu/Debian includes ovn-central, ovn-host, ovn-docker, and ovn-common packages that pull in the appropriate Open vSwitch dependencies as needed.

  1. 再看 Open vSwaitch 文档

Distributions packaging Open vSwitch

摘录 Ubuntu 相关部分:
Debian and Ubuntu has openvswitch-switch and openvswitch-common packages that includes the core userspace components of the switch

  1. apt 安装
    apt install openvswitch-switch

    apt install python3-pip

    pip3 install networking-ovn==4.0.4

    apt install ovn-central ovn-common ovn-host

    查询确认一下:
    dpkg -l |grep openvswitch

     	ii  openvswitch-common                    2.13.8-0ubuntu1                       amd64        Open vSwitch common components
     	ii  openvswitch-switch                    2.13.8-0ubuntu1                       amd64        Open vSwitch switch implementations
     	ii  python3-openvswitch                   2.13.8-0ubuntu1                       all          Python 3 bindings for Open vSwitch
    

    pip3 list |grep ovn

     networking-ovn         4.0.4   
    

如果需要使用 ifconfig 和 route 命令,先安装 apt install net-tools
如果很熟悉 ip 指令,可以不必安装

建立 Provider networks

一个网桥(bridge)就是一个交换机

2 个虚拟机各建立一个 bridge,就相当于各自接入一个交换机
如果这 2 个交换机被分配到同一个网段,就可以直接互相访问彼此
将这个 bridge 上一个端口 (port )连接到物理网卡 (例如: eth1),他就可以通过这个物理网卡和外部网络互相访问 (即:连接到公网)

在 OpenStack 里面,相当于给所有节点提供一个公网 (Provider networks)

在 203.0.113.101 上

ovs-vsctl del-br br1
ovs-vsctl add-br br1

ovs-vsctl add-port br1 eth1
ifconfig eth1 0 up
ifconfig br1 203.0.113.101 up

在 203.0.113.103 上

ovs-vsctl del-br br1
ovs-vsctl add-br br1

ovs-vsctl add-port br1 eth1
ifconfig eth1 0 up
ifconfig br1 203.0.113.103 up

测试连通性

在 203.0.113.101 上 ping 203.0.113.103
在 203.0.113.103 上 ping 203.0.113.101

同网段 Self-service networks

2 个虚拟机各建立一个bridge,就相当于各自接入一个交换机
如果这 2 个交换机被分配到不同网段,就无法直接互相访问彼此
在 OpenStack 里面,相当于给所有节点提供一个私有网络 (Self-service networks)

必须通过某些技术配置后才可以访问:这里是 VxLAN 隧道

  1. 在 203.0.113.101 上创建 br0

     ovs-vsctl del-br br0
     
     ovs-vsctl add-br br0
     
     ifconfig br0 1.2.3.101/24 up
     
     ovs-vsctl add-port br0 vx1 -- set interface vx1 type=vxlan options:remote_ip=203.0.113.101
    
  2. 检查一下 br0
    root@ubuntu2004-101:/home/dhbm# ovs-vsctl show

     57af7789-d775-440a-a204-e663b3c75b3e
         Bridge br0
             Port vx1
                 Interface vx1
                     type: vxlan
                     options: {remote_ip="203.0.113.101"}
             Port br0
                 Interface br0
                     type: internal
         Bridge br1
             Port eth1
                 Interface eth1
             Port br1
                 Interface br1
                     type: internal
         Bridge br-int
             fail_mode: secure
             Port br-int
                 Interface br-int
                     type: internal
         ovs_version: "2.13.8"
    
  3. 检查路由
    ip route list

     确认存在: default via 203.0.113.1 dev br1
    
  4. 在 203.0.113.103 上上创建 br0

     ovs-vsctl del-br br0
     
     ovs-vsctl add-br br0
     
     ifconfig br0 1.2.3.103/24 up
     
     ovs-vsctl add-port br0 vx1 -- set interface vx1 type=vxlan options:remote_ip=203.0.113.103
    
  5. 检查一下 br0
    root@ubuntu2004-103:/home/dhbm# ovs-vsctl show

     a762a8e4-e153-4895-b87a-c7f7bc3ce3c3
         Bridge br0
             Port vx1
                 Interface vx1
                     type: vxlan
                     options: {remote_ip="203.0.113.103"}
             Port br0
                 Interface br0
                     type: internal
         Bridge br1
             Port br1
                 Interface br1
                     type: internal
             Port eth1
                 Interface eth1
         Bridge br-int
             fail_mode: secure
             Port br-int
                 Interface br-int
                     type: internal
         ovs_version: "2.13.8"
    
  6. 检查路由
    ip route list

     确认存在: default via 203.0.113.1 dev br1
    
  7. 连通性测试

    在 203.0.113.101 上 (Self-service networks : 1.2.3.101)
    ping 1.2.3.103

    在 203.0.113.103 上 (Self-service networks : 1.2.3.103)
    ping 1.2.3.101

不同网段 Self-service networks

步骤 1.2 (在 203.0.113.101 上)可以跳过,直接沿用上一部分的配置

  1. 在 203.0.113.101 上创建 br0

     ovs-vsctl del-br br0
     ovs-vsctl add-br br0
     ifconfig br0 1.2.3.101/24 up
     ovs-vsctl add-port br0 vx1 -- set interface vx1 type=vxlan options:remote_ip=203.0.113.101
    
  2. 检查一下 br0
    ovs-vsctl show

     57af7789-d775-440a-a204-e663b3c75b3e
         Bridge br0
             Port vx1
                 Interface vx1
                     type: vxlan
                     options: {remote_ip="203.0.113.101"}
             Port br0
                 Interface br0
                     type: internal
         Bridge br1
             Port eth1
                 Interface eth1
             Port br1
                 Interface br1
                     type: internal
         Bridge br-int
             fail_mode: secure
             Port br-int
                 Interface br-int
                     type: internal
         ovs_version: "2.13.8"
    
  3. 在 203.0.113.103 上 上创建 br0

     ovs-vsctl del-br br0
     ovs-vsctl add-br br0
     ifconfig br0 5.6.7.103/24 up
     ovs-vsctl add-port br0 vx1 -- set interface vx1 type=vxlan options:remote_ip=203.0.113.103
    
  4. 检查一下 br0
    ovs-vsctl show

     a762a8e4-e153-4895-b87a-c7f7bc3ce3c3
         Bridge br0
             Port vx1
                 Interface vx1
                     type: vxlan
                     options: {remote_ip="203.0.113.103"}
             Port br0
                 Interface br0
                     type: internal
         Bridge br1
             Port br1
                 Interface br1
                     type: internal
             Port eth1
                 Interface eth1
         Bridge br-int
             fail_mode: secure
             Port br-int
                 Interface br-int
                     type: internal
         ovs_version: "2.13.8"
    
  5. 连通性测试

    在 203.0.113.101 上 (Self-service networks : 1.2.3.101)
    ping 5.6.7.103
    不通
    在 203.0.113.103 上 (Self-service networks : 5.6.7.103)
    ping 1.2.3.101
    不通

  6. 在 203.0.113.101 上 增加路由

     route add -net 5.6.7.0 netmask 255.255.255.0 gw 1.2.3.101 dev br0
    
  7. 检查路由
    route -n

     Kernel IP routing table
     Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
     0.0.0.0         203.0.113.1     0.0.0.0         UG    0      0        0 br1
     0.0.0.0         192.168.0.81    0.0.0.0         UG    0      0        0 eth0
     1.2.3.0         0.0.0.0         255.255.255.0   U     0      0        0 br0
     5.6.7.0         1.2.3.101       255.255.255.0   UG    0      0        0 br0
     5.6.7.0         1.2.3.1         255.255.255.0   UG    0      0        0 br0
     192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
     203.0.113.0     0.0.0.0         255.255.255.0   U     0      0        0 br1
    
  8. 在 203.0.113.103 上创建 br0

    route add -net 1.2.3.0 netmask 255.255.255.0 gw 5.6.7.103 dev br0

  9. 检查路由
    route -n

     Kernel IP routing table
     Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
     0.0.0.0         203.0.113.1     0.0.0.0         UG    0      0        0 br1
     0.0.0.0         192.168.0.81    0.0.0.0         UG    0      0        0 eth0
     1.2.3.0         5.6.7.103       255.255.255.0   UG    0      0        0 br0
     1.2.3.0         5.6.7.1         255.255.255.0   UG    0      0        0 br0
     5.6.7.0         0.0.0.0         255.255.255.0   U     0      0        0 br0
     192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
     203.0.113.0     0.0.0.0         255.255.255.0   U     0      0        0 br1
    
  10. 再次连通性测试

    在 203.0.113.101 上 (Self-service networks : 1.2.3.101)
    ping 5.6.7.103

    OK

    在 203.0.113.103 上 (Self-service networks : 5.6.7.103)
    ping 1.2.3.101
    OK

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/47165.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Git——入门介绍

目录1.Git概述1.1.版本控制1.2.版本控制工具1.2.1集中式版本控制工具1.2.2分布式版本控制工具1.3.Git 工作机制1.4.Git 和代码托管中心2.Git下载安装2.1.Git下载2.2.Git安装3.Git常用命令3.1.设置用户签名3.2.初始化本地库3.3.查看本地库状态3.4.添加暂存区3.5.提交本地库3.6.修…

6、python的高级特性(生成式、生成器、闭包、装饰器)

文章目录生成式列表生成式字典生成式集合生成式生成器生成器的实现方式将生成式改写成生成器。将[ ] 改成 ( )使用yield关键字闭包装饰器生成式 列表生成式 在“先有一个空列表,然后通过循环依次将元素添加到列表中”的场景,可以使用列表生成式。 列表…

核心解读 - 2022版智慧城市数字孪生标准化白皮书

核心解读 - 2022版智慧城市数字孪生标准化白皮书前言:城市数字孪生基本概念一、城市数字孪生概述1、城市数字孪生内涵及概念模型2、城市数字孪生典型特征3、城市数字孪生相关方4、城市数字孪生技术参考架构5、城市数字孪生关键技术二、智慧城市数字孪生发展现状1、政…

JMeter下载及安装配置教程

参考:入门部署教程 – Jmeter中文网 本文是在win10环境下安装使用jmeter,jmeter可以运行在多平台上Windows和Linux。 环境准备: java 8 jmeter 5.1.1 jmeter环境 jmeter环境依赖JAVA环境,需安装JDK1.8环境,JDK下载地…

基于若依springboot二次开发WMS带移动端管理系统vue源码

系统是前后端分离的架构,前端使用Vue2,后端使用SpringBoot2。搭建部署的方式也是挺简单的,还带有uniapp开发的多端移动端扫码入库功能 技术架构 技术框架:SpringBoot2.0.0 Mybatis1.3.2 Shiro swagger-ui jpa lombok Vue2 …

轻薄笔记本能不能带起来高刷的显示器??

先说结论,新款集显也可以,用TYPC或者DP线连,使用时关闭主屏,只显示外屏。 这个问题,已经困扰了很久~~~ 软件上,windows以主屏作为主刷新率,除非笔记本自身是高刷屏,否则请只使用外…

单应性矩阵在标定中的应用

1.单应性矩阵是什么? 言简意赅定义:定义在两个不同视角中对同一平面范围内的特征点的射影变换(projective transformation)即: x1 H*x2 //x1、x2为匹配点 上图中x,x‘为一对匹配点,通过单应矩…

Pytest自动化框架运行全局配置文件pytest.ini

前言 还记得在之前的篇章中有讲到Pytest是目前主要流行的自动化框架之一,他有基础的脚本编码规则以及两种运行方式。 pytest的基础编码规则是可以进行修改,这就是今日文章重点。 看到这大家心中是否提出了两个问题:pytest的基础编码规则在…

Array_JavaScript

Array 学习路线:JavaScript基础语法(输出语句)->JavaScript基础语法(变量)->JavaScript基础语法(数据类型)->JavaScript基础语法(运算符)->JavaScript基础语…

python数据容器——列表

目录 一.数据容器 二.数据容器——列表 基本语法 注意 三.列表的下标(索引) 嵌套列表的下标(索引) 四.列表的常用操作(方法) 1.查询元素下标 2.插入元素 3.删除元素 4.统计元素 说明 一.数据容器 1&a…

使用react-sizeme解决react-grid-layout中侧栏(抽屉)展开或隐藏时不会自适应容器大小的问题

文章目录使用react-sizeme解决react-grid-layout中侧栏(抽屉)展开或隐藏时不会自适应容器大小的问题前提概要问题代码解决代码参考使用react-sizeme解决react-grid-layout中侧栏(抽屉)展开或隐藏时不会自适应容器大小的问题 前提概要 在上一篇博文中,我们讲到了使…

postgres源码解析38 表创建执行全流程梳理--2

本小节主要讲解查询执行模块,有机地调用存储、索引、事务、并发等模块,按照执行计划中的计划节点(操作执行接口)完成数据的读取或者修改。知识回顾:postgres源码解析37 表创建执行全流程梳理–1 关键数据结构 总图&a…

八、【React-Router5】路由组件传参

文章目录1、实现效果2、向路由组件传递参数总览3、修改上一节代码3.1、项目结构变更如下3.2、CODE(params传参)3.2.1、Messages.jsx3.2.2、Detail.jsx3.2.3、Result3.3、CODE(search传参)3.3.1、Messages.jsx3.3.2、Detail.jsx3.3…

【强化学习论文】小样本策略泛化的提示决策转换器

文献题目:Prompting Decision Transformer for Few-Shot Policy Generalization 摘要 人类可以利用先前的经验并从少量演示中学习新任务。与旨在通过更好的算法设计实现快速适应的离线元强化学习相比,我们研究了架构归纳偏差对少样本学习能力的影响。我…

RationalDMIS2022车削件(轴类)测量:回转体检测

1.坐标系知识 在三坐标测量机的使用中,坐标系的建立是最为关键的一步,是工件测量的基本依据。设备在组装本身中有着XYZ三个互相垂直的坐标轴,因此坐标系的建立便是通过以工件上的特征作为依据建立XYZ三个互相垂直的坐标轴与设备的坐标轴进行对应,从而使程序得以运行。 物…

虚拟机安装

虚拟机安装 能看到这里说明你的电脑中已经安装的有虚拟机了,如果没有虚拟机可以先下载安装一些虚拟机。 有了虚拟机后首先要准备的就是镜像,我用的是CentOS-7。如果没有的也可以百度或者去阿里云下载即可。 选择下载以ISO结尾的文件,可选类型…

SLAM学习笔记(二)

5.相机与图像 相机将三维世界中的坐标点(单位米)映射到二维图像平面(单位为像素)的过程中能够用一个几何模型进行描述。 单目相机(Mono)的成像过程: 1、世界坐标系下有个固定的点P,世界坐标为 2、由于相…

关于quartus 13.1出现的问题的一些总结

1,如果IP核的版本与当前的quartus ii版本不一致的情况,有时候虽然能编译成功,但是无法修改原有工程的IP核参数设置。 如: 之前我下载的工程用到的NCO IP核是12.1 version的,但是我用到的quartus 版本是13.0和13.1&am…

led灯什么牌子的质量好?2022双十二家用护眼台灯推荐

台灯作为一种晚上或者其他黑暗条件下的照明灯具,对于经常熬夜的人群来说可以说是必备工具了,无论是看书、写字,还是工作、学习,都非常实用,它不同于平常的家用的室内照明顶灯,光线不会那么刺眼,…

uni-app入门:小程序UI组件Vant Weapp

1.vant介绍 2.安装步骤 2.1 通过 npm 安装 2.2 修改 app.json 2.3 修改 project.config.json 2.4 构建 npm 包 3.使用说明 1.vant介绍Vant Weapp 是一个轻量、可靠的移动端组件库,于 2017 年开源,是由有赞前端团队开…