ovs测试vlan

2023-05-16

ovs端口默认是trunk模式,且所有的VLAN tag都可以通过。

单个网桥实现vlan隔离的场景

实验拓扑如下:

在这里插入图片描述

1、首先创建一个网桥ovs-switch,在命名空间里创建两个接口p0和p1。分别分配地址为192.168.1.100/24和192.168.1.101/24

创建网桥并添加接口
ovs-vsctl add-br ovs-switch
ovs-vsctl add-port ovs-switch p0 – set Interface p0 ofport_request=100
ovs-vsctl set Interface p0 type=internal
创建命名空间ns0并添加接口p0
ip netns add ns0
ip link set p0 netns ns0
ip netns exec ns0 ip addr add 192.168.1.100/24 dev p0
ip netns exec ns0 ifconfig p0 promisc up
添加p1到网桥
ovs-vsctl add-port ovs-switch p1 – set Interface p1 ofport_request=100
ovs-vsctl set Interface p1 type=internal
创建命名空间ns1并添加接口p1
ip netns add ns1
ip link set p1 netns ns1
ip netns exec ns1 ip addr add 192.168.1.101/24 dev p1
ip netns exec ns1 ifconfig p1 promisc up

在这里插入图片描述

2、查看流表 并互ping

[root@openstack01 ~]# ovs-ofctl dump-flows ovs-switch
cookie=0x0,duration=850004.146s, table=0, n_packets=5420, n_bytes=450584,priority=0 actions=NORMAL

默认有一条优先级最低,动作为NORMAL的流表。会转为L2/L3进行处理。此时互ping可以ping通

3、分别给接口配置不同的vlan tag,再ping,发现无法ping通

[root@openstack01 ~]# ovs-vsctl set Port p0 tag=10
[root@openstack01 ~]# ovs-vsctl set Port p1 tag=20
[root@openstack01 ~]# ip netns exec ns1 ping 192.168.1.100
PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.

4、使用了两种方式可以ping通

第一种,直接下发两条流表,指定默认的入接口和出接口,当然也可以加上源IP、目的IP,协议等信息。

[root@openstack01 ~]# ovs-ofctl add-flow ovs-switch in_port=p1,action=output:p0
[root@openstack01 ~]# ovs-ofctl add-flow ovs-switch in_port=p0,action=output:p1
[root@openstack01 ~]# ip netns exec ns1 ping 192.168.1.100
PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.
64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=0.290 ms
64 bytes from 192.168.1.100: icmp_seq=2 ttl=64 time=0.060 ms
64 bytes from 192.168.1.100: icmp_seq=3 ttl=64 time=0.060 ms
64 bytes from 192.168.1.100: icmp_seq=4 ttl=64 time=0.059 ms
^C
— 192.168.1.100 ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.059/0.117/0.290/0.100 ms

第二种,下发流表,去掉VLAN标签再匹配,也可以ping通

[root@openstack01 ~]# ovs-ofctl del-flows ovs-switch in_port=p1
[root@openstack01 ~]# ovs-ofctl del-flows ovs-switch in_port=p0
[root@openstack01 ~]# ovs-ofctl add-flow ovs-switch priority=20,in_port=p0,nw_dst=192.168.1.101,actions=strip_vlan,output:p1
2020-07-23T03:26:56Z|00001|ofp_match|INFO|normalization changed ofp_match, details:
2020-07-23T03:26:56Z|00002|ofp_match|INFO| pre: in_port=100,nw_dst=192.168.1.101
2020-07-23T03:26:56Z|00003|ofp_match|INFO|post: in_port=100
[root@openstack01 ~]# ovs-ofctl add-flow ovs-switch priority=20,in_port=p1,nw_dst=192.168.1.100,actions=strip_vlan,output:p0
2020-07-23T03:26:59Z|00001|ofp_match|INFO|normalization changed ofp_match, details:
2020-07-23T03:26:59Z|00002|ofp_match|INFO| pre: in_port=1,nw_dst=192.168.1.100
2020-07-23T03:26:59Z|00003|ofp_match|INFO|post: in_port=1
[root@openstack01 ~]#
[root@openstack01 ~]# ip netns exec ns1 ping 192.168.1.100
PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.
64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=0.291 ms
64 bytes from 192.168.1.100: icmp_seq=2 ttl=64 time=0.050 ms

