openvswitch实践二 vxlan隧道互联互通

2023-10-22 13:50

本文主要是介绍openvswitch实践二 vxlan隧道互联互通,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.试验环境

 2.试验配置

2.1 host 172.16.0.100 配置

ovs-vsctl add-br br1

ovs-vsctl add-br br2

ovs-vsctl add-port br1 tap1 -- set Interface tap1 type=internal

ovs-vsctl add-port br2 tap2 -- set Interface tap2 type=internal

ip netns add ns1

ip netns add ns2

ip link set tap1 netns ns1

ip link set tap2 netns ns2

ip netns exec ns1 ip addr add 1.1.1.1/24 dev tap1

ip netns exec ns1 ip link set tap1 up

ip netns exec ns1 ip link set lo up

ip netns exec ns2 ip addr add 1.1.1.2/24 dev tap2

ip netns exec ns2 ip link set tap2 up

ip netns exec ns2 ip link set lo up

ovs-vsctl add-port br1 patch-ovs-1 -- set Interface patch-ovs-1 type=patch options:peer=patch-ovs-2

ovs-vsctl add-port br2 patch-ovs-2 -- set Interface patch-ovs-2 type=patch options:peer=patch-ovs-1

2.2 host172.16.1.75 配置

ovs-vsctl add-br br1

ovs-vsctl add-br br2

ovs-vsctl add-port br1 tap1 -- set Interface tap1 type=internal

ovs-vsctl add-port br2 tap2 -- set Interface tap2 type=internal

ip netns add ns1

ip netns add ns2

ip link set tap1 netns ns1

ip link set tap2 netns ns2

ip netns exec ns1 ip addr add 1.1.1.3/24 dev tap1

ip netns exec ns1 ip link set tap1 up

ip netns exec ns1 ip link set lo up

ip netns exec ns2 ip addr add 1.1.1.4/24 dev tap2

ip netns exec ns2 ip link set tap2 up

ip netns exec ns2 ip link set lo up

ovs-vsctl add-port br1 patch-ovs-1 -- set Interface patch-ovs-1 type=patch options:peer=patch-ovs-2

ovs-vsctl add-port br2 patch-ovs-2 -- set Interface patch-ovs-2 type=patch options:peer=patch-ovs-1

2.3 vxlan通道配置

host 172.16.1.75

ovs-vsctl add-port br1 vx1 -- set interface vx1 type=vxlan options:remote_ip=172.16.0.100 options:key=100

host 172.16.0.100

ovs-vsctl add-port br1 vx1 -- set interface vx1 type=vxlan options:remote_ip=172.16.1.75 options:key=100

3.试验验证

3.1 ping验证

 3.2 抓包验证

4 vxlan tunnel 补充

# key=flow的话,表示该port的vni可以通过openflow的actions来进行设置
# 如: actions=set_field:100->tun_id
# 或: actions=set_tunnel:100
ovs-vsctl add-port ovs0 vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=10.10.10.1 options:key=flow  

指定flow流表进行转发

host 172.16.1.75

ovs-vsctl add-port br1 vx1 -- set interface vx1 type=vxlan options:remote_ip=172.16.0.100 options:key=flow

ovs-ofctl dump-ports-desc br1
OFPST_PORT_DESC reply (xid=0x2):
 1(tap1): addr:00:00:00:00:00:00
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
 2(patch-ovs-1): addr:62:91:1f:1e:59:08
     config:     0
     state:      0
     speed: 0 Mbps now, 0 Mbps max
 4(vx1): addr:46:29:c3:cc:f2:2b
     config:     0
     state:      0
     speed: 0 Mbps now, 0 Mbps max
 LOCAL(br1): addr:36:10:88:95:d2:ea
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max

ovs-ofctl add-flow br1 'cookie=0x79, table=0, in_port=1, priority=1 actions=set_tunnel:200,output:4'

host 172.16.0.100

ovs-vsctl add-port br1 vx1 -- set interface vx1 type=vxlan options:remote_ip=172.16.1.75 options:key=flow

ovs-ofctl add-flow br1 'cookie=0x79, table=0, in_port=1, priority=1 actions=set_tunnel:200,output:6'

这篇关于openvswitch实践二 vxlan隧道互联互通的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/261864

相关文章

jdk1.8的Jenkins安装配置实践

《jdk1.8的Jenkins安装配置实践》Jenkins是一款流行的开源持续集成工具,支持自动构建、测试和部署,通过Jenkins,开发团队可以实现代码提交后自动进行构建、测试,并将构建结果分发到测... 目录Jenkins介绍Jenkins环境搭建Jenkins安装配置Jenkins插件安装Git安装配

SpringBoot的全局异常拦截实践过程

《SpringBoot的全局异常拦截实践过程》SpringBoot中使用@ControllerAdvice和@ExceptionHandler实现全局异常拦截,@RestControllerAdvic... 目录@RestControllerAdvice@ResponseStatus(...)@Except

mysql_mcp_server部署及应用实践案例

《mysql_mcp_server部署及应用实践案例》文章介绍了在CentOS7.5环境下部署MySQL_mcp_server的步骤,包括服务安装、配置和启动,还提供了一个基于Dify工作流的应用案例... 目录mysql_mcp_server部署及应用案例1. 服务安装1.1. 下载源码1.2. 创建独立

SpringBoot简单整合ElasticSearch实践

《SpringBoot简单整合ElasticSearch实践》Elasticsearch支持结构化和非结构化数据检索,通过索引创建和倒排索引文档,提高搜索效率,它基于Lucene封装,分为索引库、类型... 目录一:ElasticSearch支持对结构化和非结构化的数据进行检索二:ES的核心概念Index:

Python数据验证神器Pydantic库的使用和实践中的避坑指南

《Python数据验证神器Pydantic库的使用和实践中的避坑指南》Pydantic是一个用于数据验证和设置的库,可以显著简化API接口开发,文章通过一个实际案例,展示了Pydantic如何在生产环... 目录1️⃣ 崩溃时刻:当你的API接口又双叒崩了!2️⃣ 神兵天降:3行代码解决验证难题3️⃣ 深度

C++ move 的作用详解及陷阱最佳实践

《C++move的作用详解及陷阱最佳实践》文章详细介绍了C++中的`std::move`函数的作用,包括为什么需要它、它的本质、典型使用场景、以及一些常见陷阱和最佳实践,感兴趣的朋友跟随小编一起看... 目录C++ move 的作用详解一、一句话总结二、为什么需要 move?C++98/03 的痛点⚡C++

MySQL存储过程实践(in、out、inout)

《MySQL存储过程实践(in、out、inout)》文章介绍了数据库中的存储过程,包括其定义、优缺点、性能调校与撰写,以及创建和调用方法,还详细说明了存储过程的参数类型,包括IN、OUT和INOUT... 目录简述存储过程存储过程的优缺点优点缺点存储过程的创建和调用mysql 存储过程中的关键语法案例存储

Java 的ArrayList集合底层实现与最佳实践

《Java的ArrayList集合底层实现与最佳实践》本文主要介绍了Java的ArrayList集合类的核心概念、底层实现、关键成员变量、初始化机制、容量演变、扩容机制、性能分析、核心方法源码解析、... 目录1. 核心概念与底层实现1.1 ArrayList 的本质1.1.1 底层数据结构JDK 1.7

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础