openvswitch bridge br-ex三层转发

dd.png

ovs bridge br-ex三层转发概念

openvswitch bridge三层转发,和linux bridge三层转发类似,只有给br-ex桥配置上ip地址后才存在三层转发的概念。

三层转发的概念和传统的三层转发有一定差异性,给bridge配置地址这种模式是,赋予bridge一种能力,该能力能让访问bridge地址的数据流进入协议栈中的具体应用中;eg:配置bridge一个地址后

我们可以ssh连接这个地址控制这台服务器;这种能把流量送给上层应用的能力叫做三层转发能力。当然这种能力只有给ovs bridge配置地址且开启主机的forward功能后才具备。

在br-ex抓包过程发生在哪里?

笔者认为,在br-ex上抓取数据包,说明该数据包已经从br-ex上送到上层协议栈处理了。br-ex抓包点在ip协议栈收包过程中。

什么类型流量能在br-ex上抓取到?

根据流量模型来讲,广播,组播和单播流量都存在。

我们先从单播ip流量来说明ovs bridge normal情况下三层转发的概念:

前提条件是你给ovs bridge(br-ex)配置ip地址,当数据包到达bridge后的目的mac是网桥的mac(网桥mac也是物理口的mac)时候,这种类型流量会经过br-ex送给协议栈上层处理,你可以在tcpdump -i br-ex抓取到这种流量,这种类型流量会存在两种处理方式

方式1:应用层接受该流量,eg ssh

方式2:无应用层接受该流量,流表是normal情况下,该流量会根据目的地址查路由将该数据包三层转发走

当然还有一部分单播流量也会渗透到br-ex的应用层,这部分流量是属于洪泛流量(也就是ovs-appctl fdb/show br-ex看不到目的mac);这部分流量会流到上层协议栈,而被tcpdump -i br-ex抓取到

那么针对于广播流量和组播流量,这些流量也会传递给应用层一份,这部分流量你可以使用tcpdump -i br-ex抓取到

什么类型流量无法在br-ex上抓取到,只能在物理口抓取到?

normal情况下二层转发且不泛洪流量(ovs-appctl fdb/show br-ex 查询已经生成转发表项)和ovs bridge精细流表转发情况下,这种类型流量不会上传到用户态协议栈处理,也就无法在br-ex上抓取到流量