OpenvSwitch VXLAN 隧道实验

OpenvSwitch VXLAN 隧道实验

最近在了解 openstack 网络,下面基于ubuntu虚拟机安装OpenvSwitch,测试vxlan的基本配置。

节点信息:

主机名IP地址OS网卡
node1192.168.95.11Ubuntu 22.04ens33
node2192.168.95.12Ubuntu 22.04ens33

网卡信息:

root@node1:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:0f:26:b9 brd ff:ff:ff:ff:ff:ffaltname enp2s1inet 192.168.95.11/24 brd 192.168.95.255 scope global ens33valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe0f:26b9/64 scope link 

整体逻辑图如下:

在两个节点部署OpenvSwitch,通过vxlan隧道网络实现vm01和vm02的网络互通。
在这里插入图片描述

前置要求,每个节点安装OpenvSwitch

apt update -y
apt install -y openvswitch-switch

确认安装版本

root@node1:~# ovs-vsctl --version
ovs-vsctl (Open vSwitch) 2.17.9
DB Schema 8.3.0

节点1配置

创建虚拟机

创建网络地址空间ns0,模拟出VM虚拟机

ip netns add ns0

创建一对vethpair,两个接口分别为veth0veth1

ip link add veth0 type veth peer name veth1

veth0添加到ns0

ip link set veth0 netns ns0

veth0配置IP地址

ip netns exec ns0 ip addr add 10.1.1.1/24 dev veth0
ip netns exec ns0 ip link set veth0 up
ip netns exec ns0 ip a

建立vxlan隧道

创建vxlan网桥br-vxlan

ovs-vsctl add-br br-vxlan

veth1添加到br-vxlan网桥中

ovs-vsctl add-port br-vxlan veth1
ip link set veth1 up

br-vxlan网桥中创建本端vxlan端口vxlan1,端口类型为vxlan,配置远端IP为对端主机

ovs-vsctl add-port br-vxlan vxlan1 -- set interface vxlan1 type=vxlan options:remote_ip=192.168.95.12

查看openvswitch 网桥端口

root@node1:~# ovs-vsctl show
b3bb2f7f-6129-46d0-ab6c-806a9499e673Bridge br-vxlanPort br-vxlanInterface br-vxlantype: internalPort veth1Interface veth1Port vxlan1Interface vxlan1type: vxlanoptions: {remote_ip="192.168.95.12"}ovs_version: "2.17.9"
root@node1:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:0f:26:b9 brd ff:ff:ff:ff:ff:ffaltname enp2s1inet 192.168.95.11/24 brd 192.168.95.255 scope global ens33valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe0f:26b9/64 scope link valid_lft forever preferred_lft forever
3: veth1@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master ovs-system state UP group default qlen 1000link/ether 56:79:1f:8a:6d:46 brd ff:ff:ff:ff:ff:ff link-netns ns0inet6 fe80::5479:1fff:fe8a:6d46/64 scope link valid_lft forever preferred_lft forever
5: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 0e:b0:e1:3a:de:4c brd ff:ff:ff:ff:ff:ff
6: br-vxlan: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether be:43:d3:bd:9a:41 brd ff:ff:ff:ff:ff:ff
7: vxlan_sys_4789: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 65000 qdisc noqueue master ovs-system state UNKNOWN group default qlen 1000link/ether de:3a:29:91:e1:4f brd ff:ff:ff:ff:ff:ffinet6 fe80::cc1b:89ff:fe76:e7f/64 scope link valid_lft forever preferred_lft forever

节点2配置

创建虚拟机

创建网络地址空间ns0,模拟出VM虚拟机

ip netns add ns0

创建一对vethpair,两个接口分别为veth0veth1

ip link add veth0 type veth peer name veth1

veth0添加到ns0

ip link set veth0 netns ns0

veth0配置IP地址

ip netns exec ns0 ip addr add 10.1.1.2/24 dev veth0
ip netns exec ns0 ip link set veth0 up
ip netns exec ns0 ip a

建立vxlan隧道

创建vxlan网桥br-vxlan

ovs-vsctl add-br br-vxlan

veth1添加到br-vxlan网桥中

ovs-vsctl add-port br-vxlan veth1
ip link set veth1 up

br-vxlan网桥中创建本端vxlan端口vxlan1,端口类型为vxlan,配置远端IP为对端主机

ovs-vsctl add-port br-vxlan vxlan1 -- set interface vxlan1 type=vxlan options:remote_ip=192.168.95.11

查看openvswitch 网桥端口