5、可以用ovs-appctl ofproto/trace生成一个从端口p1发送到端口p0的数据包

[root@openstack01 ~]# ovs-appctl ofproto/trace ovs-switch in_port=1,dl_src=de:e2:d8:3e:d4:9f,dl_dst=c2:9f:27:4d:7d:3e -generate
Flow: in_port=1,vlan_tci=0x0000,dl_src=de:e2:d8:3e:d4:9f,dl_dst=c2:9f:27:4d:7d:3e,dl_type=0x0000
bridge(“ovs-switch”)
0. in_port=1, priority 20
strip_vlan
output:100
Final flow: unchanged
Megaflow: recirc_id=0,eth,in_port=1,dl_src=de:e2:d8:3e:d4:9f,dl_dst=c2:9f:27:4d:7d:3e,dl_type=0x0000
Datapath actions: 3
[root@openstack01 ~]#

6、删除接口的VLAN tag

[root@openstack01 ~]# ovs-vsctl clear port p0 tag
[root@openstack01 ~]# ovs-vsctl clear port p1 tag

两个网桥实现vlan隔离的场景

在这里插入图片描述

1、再创建一个网桥ovs-switch1,在命名空间里创建一个接口p3。分配地址为192.168.1.103/24

ovs-vsctl add-br ovs-switch1
ovs-vsctl add-port ovs-switch p3 – set Interface p3 ofport_request=100
ovs-vsctl set Interface p3 type=internal
ip netns add ns3
ip link set p3 netns ns3
ip netns exec ns3 ip addr add 192.168.1.103/24 dev p3
ip netns exec ns3 ifconfig p3 promisc up

2、创建patch port

ovs-vsctl add-port ovs-switch patch-ovs-1 – set interface patch-ovs-1 type=patch – set interface patch-ovs-1 option:peer=patch-ovs-2
ovs-vsctl add-port ovs-switch1 patch-ovs-2 – set interface patch-ovs-2 type=patch – set interface patch-ovs-2 option:peer=patch-ovs-1

3、设置p0和p3的VLAN tag,相同的VLAN可以ping通,不同的不可以ping通

[root@openstack01 ~]# ovs-vsctl set Port p0 tag=10
[root@openstack01 ~]# ovs-vsctl set Port p3 tag=10
[root@openstack01 ~]# ip netns exec ns3 ping 192.168.100.100
PING 192.168.100.100 (192.168.100.100) 56(84) bytes of data.
64 bytes from 192.168.100.100: icmp_seq=1 ttl=64 time=0.563 ms
64 bytes from 192.168.100.100: icmp_seq=2 ttl=64 time=0.060 ms
64 bytes from 192.168.100.100: icmp_seq=3 ttl=64 time=0.060 ms

4、现在将patch设备为trunk,且只允许vlan 20通过

ovs-vsctl set port patch-ovs-1 VLAN_mode=trunk
ovs-vsctl set port patch-ovs-2 VLAN_mode=trunk
ovs-vsctl set port patch-ovs-1 trunk=20
ovs-vsctl set port patch-ovs-2 trunk=20
此时使用ns3再去ping 192.168.100.100,就无法ping通,且ovs-switch收不到报文

5、设置p0和p3的VLAN tag均为20,此时可以ping通

[root@openstack01 ~]# ovs-vsctl set Port p3 tag=20
[root@openstack01 ~]# ovs-vsctl set Port p0 tag=20
[root@openstack01 ~]# ip netns exec ns3 ping 192.168.100.100
PING 192.168.100.100 (192.168.100.100) 56(84) bytes of data.
64 bytes from 192.168.100.100: icmp_seq=1 ttl=64 time=0.644 ms
64 bytes from 192.168.100.100: icmp_seq=2 ttl=64 time=0.059 ms
^C
— 192.168.100.100 ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.059/0.351/0.644/0.293 ms

参考

ovs 实现vlan隔离(一)
ovs 实现vlan隔离(二)
用patch port连接两个ovs网桥
踩坑经验之OVS跨子网流表以及vlan操作

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

