VXLAN 主机VTEP(OVN)

news2024/11/15 13:53:46

EVE环境模拟搭建一个基于主机VTEP的VXLAN数据中心网络。
实验里vtep是在linux主机上,同时linux主机还得有路由功能使VTEP的端点IP可达,所以两台linux服务器需要安装FRR。
数据转发平面使用VXLAN封装;在控制平面我打算选择使用EVPN和OVN两种不同方式实现。
这次实验控制平面使用了OVN,控制平面使用EVPN的实验可以参见链接:VXLAN 主机VTEP(EVPN)。

拓扑图

在这里插入图片描述
Spine、Leaf、服务器之间配置OSPF,完成Underlay路由可达;

Linux5 OVN Central;
Linux6和Linux7作为Controller,同时使用namespace模拟租户虚机。

本来我是打算用Lo接口设置为vtep的端点IP,这样服务器双上联任意断掉一条vxlan隧道都不受影响,但是不知道哪的问题设置总是不生效。只能“曲线救国”,将服务器两个接口做了桥接并在网桥上配置了IP,这样也可以达到双上联冗余的效果。

安装frr

服务器与leaf之间配置OSPF构建Underlay网络,所以三台服务器都需要按照FRR。

curl -O https://rpm.frrouting.org/repo/frr-7-repo-1-0.el7.noarch.rpm
yum install frr-7-repo-1-0.el7.noarch.rpm -y
yum install frr frr-pythontools -y

sed -i “s/=no/=yes/g” /etc/frr/daemons
cat /etc/frr/daemons,路由协议功能全部打开
在这里插入图片描述

systemctl enable frr && systemctl start frr && systemctl status frr
linux 主机上都安装好frr后就可以配置路由协议了。

配置Underlay路由

交换机的Underlay路由配置大同小异,只例举一下leaf3即可。
Leaf3
interface Ethernet1
no switchport
ip address 172.16.0.3/31
!
interface Ethernet2
no switchport
ip address 172.16.6.3/24
!
interface Loopback0
ip address 10.0.0.3/32
!
ip routing
!
router ospf 1
network 10.0.0.3/32 area 0.0.0.0
network 172.16.0.2/31 area 0.0.0.0
network 172.16.6.0/24 area 0.0.0.0
max-lsa 12000

Linux5
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
ip link set eth0 promisc on #这种组网方式接口需要打开混杂模式
ip link set eth1 promisc on
ip add add 172.16.5.2/24 dev br0 # 服务IP

Linux6 同样方式配置Linux7

brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
ip link set eth0 promisc on
ip link set eth1 promisc on
ip add add 172.16.6.2/24 dev br0 #vtep 源IP

vtysh #进入frr 配置ospf
router ospf
network 172.16.6.0/24 area 0

hv6# show ip ospf neighbor #Linux6、Leaf3、Leaf6的OSPF 邻居FULL。
Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL
10.0.0.3 1 Full/DROther 31.459s 172.16.6.3 br0:172.16.6.2 0 0 0
10.0.0.66 1 Full/DR 38.699s 172.16.6.6 br0:172.16.6.2 0 0 0

Underlay路由配置完成后,Linux6到Linux7(172.16.7.2),到Linux5(172.16.5.1)都是两条等价路由,可以做到冗余+负载。Linux5、7同样

[root@hv6 ~]# ip route
172.16.5.0/24 proto 188 metric 20
nexthop via 172.16.6.3 dev br0 weight 1
nexthop via 172.16.6.6 dev br0 weight 1
172.16.7.0/24 proto 188 metric 20
nexthop via 172.16.6.3 dev br0 weight 1
nexthop via 172.16.6.6 dev br0 weight 1

配置OVN

详细OVN组件安装和配置可以参见链接:OVN配置
Central
Linux5:
ovn-nbctl set-connection ptcp:6641:172.16.5.1 #br0的IP
ovn-sbctl set-connection ptcp:6642:172.16.5.1 #br0的IP

ovn-nbctl ls-add ls1
ovn-nbctl lsp-add ls1 ls1-node1-ns1
ovn-nbctl lsp-set-addresses ls1-node1-ns1 00:00:00:00:00:01
ovn-nbctl lsp-set-port-security ls1-node1-ns1 00:00:00:00:00:01
ovn-nbctl lsp-add ls1 ls1-node2-ns1
ovn-nbctl lsp-set-addresses ls1-node2-ns1 00:00:00:00:00:02
ovn-nbctl lsp-set-port-security ls1-node2-ns1 00:00:00:00:00:02

Controller
Linux6:
ovs-vsctl set open . external-ids:ovn-remote=tcp:172.16.5.1:6642
ovs-vsctl set open . external-ids:ovn-encap-type=vxlan
ovs-vsctl set open . external-ids:ovn-encap-ip=172.16.6.2 #br0 IP 封装外层包