root@node2:~# ovs-vsctl show
ca71335f-e4a9-4b07-9183-b4993a6864d4Bridge br-vxlanPort vxlan1Interface vxlan1type: vxlanoptions: {remote_ip="192.168.95.11"}Port br-vxlanInterface br-vxlantype: internalPort veth1Interface veth1ovs_version: "2.17.9"
root@node2:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:50:56:3a:b4:d8 brd ff:ff:ff:ff:ff:ffaltname enp2s1inet 192.168.95.12/24 brd 192.168.95.255 scope global ens33valid_lft forever preferred_lft foreverinet6 fe80::250:56ff:fe3a:b4d8/64 scope link valid_lft forever preferred_lft forever
3: veth1@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master ovs-system state UP group default qlen 1000link/ether 56:79:1f:8a:6d:46 brd ff:ff:ff:ff:ff:ff link-netns ns0inet6 fe80::5479:1fff:fe8a:6d46/64 scope link valid_lft forever preferred_lft forever
5: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 0e:b0:e1:3a:de:4c brd ff:ff:ff:ff:ff:ff
6: br-vxlan: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether b6:7c:80:cb:6e:45 brd ff:ff:ff:ff:ff:ff
7: vxlan_sys_4789: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 65000 qdisc noqueue master ovs-system state UNKNOWN group default qlen 1000link/ether de:3a:29:91:e1:4f brd ff:ff:ff:ff:ff:ffinet6 fe80::6c5c:7cff:fece:5a7/64 scope link valid_lft forever preferred_lft forever

验证连通性

节点1连接节点2 VM

root@node1:~# ip netns exec ns0 ping 10.1.1.2 -c 4
PING 10.1.1.2 (10.1.1.2) 56(84) bytes of data.
64 bytes from 10.1.1.2: icmp_seq=1 ttl=64 time=0.543 ms
64 bytes from 10.1.1.2: icmp_seq=2 ttl=64 time=0.737 ms
64 bytes from 10.1.1.2: icmp_seq=3 ttl=64 time=0.640 ms
64 bytes from 10.1.1.2: icmp_seq=4 ttl=64 time=2.20 ms--- 10.1.1.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3077ms
rtt min/avg/max/mdev = 0.543/1.031/2.204/0.680 ms

节点2连接节点1 VM

root@node2:~# ip netns exec ns0 ping 10.1.1.1 -c 4
PING 10.1.1.1 (10.1.1.1) 56(84) bytes of data.
64 bytes from 10.1.1.1: icmp_seq=1 ttl=64 time=1.21 ms
64 bytes from 10.1.1.1: icmp_seq=2 ttl=64 time=0.642 ms
64 bytes from 10.1.1.1: icmp_seq=3 ttl=64 time=0.557 ms
64 bytes from 10.1.1.1: icmp_seq=4 ttl=64 time=0.589 ms--- 10.1.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3027ms
rtt min/avg/max/mdev = 0.557/0.749/1.211/0.268 ms

参考:https://www.cnblogs.com/Bozh/p/4838304.html

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

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

相关文章

通过键盘对机械臂进行操作

1 #include<myhead.h>2 #include<linux/input.h>3 #define SER_PORT 88884 #define SER_IP "192.168.116.225"5 #define CLI_PORT 99996 #define CLI_IP "192.168.65.129"7 int main(int argc, const char *argv[])8 {9 //1、创建用于连接…

28.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-数据推测结果用提示框的形式显示

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果 内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;27.数据推测功能…

Pytorch NLP入门3:用嵌入表示单词

初次编辑时间&#xff1a;2024/3/17&#xff1b;最后编辑时间&#xff1a;2024/3/17 本栏目链接&#xff1a;https://blog.csdn.net/qq_33345365/category_12597850.html 本人的其他栏目&#xff1a; pytorch 基础的栏目链接&#xff1a;https://blog.csdn.net/qq_33345365/…

便利店小程序有哪些功能

​便利店小程序为附近的住户提供小程序在线购物的服务。用户只需要打开小程序&#xff0c;就可以购买需要的商品&#xff0c;可以选择自取或者配送。整个过程非常简单快速。下面具体介绍便利店小程序的功能。 1. **商品展示**&#xff1a;展示便利店的商品信息&#xff0c;包括…

快速幂算法详解

一、引言 快速幂算法是数学和计算机科学中用于大数幂运算的一种高效算法。它采用了二进制分治策略&#xff0c;将幂运算分解为更小的部分&#xff0c;从而显著降低运算的时间和空间复杂度。在处理大规模数幂运算、加密算法和某些数学问题时&#xff0c;快速幂算法显示出其卓越…

贪心算法题解

前言 大家好&#xff0c;我是jiantaoyab&#xff0c;这篇文章将给大家介绍贪心算法和贪心算法题目的练习和解析&#xff0c;贪心算法的本质就是每一个阶段都是局部最优&#xff0c;从而实现全局最优。我们在做题的同时&#xff0c;不仅要把题目做出来&#xff0c;还要有严格的证…

9 个顶级免费视频压缩软件精选

视频有多种格式、不同的大小和不同的压缩级别。但是&#xff0c;您可以使用最好的视频压缩器来&#xff1a; 减小文件大小提高压缩质量更好地服务您的观众 我们将列出九个领先的视频压缩软件精选&#xff0c;您今天可以免费使用它们来增强您的视频。 9 个顶级免费视频压缩器精…

