• 前言

最近使用搭建了一个基于VXLAN的OpenStack 环境,发现要去dump ovs interfaces的包其实还是蛮麻烦的,

经过多番努力,找到了如下的在openstack下网络环境的一些trouble shooting的方法。

除了常见的工具如:ping, host, traceroute, tcpdump, ip neighbor, arp, arping, 还可以使用port mirror来完成ovs 包的dump。


  • 环境

我的环境里面有两个nodes,node1 启用了Nova和Neutron,node2只启用了Nova相关服务。

Node1的ovs环境:

sudo ovs-vsctl show
47a7cda2--485a-8ae4-1be7cf53ed44
Bridge br-tun
fail_mode: secure
Port "veth0"
Interface "veth0"
Port patch-int
Interface patch-int
type: patch
options: {peer=patch-tun}
Port br-tun
Interface br-tun
type: internal
Port "vxlan-0a674d0e"
Interface "vxlan-0a674d0e"
type: vxlan
options: {df_default="true", in_key=flow, local_ip="10.103.77.13", out_key=flow, remote_ip="10.103.77.14"}
Bridge br-int
fail_mode: secure
Port "tapb5e83be9-f9"
tag:
Interface "tapb5e83be9-f9"
type: internal
Port "qvo42d126bc-e1"
tag:
Interface "qvo42d126bc-e1"
Port int-br-ex
Interface int-br-ex
type: patch
options: {peer=phy-br-ex}
Port patch-tun
Interface patch-tun
type: patch
options: {peer=patch-int}
Port br-int
Interface br-int
type: internal
Bridge br-ex
Port "eth1"
Interface "eth1"
Port br-ex
Interface br-ex
type: internal
Port phy-br-ex
Interface phy-br-ex
type: patch
options: {peer=int-br-ex}
ovs_version: "2.0.2"

我要做的是dump出br-tun上patch-int这个interface的所有packages, 以便看到package在经过br-tun转换后的样子

  • 首先,创建类型为veth的interface
ip link add type veth
ip link set veth0 up
ip link set veth1 up
  • 其次,把这个veth0添加到br-tun上面
ovs-vsctl add-port br-tun "veth0"
  • 然后,创建port mirror
ovs-vsctl -- set Bridge br-tun mirrors=@m \
-- --id=@veth0 get Port veth0 \
-- --id=@patch-int get Port patch-int \
-- --id=@br-tun get Port br-tun \
-- --id=@m create Mirror name=veth select-src-port=@br-tun,@patch-int \
select-dst-port=@br-tun,@patch-int output-port=@veth0

成功后会输出一个mirror的id,你可以使用

ovs-vsctl list bridge

查看mirror是否在outout里面

_uuid               : 18303d75--408d-b9d7-5ef0424734f2
controller : []
datapath_id : "0000763d30188d40"
datapath_type : system
external_ids : {}
fail_mode : secure
flood_vlans : []
flow_tables : {}
ipfix : []
mirrors : [d2bcbe65-ae4c-4b88-9172-cf84dae39d0e]
name : br-tun
netflow : []
other_config : {}
ports : [3eb258b0-f9db-4dfa-bbd5-697162f26142, 6755f9ce-a8fa-4b52-ba3a-06c798e12b9b, c45bbbd7-6baf--b0e4-493d74ae0589, ffcf5619-baaf-469a-bb2d-9016ede95c92]
protocols : ["OpenFlow10"]
sflow : []
status : {}
stp_enable : false
  • 最后,使用tcpdump来查看veth0上的package(我一般会把output输出到cap文件,然后用wireshark查看,非常直观)
sudo tcpdump -i veth0 -vv -ne -w veth0.cap

使用wireshark查看你会发现,这些package已经是被translate成普通而不是VXLAN的package了,所以看不到vxlan的tunnel id了

完成tcpdump后使用下面命令删除mirror

ovs-vsctl clear Bridge br-tun mirrors

参考资料:

VXLAN:https://tools.ietf.org/pdf/rfc7348.pdf

Neutron Troubleshooting:http://docs.openstack.org/openstack-ops/content/network_troubleshooting.html