Linux7:
ovs-vsctl set open . external-ids:ovn-remote=tcp:172.16.5.1:6642
ovs-vsctl set open . external-ids:ovn-encap-type=vxlan
ovs-vsctl set open . external-ids:ovn-encap-ip=172.16.7.2 #br0 IP 封装外层包

在服务器上配置ns模拟租户虚机

Linux6:
ip netns add ns1
ip link add veth11 type veth peer name veth12
ip link set veth12 netns ns1
ip link set veth11 up
ip netns exec ns1 ip link set veth12 address 00:00:00:00:00:01
ip netns exec ns1 ip link set veth12 up
ovs-vsctl add-port br-int veth11
ip netns exec ns1 ip addr add 192.168.1.10/24 dev veth12
ovs-vsctl set interface veth11 external_ids:iface-id=ls1-node1-ns1

Linux7
ip netns add ns1
ip link add veth11 type veth peer name veth12
ip link set veth12 netns ns1
ip link set veth11 up
ip netns exec ns1 ip link set veth12 address 00:00:00:00:00:02
ip netns exec ns1 ip link set veth12 up
ovs-vsctl add-port br-int veth11
ip netns exec ns1 ip addr add 192.168.1.20/24 dev veth12
ovs-vsctl set interface veth11 external_ids:iface-id=ls1-node2-ns1

验证

Central 北向、南向数据库
[root@central ~]# ovn-nbctl show
switch 138fdb3b-3c6b-4727-afd5-7072810a6042 (ls1)
port ls1-node2-ns1
addresses: [“00:00:00:00:00:02”]
port ls1-node1-ns1
addresses: [“00:00:00:00:00:01”]

[root@central ~]# ovn-sbctl show
Chassis “4aba04df-085f-440c-aebb-b31b76e39325”
hostname: “hv7”
Encap vxlan
ip: “172.16.7.2”
options: {csum=“true”}
Port_Binding “ls1-node2-ns1”
Chassis “0271f35d-ea73-497a-9389-3a7415c434da”
hostname: “hv6”
Encap vxlan
ip: “172.16.6.2”
options: {csum=“true”}
Port_Binding “ls1-node1-ns1”

**Controller **
[root@hv6 ~]# ovs-vsctl show
62a36857-32d3-47ce-98b6-740d8f395090
Bridge br-int
fail_mode: secure
Port br-int
Interface br-int
type: internal
Port “ovn-4aba04-0”
Interface “ovn-4aba04-0”
type: vxlan
options: {csum=“true”, key=flow, remote_ip=“172.16.7.2”}
Port “veth11”
Interface “veth11”
ovs_version: “2.7.2”

租户间可以ping通
[root@hv6 ~]# ip netns exec ns1 ping 192.168.1.20
PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.
64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=35.8 ms
64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=30.7 ms
64 bytes from 192.168.1.20: icmp_seq=3 ttl=64 time=24.9 ms

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

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

相关文章

Golang每日一练(leetDay0101) 最长递增子序列I\II\个数

目录 300. 最长递增子序列 Longest Increasing Subsequence 🌟🌟 2407. 最长递增子序列 II Longest Increasing Subsequence ii 🌟🌟🌟 673. 最长递增子序列的个数 Number of Longest Increasing Subsequence &a…

YOLOv5/v7 添加注意力机制,30多种模块分析⑥,S2-MLPv2模块,NAM模块

目录 一、注意力机制介绍1、什么是注意力机制?2、注意力机制的分类3、注意力机制的核心 二、S2-MLPv2模块1、 S2-MLPv2模块的原理2、实验结果3、应用示例 三、NAM模块1、NAM 的原理2、实验结果3、应用示例 大家好,我是哪吒。 🏆本文收录于&a…

【Duilib】资源打包入EXE

环境 VS版本:VS2013 概述 资源打包成ZIP,ZIP文件放置EXE内部。 步骤 1、按上一篇建好工程。 2、RC文件添加ZIP资源。 这一步比较复杂,工程 添加资源,弹窗如下右侧对话框后,按①②③④步骤,找到theme.z…

Springboot项目使用原生Websocket

目录 1.启用Websocket功能2.封装操作websocket session的工具3.保存websocket session的接口4.保存websocket session的类5.定义websocket 端点6.创建定时任务 ping websocket 客户端 1.启用Websocket功能 package com.xxx.robot.config;import org.springframework.context.a…

机器学习实践(1.2)XGBoost回归任务

前言 XGBoost属于Boosting集成学习模型,由华盛顿大学陈天齐博士提出,因在机器学习挑战赛中大放异彩而被业界所熟知。相比越来越流行的深度神经网络,XGBoost能更好的处理表格数据,并具有更强的可解释性,还具有易于调参…

Axure教程—树

本文将教大家如何用AXURE中的动态面板制作树 一、效果 预览地址:https://1rmtjd.axshare.com 二、功能 1、点击“”,展开子节点 2、点击“-”子节点折叠 三、制作 1、父节点制作 拖入一个动态面板,进入,如图: 拖入一…

