找回密码
 注册
查看: 3704|回复: 0

openvswitch中vswitch、Bridge、Datapath

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2019-10-18 10:13:47 | 显示全部楼层 |阅读模式
在网络中,交换机和桥都是同一个概念,OVS实现了一个虚拟机的以太交换机,换句话说,OVS也就是实现了一个以太桥。那么,在OVS中,给一个交换机,或者说一个桥,用了一个专业的名词,叫做DataPath!4 y' r6 k) W; j! C. t
$ ?- `, F4 @, q& F6 F" X$ v
要了解OVS如何工作,首先需要知道桥的概念:
2 N- ~, O+ Z8 B* b- N+ {' D2 g  f- N; v% o' r3 Z9 d) |2 i
网桥也叫做桥接器,连接两个局域网的设备,网桥工作在数据链路层,将两个LAN连接,根据MAC地址来转发帧,可以看成一个“低层的路由器”(路由器工作在网络层,根据IP地质进行转发)。* i" [5 d  Y+ _* l  }) W
. u$ Z$ N7 h. I& K& p0 @
网桥的工作原理- [  {& C+ }. v7 E/ S6 f7 G
网桥处理包遵循以下几条规则:5 W: W& o) G* s  w
4 w& _7 E# D2 P, i
在一个接口上接收到的包不会再往那个接口上发送此包。" K) S3 K0 M, ?$ j
每个接收到的包都要学习其源MAC地址。
9 w' j# }8 K3 O# ]7 _% V+ `如果数据包是多播或者广播包(通过2层MAC地址确定)则要向接收端口以外的所有端口转发,如果上层协议感兴趣,则还会递交上层处理。+ M) X0 L9 D' `& M6 c
如果数据包的地址不能再CAM表中找到,则向接收端口以外的其他端口转发。
6 ^. ]4 e- @% n5 r如果CAM表中能找到,则转发给相应端口,如果发送和接收都是统一端口,则不发送。) s9 o; C( d4 T5 L
注意,网桥是以混杂模式工作的。关于网桥更多,请查阅相关资料。" i2 W- k! o" y( i6 X7 n

. \9 z0 m2 X/ G0 QOVS中的bridge+ Y4 H3 ~4 {) `! O( n7 R5 s
上面,说到,一个桥就是一个交换机。例如,在OVS中:
' N" _* r7 {* X8 l# F, ~
# [+ h5 f1 ?2 [4 Y. zroot@localhost:~# ovs-vsctl add-br br0. v  k" u+ K6 n
root@localhost:~# ifconfig br0( _4 U5 |9 j" I* Z  m( Z
      br0    Link encap:Ethernet  HWaddr 1a:09:56:ea:0b:49  ; N7 [6 q* U: E4 q, u
      inet6 addr: fe80::1809:56ff:feea:b49/64 Scope:Link
- A3 V% d. J( v" b& E      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:18 [/ X. q  B& f; h8 s
      RX packets:1584 errors:0 dropped:0 overruns:0 frame:0% w4 T5 [, k+ g6 a( A* {  \
      TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
4 F1 x9 q! y* b0 E      collisions:0 txqueuelen:0
' W$ u. I, w% }& O$ A      RX bytes:316502 (316.5 KB)  TX bytes:468 (468.0 B)( r9 i" A5 C# o* K" f
当我们创建了一个交换机(网桥)以后,此时网络功能不受影响,但是会产生一个虚拟网卡,名字就是网桥的名称(br-int),之所以会产生一个虚拟网卡,是为了实现接下来的网桥(交换机)功能。有了这个交换机以后,还需要为这个交换机增加端口(port),一个端口,就是一个物理网卡,当网卡加入到这个交换机之后,其工作方式就和普通交换机的一个端口的工作方式类似了。
6 M" a7 W! {1 \+ T: y* v( F
- a* O3 ^4 b3 zroot@localhost:~# ovs-vsctl add-port br0 port
4 I. b" S) i$ W# P: s! B: }% g这里要特别注意,网卡加入网桥以后,要按照网桥的工作标准工作,那么加入的一个端口就必须是以混杂模式工作,工作在链路层,处理2层的帧,所以这个port就不需要配置IP了。(你没见过哪个交换的端口有IP的吧)
! Q) Q4 D# |3 s5 R0 X. q0 V: i$ S" e: x9 U" e
那么接下来你可能会问,通常的交换机不都是有一个管理接口,可以telnet到交换机上进行配置吧,那么在OVS中创建的虚拟交换机有木有这种呢,有的!上面既然创建交换机brname的时候产生了一个虚拟网口 br-int,那么,你给这个虚拟网卡配置了IP以后,就相当于给交换机的管理接口配置了IP,此时一个正常的虚拟交换机就搞定了。. D0 k5 @  F  d, Y* ~2 u
# y8 p' N4 _4 V9 j5 E7 g3 A
root@localhost:~# ip address add 192.168.1.1/24 dev br0' {; v: p! M' B7 ~
最后,我们来看看一个br的具体信息:/ I) I; F( `8 C' K2 k& H3 B
6 M7 M4 @( a/ h; C$ m, h8 i3 y
root@localhost:~# ovs-vsctl show
9 K( Y* m0 H) L# rbc12c8d2-6900-42dd-9c1c-30e8ecb99a1b" z$ v3 K( Y( i. o0 }* J/ t! V
Bridge "br0"
2 l+ N2 Z4 s6 R- A0 Z, R    Port "eth0"4 y% ?: g4 S% j$ G* I" P* r
        Interface "eth0"6 W/ t7 Z. p2 o& P2 {5 u- j% [$ x
    Port "br0"
7 O8 E# @. H. b! K2 v0 v        Interface "br0"
! l( z3 I7 d7 z5 _1 `7 G& D            type: internal) M) ]0 d6 t0 U) S6 v
ovs_version: "1.4.0+build0"
5 C1 H, y" b7 y( _, S6 ~首先,这里显示了一个名为br0的桥(交换机),这个交换机有两个接口,一个是eth0,一个是br0,上面说到,创建桥的时候会创建一个和桥名字一样的接口,并自动作为该桥的一个端口,那么这个虚拟接口的作用,一方面是可以作为交换机的管理端口,另一方面也是基于这个虚拟接口,实现了桥的功能。4 |9 E, \' p* K. L, ]

" A! @) ?/ u/ M9 J# F1 o#### OpenvSwitch的典型工作流程( n: k3 c9 n4 f- G; K
) }! ]0 f* N; r/ h; S6 J
这一部分以一个简单的例子,说明在虚拟化环境中OpenvSwitch的典型工作流程。+ e( ]- |+ n0 [  e' |( g* [* Y+ G
/ M$ `1 N( c: {- B
前面已经说到,OVS主要是用来在虚拟化环境中。实现虚拟机之间通信以及一个虚拟机和外网之间通信,如下是一个典型的结构图:- u6 \+ {  `8 X
' r: x% v1 G4 t/ x0 R
那么,通常情况下的工作流程如下:  B, d) j% y' N; j+ o  ^2 j
4 ^0 |9 t5 N1 H" V  N  s
logical_model; n. a9 n0 d$ I

4 O8 l! H: |% q1 V1 S! W' CVM实例 instance 产生一个数据包并发送至实例内的虚拟网络接口 VNIC,图中就是 instance 中的 eth0.5 \  z6 N  _7 R5 @: P5 H+ D$ G) u
这个数据包会传送到物理机上的VNIC接口,如图就是vnet接口。7 F, j, S7 h3 B& X& A0 N+ G
数据包从 vnet NIC 出来,到达桥(虚拟交换机) br100 上.
+ D9 o+ b1 w7 I' J0 l/ B& `1 L0 y数据包经过交换机的处理,从物理节点上的物理接口发出,如图中物理机上的 eth0 .7 J( H0 l) P+ Y7 O% P; m$ F
数据包从 eth0 出去的时候,是按照物理节点上的路由以及默认网关操作的,这个时候该数据包其实已经不受你的控制了。
$ s$ Z% a/ G7 V8 [一般 L2 switch 连接 eth0 的这个口是一个 trunk 口, 因为虚拟机对应的 VNET 往往会设置 VLAN TAG, 可以通过对虚拟机对应的 vnet 打 VALN TAG 来控制虚拟机的网络广播域. 如果跑多个虚拟机的话, 多个虚拟机对应的 vnet 可以设置不同的 vlan tag, 那么这些虚拟机的数据包从 eth0(4)出去的时候, 会带上TAG标记. 这样也就必须是 trunk 口才行.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 01:28 , Processed in 0.017287 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表