PHP8编译安装

CentOS8编译安装PHP8 PHP&#xff0c;全称Hypertext Preprocessor&#xff08;超文本预处理器&#xff09;&#xff0c;是一种通用开源脚本语言。它特别适合于web开发&#xff0c;并能嵌入HTML中。现在主要用于PHP网站中实现动态网站功能&#xff0c;常规我们使用nginx、apache…

【黑马程序员】Python综合案例

文章目录 数据分析案例目的需求数据准备实践数据记录类 文件解析解析csv格式解析json文件 进行数据计算读取文件数据按日期累加数据 图表展示图标绘制最终效果展示 数据分析案例 目的 文件操作实践json库使用三方库pyecharts使用面向对象实践数据容器使用 需求 给定一个csv…

保存带 numpy.ndarray 的 dataframe

# 创建 DataFrame texts ["hi", "hello", "you"] embeddings [np.random.randn(10,) for i in range(3)] df pd.DataFrame({"text":texts, "embedding":embeddings})type(df.embedding.values[0]) # numpy.ndarray# 保存…

设计模式之外观模式(Facade Pattern)【结构性模式】

为什么用结构性模式&#xff1f; 结构性模式关注点“怎样组合对象/类&#xff1f;”所以我们关注下类的组合关系类结构型模式关心类的组合&#xff0c;由多个类可以组合成一个更大的&#xff08;继承&#xff09;对象结构型模式关心类与对象的组合&#xff0c;通过关联关系在一…

Hadoop大数据应用:HDFS 集群节点缩容

目录 一、实验 1.环境 2.HDFS 集群节点缩容 二、问题 1.数据迁移有哪些状态 2.数据迁移失败 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 主机架构软件版本IP备注hadoop NameNode &#xff08;已部署&#xff09; SecondaryNameNode &#xff08;已部署…

ChatGPT学术论文润色的方法与步骤教程

GPT学术论文润色方法 请查看视频详细润色步骤 把ChatGPT运用到论文写作翻译润色&#xff0c;绝对是仰首佩服&#xff0c;莫敢与争啊&#xff0c;分分钟碾压最顶级的传统翻译或润色模式。 因为&#xff0c;正正好是撞在ChatGPT最擅长的领域上了&#xff01; 正如我们所知&…

异常随笔xx1

关于过滤器和拦截器 看一下过滤器&#xff0c;过滤器我们可以分两步&#xff1a; 1.配置自定义过滤器 2.过滤器注册 这样它才会生效&#xff0c;拦截器也如此 先配置&#xff1a; RequiredArgsConstructor public class UserTransmitFilter implements Filter {private f…

裁员潮下,打工人的自我修养

法律规定的 裁员补偿&#xff1a; 1、平等协商解除的&#xff0c;底线是N1&#xff0c;上限能谈多少法律都支持 2、有客观原因解除的&#xff0c;是N1 3、强制违法辞退的&#xff0c;是2N Tips&#xff1a;基数是每月的全额税前工资&#xff0c;包括奖金绩效等&#xff0c…

vue框架渲染原理

Vue.js&#xff0c;作为当前最受欢迎的前端框架之一&#xff0c;以其轻量级和灵活性受到众多开发者的喜爱。Vue的核心理念在于采用数据驱动和组件化的方式来构建用户界面。为了更好地使用Vue及其丰富的生态系统&#xff0c;理解其背后的核心原理是非常重要的。本文将深入探讨Vu…

Java 测试Thread StackOverflowError

测试堆栈溢出 Testpublic void testStackOverflow() {try {foo1();} catch (Throwable throwable) {// 栈满时&#xff0c;打印递归深度System.out.println(countRecursion);throw throwable;}}public void foo1() {countRecursion;foo1();}JVM option Xmx50mXss20m 线程栈大小…

strstr的模拟实现

一&#xff1a;strstr函数的定义&#xff1a; strstr函数功能的解释&#xff1a; 在一个字符串里面寻找另一个字符串的首次出现位置&#xff0c;返回值为该位置。 strstr函数要点&#xff1a; 1&#xff0c;如果 str2 是 str1 的一部分&#xff0c;它返回一个指向 str1 中 …

2024.3.15

1.单向循环链表 代码&#xff1a; #include"loop.h" //创建单向循环链表 loop_p create_loop_list() {loop_p H (loop_p)malloc(sizeof(loop));if(HNULL){printf("空间申请失败\n");return NULL;}H->len0;H->nextH;return H; } //创建节点 loop_p…

【C语言】打印用*组成的X形图案

代码如下&#xff1a; #include<stdio.h> int main() { int n 0; int i 0; int j 0; while (scanf("%d", &n) ! EOF) for (i 0; i < n; i) { for (j 0; j < n; j) { if (…