ovs测试vlan 的相关文章

  • Proxmox VE 超融合集群OVS(Open vSwitch)虚拟机网络隔离

    作者 xff1a 田逸 需求的产生 在一个高配置的Proxmox VE 超融合集群中 xff0c 为充分利用资源 xff0c 需要按某种需求将虚拟机之间进行网络隔离 xff0c 以支持更大规模的场景 网络虚拟化基本条件 支持VLAN的网络交
  • VLAN实验

    实验拓扑 实验配置 1 将接口划入vlan 2 配置路由器 xff0c 通过池塘下发地址 测试 pc2可以访问pc4 pc5 pc6 pc5不能访问pc6 pc1可以访问2 4 5 6
  • 浅谈路由器的wan、lan、wlan口和vlan/trunk口

    背景 另一篇博文分析了一个实际的路由问题 xff0c 为方便问题分析 xff0c 在此列出常用概念 vlan中的trunk口 VLAN Trunk以及三层交换 可以把switch某一端口设为trunk 端口 问题 IP地址分类 xff1a
  • 虚拟机去混杂模式与 vlan in vxlan 特性

    虚拟机 vlan trunk 特性 1 功能 1 xff09 允许不同vlan的network下的虚拟机之间通信 一般情况下 xff0c 虚拟机只能在相同vlan的网络下通信 2 xff09 允许虚拟机发送vlan报文 2 组网图 虚拟机出
  • Neutron系列 : Neutron OVS OpenFlow 流表 和 L2 Population(8)

    问题导读 xff1a 1 怎样使用arp responder xff1f 2 怎样搭建l2pop环境 xff1f 3 ARP Responder arp responder 的原理不复杂 Neutorn DB 中保存了所有的端口的 MAC
  • Linux 网卡VLAN、BOND配置

    此篇是在转载博文上做修订 原文内容有些地方不妥当 Redhat Linux的网络配置 xff0c 基本上是通过修改几个配置文件来实现的 xff0c 虽然也可以用ifconfig来设置IP xff0c 用route来配置默认网关 xff0c
  • SONIC VLAN配置流程

    SONIC VLAN配置流程 sonic vlan配置通过订阅config db的键空间事件完成vlan配置信息从config db到内核和硬件 config db json格式如下 xff1a 34 VLAN 34 34 Vlan1000
  • 有了网段为什么还要有VLAN???

    近几日 xff0c 在学习VLAN及VXLAN方面的知识 xff0c 对于产生原因做一个总结及详解 VLAN xff08 Virtual Local Area Network xff0c 虚拟局域网 xff09 xff0c 其主要用途是用来
  • OpenStack(Kilo) + Tenant-OVS-VXLAN(ml2) + Multi-Ext-Net

    from http blog sina com cn s blog 6de3aa8a0102vl7m html 使用VirualBox创建CentOS7虚拟机 资源分配视宿主windows而定 xff0c 由于要部署OpenStack xf
  • VLAN技术

    知识重点 认识VLAN VLAN简介 xff1a VLAN xff08 Virtual Local Area Network xff09 即虚拟局域网 xff0c 是将一个物理的LAN在逻辑上划分成多个广播域的通信技术 VLAN目的 xff
  • OVS于DVS

    撰写时间 xff1a 2022 2 28 分布式虚拟交换机 xff08 DVS 注意 xff1a DVS是二层交换机 DVS特点 xff1a 1 集中管理 xff1a 通过统一的Portal页面进行集中管理 xff0c 简化用户配置 2 基
  • h3c交换机端口加入vlan命令_h3c交换机划分vlan命令

    h3c交换机划分vlan命令 华三通信安全产品线专注于网络安全以及应用安全 xff0c 为用户提供融合网络和应用的产品与解决方案 yjbys小编收集了一些关于h3c交换机划分vlan命令 xff0c 希望大家认真阅读 一 基本设置 1 co
  • VLAN技术

    大家好呀 xff0c 我是请假君 xff0c 今天又来和大家一起学习数通了 xff0c 今天要分享的知识是VLAN技术 介绍VLAN之前先来了解一下广播风暴 xff1a 在交换式以太网出现后 xff0c 同一个交换机下不同的端口处于不同的冲
  • VLAN类型

    大家好呀 xff0c 我是请假君 xff0c 今天又来和大家一起学习数通了 xff0c 今天要分享的知识是VLAN类型 一 基于端口的VLAN xff1a 基于端口的VLAN是最简单 最有效的VLAN划分方法 xff0c 它按照设备端口来定
  • ovs+dpdk 三级流表(microflow/megaflow/openflow)

    本文介绍在ovs dpdk下 三级流表的原理及其源码实现 普通模式ovs的第一和二级流表原理和ovs dpdk下的大同小异 三级流表完全一样 基本概念 microflow 最开始openflow流表是在kernel中实现的 但是因为在ker
  • OpenvSwitch实现简单VLAN

    需求 现有拓扑结构如下的网络结构 s1 s4为交换机 h1 h9为主机 现欲让单数主机 h1 h3 h5 h7 h9 之间互相能ping通 双数主机之间互相能够ping通 但单数和双数主机之间不能访问 拓扑结构 s1
  • 配置Dot1q终结子接口实现跨设备VLAN间通信示例

    示例图 一 实验目的 1 配置Dot1q终结子接口实现跨设备VLAN间通信示例 二 注意事项 1 Dot1q终结子接口和QinQ终结子接口不支持透传不带VLAN Tag的报文 收到不带VLAN Tag的报文会直接丢弃 2 由于三层以太网子接
  • ubuntu配置VLAN的方法

    目录 前言 一 VLAN是什么 二 Ubuntu如何配置VLAN IP 1 依赖安装 2 创建VLAN 总结 前言 在做someip相关开发的时候需要使用到VLAN 这里介绍如何在ubuntu上创建VLAN 一 VLAN是什么 VLAN V
  • 交换机学习总结

    网络中数据转发主要由交换机和路由器完成 路由器属于网络七层结构的网络层 第三层 交换机一般属于数据链路层 第二层 设备 也有三层交换机和四层交换机 分别属于网络层和传输层设备 路由器负责在不同的局域网内进行数据转发 比如你要访问百度的服务器
  • ubuntu 下实现 docker+ovs+quagga搭建网络---bgp

    注 本机上现有quagga镜像 ovs虚拟交换机 2 9 1 docker 18 09 7 实现bgp网络搭建 1 sudo ovs vsctl add br br1 增加一个ovs网桥br1 2 sudo docker images 查看