OpenvSwitch Port Mirror in OpenStack Neutron的更多相关文章

  1. Openstack Neutron OVS ARP Responder

    ARP – Why do we need it? In any environment, be it the physical data-center, your home, or a virtual ...

  2. Openstack Neutron L2 Population

    Why do we need it, whatever it is? VM unicast, multicast and broadcast traffic flow is detailed in m ...

  3. OpenStack—neutron组件介绍与安装

    neutron介绍 Neutron 概述:传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能需要创建.修改和 ...

  4. 六、OpenStack—neutron组件介绍与安装

    一.neutron介绍 Neutron 概述:传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能需要创建.修 ...

  5. [转]OpenStack Neutron运行机制解析概要

    转载自:http://panpei.net.cn/2013/12/04/openstack-neutron-mechanism-introduce/ 自从开学以来,玩OpenStack也已经3个月了, ...

  6. openstack Neutron分析(3)—— neutron-dhcp-agent源码分析

    1.neutron dhcp3个主要部件分别为什么?2.dhcp模块包含哪些内容?3.Dnsmasq配置文件是如何创建和更新的?4.DHCP agent的信息存放在neutron数据库的哪个表中? 扩 ...

  7. OpenStack Neutron 之 Load Balance

    OpenStack Neutron 之 Load Balance 负载均衡(Load Balance)是 OpenStack Neutron 支持的功能之一.负载均衡能够将网络请求分发到多个实际处理请 ...

  8. openstack——neutron网络服务

    一.neutron 介绍:   Neutron 概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能需要 ...

  9. openstack neutron中涉及的网络设备

    一.openstack neutron网络设备介绍 Bridge(网桥) 用于将两个LAN连接起来,主要靠的MAC地址学习机制.当网桥的Port收到包时会将包的源mac和port ID关联起来记入ma ...

随机推荐

  1. Nginx之RTMP

    1. RTMP协议介绍 RTMP(Real Time Messaging Protocol)实时消息传送协议是Adobe Systems公司为Flash播放器和服务器之间音频.视频和数据传输开发的私有 ...

  2. 对angularjs时间过滤格式

    在最近的项目中,我遇到这样的一个小问题,从后台传过来一个时间值,格式如下: "/Date(1484743002000)/" 至于为什么是这种格式,后台的开发说数据库中就是这个存的( ...

  3. 从Chrome源码看浏览器的事件机制

    .aligncenter { clear: both; display: block; margin-left: auto; margin-right: auto } .crayon-line spa ...

  4. spring 注解配置

    要在spring mvc中使用注解需要在*-servlet.xml文件中添加 <mvc:annotation-driver />配置 这个配置会创建DefaultAnnotationHan ...

  5. sass 基础——回顾

    1.webstorm 自动编译SASS 下载安装包 http://rubyinstaller.org/downloads/ 然后点击安装,路径为默认路径就行, 勾选以下两项 add Ruby exec ...

  6. SQL Server-聚焦事务对本地变量、临时表、表变量影响以及日志文件存满时如何收缩(三十一)

    前言 接下来我们将SQL Server基础系列还剩下最后几节内容结束,后续再来讲解SQL Server性能调优,我们开始进入主题. SQL Server事务对本地变量影响 事务对变量影响具体是指什么意 ...

  7. 【闲聊PHP】编程界的萝莉小美女--PHP

    本文地址 01 前言--上了贼船 不知道何时就上了PHP的贼船了,开始了web的开发,记得差不多两年前我还是做传统电子行业的人,就是嵌入式的方向,那时在天津或摆弄手机,或下煤窑摆弄电话,抑或就是在医疗 ...

  8. https post

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...

  9. repeater绑定泛型list<string>

    菜鸟D重出江湖,依然是菜鸟,囧!言归正传—— 工作中遇到一个repeater绑定的问题,数据源是一个list<string> 集合,然后在界面上使用<%#Eval()%>绑定. ...

  10. ORACLE-EXP和IMP方法介绍

    说明: 之前经常有人询问数据库导出导入的方法,去百度查询,但是查询的结果却不是很尽如人意,所以在此做个基本的总结,包括 导出:(导出用户,导出表,导出表结构不带数据,QUERY参数),导入(导入数据文 ...