【LeetCode】HOT 100(18)

题单介绍: 精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍&#…

【玩转Docker小鲸鱼叭】Docker容器常用命令大全

在 Docker 核心概念理解 一文中,我们知道 Docker容器 其实就是一个轻量级的沙盒,应用运行在不同的容器中从而实现隔离效果。容器的创建和运行是以镜像为基础的,容器可以被创建、销毁、启动和停止等。本文将介绍下容器的这些常用操作命令。 1、…

max^2 - min^2

2001^2- 2000^2 ???? max^2 - min^2min * (max - min) min * (max - min) (max - min)* (max - min) min * (max - min) * 2 (max - min)* (max - min) (max min)(max - min)

管理类联考——逻辑——技巧篇——形式逻辑——秒杀思路

第一章:说明 形式逻辑出现频次 8-10 道 形式逻辑细分思路 直言命题三段论与文氏图AEIO 与模态命题形式逻辑复合命题固定秒杀思路 说明1: AEIO 全称肯定命题:所有 S 都是 P,记作 SAP。 简称为“A” 全称否定命题:所…

TCL、海信、小米密集推新,Mini LED电视熬出头了

作者 | 辰纹 来源 | 洞见新研社 OLED和Mini LED之间的对决来到了赛点。 进入2023年,一线电视厂商发布的新品中,Mini LED成为主流。 3月2日,索尼全球发布了其2023年BRAVIA XR 电视新品阵容。其中,索尼Mini LED电视X95L采用Mini …

MFC学习之修改设置控件字体显示和颜色参数

前言 最近一直配合研发部门写一些调试类的小软件,记得之前电脑显示器和显卡配置都不高,显示分辨率比较低,软件界面上的文字还能看到清楚(不显小)。 现在公司新配置的电脑都比较好了,界面字体,尤…

【高性能计算】监督学习之支持向量机分类实验

【高性能计算】监督学习之支持向量机分类实验 实验目的实验内容实验步骤1、支持向量机算法1.1 支持向量机算法的基本思想1.2 支持向量机算法的分类过程1.3 支持向量机算法的模型构建过程 2、使用Python语言编写支持向量机的源程序代码并分析其分类原理2.1 支持向量机SVM模型代码…

四、卷积神经网络整体基础结构

一、计算机发展应用 神经网络主要用于特征提取 卷积神经网络主要应用在图像领域,解决传统神经网络出现的过拟合、权重太多等风险 1,CV领域的发展 Computer vision计算机视觉的发展在2012年出现的AlexNet开始之后得到了挽救 之前都是一些传统的机器学习…

SQL高级语句2

SQL高级语句2 SQL高级语句17.---- 连接查询 ----18.自我连接,算排名:19.---- CREATE VIEW ----视图,可以被当作是虚拟表或存储查询。20.---- UNION ----联集,将两个SQL语句的结果合并起来,两个SQL语句所产生的字段需要…

重新定义DevOps:容器化的变革力量

在快速发展的数字时代,DevOps 已成为重塑软件开发格局的重要范例。DevOps 是一个源自“开发”和“运营”的术语,它将这两个历史上孤立的功能集成到一个统一的方法中,专注于缩短软件开发生命周期。因此,DevOps 实践促进了更快、更可…

【产品应用】一体化电机在拉伸吹瓶机的应用

随着塑料瓶的广泛应用,拉伸吹瓶机作为生产塑料瓶的关键设备之一,受到了越来越多企业的关注。而在拉伸吹瓶机中,一体化电机的应用正逐渐成为行业的新趋势。 01.设备简介 吹瓶机是一种用于制造塑料瓶的机械设备。它通过将预先加热的塑料颗粒或…

当 MQTT 遇上 ChatGPT:探索可自然交互的物联网智能应用

前言 随着物联网技术的迅猛发展,人与设备、设备与设备之间的互动已变得不再困难,而如何更加自然、高效、智能地实现交互则成为物联网领域新的挑战。 近期,由 OpenAI 发布的 ChatGPT、GPT-3.5 和 GPT-4 等先进大语言模型(LLM&…

python 基础知识:使用jieba库对文本进行分词

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 一、jieba库是什么? Python的jieba库是一个中文分词工具,它可以将一段中文文本分割成一个一个的词语,方便后续的自然语言处理任务,如文本分类、情感分析等。 jieba库使用…

Riddztecia 作品集 |Beast Wear 出品

Beast & Wear:一个以彩色部落和可训练野兽庆祝多样性的收藏品。通过 NFT 野兽和装备提升你的 Riddzee 人物化身,增强视觉效果,提升你在迷人的 Riddztecia 世界中的游戏体验。去游戏、去成长、去探索。 Riddztecia NFT 空投包括训练怪兽和…