随机推荐

  • k8s学习笔记-部署Flannel网络

    主机列表 本次实验选择5台主机 xff0c 3台作为master主机 xff0c 2台作为node节点 节点ipOS版本hostname f安装软件192 168 0 1RHEL7 4k8s master01docker etcd flan
  • ROS教程四——编写Publisher和Subscriber节点(C++篇)

    本教程介绍如何使用C 43 43 编写发布者和订阅者节点 1 编写 Publisher Node 节点 是连接到ROS网络的可执行文件的ROS术语 现在将创建一个发布者 xff08 publisher talker xff09 节点 xff
  • 在Ubuntu系统中设置中文!!!

    建议在观看本篇前先观看上一篇修改Ubuntu系统下载源 Ubuntu系统下面可以配置中文 1 xff0c 设置 gt 系统设置 2 xff0c 选择区域与语言 单击管理已安装的语言 3 xff0c 单击添加或者删除语言 4 xff0c 选择
  • 视觉问答项目

    视觉问答项目 1 项目地址 本笔记项目包括如下 xff1a MCAN Deep Modular Co Attention Networks for Visual Question Answering 用于VQA的深层模块化的协同注意力网络
  • 基于形状的模板匹配(Shape-Based)

    称为基于边缘方向梯度的匹配 xff0c 是一种最常用也是最前沿的模板匹配算法 xff08 一 xff09 根本思想 以物体边缘的梯度相关性作为匹配标准 xff08 二 xff09 原理 提取ROI中的边缘特征 xff0c 结合灰度信息创建模
  • Hadoop基础教程-第7章 MapReduce进阶(7.1 MapReduce过程)(草稿)

    第7章 MapReduce进阶 7 1 MapReduce过程 7 1 1 input 一般而言 xff0c 数据文件都会上传到HDFS上 xff0c 也就是说HDFS上的文件作为MapReduce的输入 已知block块大小是128M x
  • RedHat Linux 5企业版开启VNC Server远程桌面功能手记

    环境 xff1a RedHat Linux 5企业版 Xwindows xff1a gnome xff08 红帽默认安装的图形界面 xff09 尽管我们可以使用SSH连接远程通过字符界面来操作Linux xff0c 但是对于更多熟悉图形人来
  • man: can't change directory to '/root': Permission denied

    执行 man 命令报错 man can t change directory to root Permission denied man command exited with status 255 sed e 错误原因 用户权限不够 解决
  • 树莓派3B入门开发之(一)--简介

    介绍 树莓派3B 树莓派是一个小型的单板计算机 通过将键盘 xff0c 鼠标 xff0c 显示器等外围设备连接到Raspberry Pi xff0c 它将作为一台迷你个人电脑 Raspberry Pi广泛用于实时图像 视频处理 xff0c
  • 3.19、BI之SSIS之数据流转换(合并)

    BI之SSIS之数据流转换 xff08 Union xff09 1 使用 合并 前必须先对数据进行排序 xff0c 否则会报错 xff0c 而union all则不需要排序 xff0c 这是它们二者的区别 2 新建SSIS包 3 控制流 拖
  • 3.20、BI之SSIS之数据流转换(合并连接)

    BI之SSIS之数据流转换 xff08 合并连接 xff09 1 合并联接转换功能是将两个已排序的输入列的数据通过使用FULL JOIN Left JOIN或INNERR JOIN联接形成一个输出数据集 它类似于T SQL语句中的连接查询语
  • 缓存小技巧--异步更新缓存时remove cache数据

    在支撑大规模 高并发 高可用的互联网应用中 xff0c 异步更新分布式缓存的应用已经越来越多了 xff08 为什么是异步更新缓存 xff0c 因为异步不仅可以提高系统性能 xff0c 而且提高系统的伸缩性和可用性 xff09 xff0c 由
  • pixhawk 2.4.6 pix2.4.8 原理图PCB二层板

    pixhawk 2 4 6 pix2 4 8 原理图PCB二层板 www cirmall com circuit 21579
  • Dockerfile简单使用入门

    什么是 Dockerfile xff1f Dockerfile 是一个用来构建镜像的文本文件 xff0c 文本内容包含了一条条构建镜像所需的指令和说明 docker build命令用于从Dockerfile构建映像 可以在docker bu
  • 什么是私有云?您应该知道的 6 个优势

    私有云是指单个业务实体或目标用户可以单独访问特定云计算环境中指定的硬件和软件资源 私有云类似于其他形式的云环境 xff0c 因为它通过物理组件提供虚拟化资源 私有云的优势 私有云的六大主要优势包括可预测的服务器使用 提高资源利用率 降低成本
  • CORD 4.1:打造实现边缘计算的最佳平台

    开放网络基金会 xff08 ONF xff09 周一发布了CORD 4 1版本的代码 xff0c 该版本的代码新增的功能为CORD项目注入了新的活力 xff0c 该版本是CORD项目独立一年半以来发布的一个重要的版本 xff0c 本次版本的
  • linux 查看动态库和可执行程序依赖库

    Linux动态库 一 objdump二 readelf三 ldd四 进程是否依赖指定五 动态库搜索路径顺序 一 objdump span class token comment 查看依赖的库 span objdump x xxx so sp
  • putty远程连接linux显示连接超时

    这个问题可真坑爹啊 一开始我百度谷歌了老长时间 xff0c ping一下也没有问题 xff0c 原来是关电脑后虚拟机的ip会发生变化 xff0c 重新连接就好了 xff0c 希望对大家有所帮助
  • Ubuntu 14.04安装openssh7.5

    因公司系统上线 xff0c 客户方 xff08 中国电信 xff09 入网需要系统安全评估报告 xff0c 根据第三方公司测试 xff0c 测出openssh有远程漏洞 xff0c 第三方测试公司提出整改建议 xff0c 升级最新的open
  • ovs测试vlan

    ovs端口默认是trunk模式 xff0c 且所有的VLAN tag都可以通过 单个网桥实现vlan隔离的场景 实验拓扑如下 xff1a 1 首先创建一个网桥ovs switch xff0c 在命名空间里创建两个接口p0和p1 分别分配地址