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

openvswitch中vswitch、Bridge、Datapath

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2019-10-18 10:13:47 | 显示全部楼层 |阅读模式
在网络中,交换机和桥都是同一个概念,OVS实现了一个虚拟机的以太交换机,换句话说,OVS也就是实现了一个以太桥。那么,在OVS中,给一个交换机,或者说一个桥,用了一个专业的名词,叫做DataPath!! r" [, j! L( i: ?9 F2 v
1 \( ~" w2 l! I. z' v  ?, e$ x& M3 o
要了解OVS如何工作,首先需要知道桥的概念:. J# Y/ `) P& d! A5 e

1 o3 ?- y. K7 R网桥也叫做桥接器,连接两个局域网的设备,网桥工作在数据链路层,将两个LAN连接,根据MAC地址来转发帧,可以看成一个“低层的路由器”(路由器工作在网络层,根据IP地质进行转发)。
& D# F& W7 u# W9 N2 o6 c6 \) o
/ ~0 q4 Z2 R( \: I& z网桥的工作原理
; ]4 S' P" }. e2 `( R- t网桥处理包遵循以下几条规则:
: F7 D8 g) o0 S# @# J+ i8 Y
/ e/ {0 W6 \. C4 J# d8 x在一个接口上接收到的包不会再往那个接口上发送此包。. Y5 L1 l1 s- g4 e; u
每个接收到的包都要学习其源MAC地址。& \8 C7 Z' O$ K$ r$ k
如果数据包是多播或者广播包(通过2层MAC地址确定)则要向接收端口以外的所有端口转发,如果上层协议感兴趣,则还会递交上层处理。
9 O' C4 j5 D" E/ O如果数据包的地址不能再CAM表中找到,则向接收端口以外的其他端口转发。7 K9 Q4 P$ S) E: `& a
如果CAM表中能找到,则转发给相应端口,如果发送和接收都是统一端口,则不发送。
5 M/ s6 L+ ^5 ]( f9 A+ J# G注意,网桥是以混杂模式工作的。关于网桥更多,请查阅相关资料。. S" y& |8 r/ ~
2 `6 a1 t8 _, z
OVS中的bridge
+ S. e/ `! k) D: {7 I. S: @上面,说到,一个桥就是一个交换机。例如,在OVS中:
5 l8 X/ W% K) Z3 R, D: \. b( A4 k: t+ P3 M& t4 H
root@localhost:~# ovs-vsctl add-br br0
+ Y1 o; z" |5 A- \! p4 Uroot@localhost:~# ifconfig br0
8 D- R0 R3 p7 f* o9 a      br0    Link encap:Ethernet  HWaddr 1a:09:56:ea:0b:49  % K- J! ?# p8 ^5 ]# H; q3 z
      inet6 addr: fe80::1809:56ff:feea:b49/64 Scope:Link
, u0 D9 m$ I% M& O0 N, b) A      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
9 g9 `) w, ~9 s1 w4 L& M  t      RX packets:1584 errors:0 dropped:0 overruns:0 frame:0( s  |+ {( ]& s
      TX packets:6 errors:0 dropped:0 overruns:0 carrier:03 m, a+ z; @) J; \  V- e; d
      collisions:0 txqueuelen:0 " ~  N2 [# S* O3 c5 |( m4 Y
      RX bytes:316502 (316.5 KB)  TX bytes:468 (468.0 B)
# `4 y* `# L2 R当我们创建了一个交换机(网桥)以后,此时网络功能不受影响,但是会产生一个虚拟网卡,名字就是网桥的名称(br-int),之所以会产生一个虚拟网卡,是为了实现接下来的网桥(交换机)功能。有了这个交换机以后,还需要为这个交换机增加端口(port),一个端口,就是一个物理网卡,当网卡加入到这个交换机之后,其工作方式就和普通交换机的一个端口的工作方式类似了。
, p! L/ p! D" P! k) i3 B7 v0 H" X4 ]; |5 O! i6 B' e
root@localhost:~# ovs-vsctl add-port br0 port
% X$ m' I5 T" g5 v这里要特别注意,网卡加入网桥以后,要按照网桥的工作标准工作,那么加入的一个端口就必须是以混杂模式工作,工作在链路层,处理2层的帧,所以这个port就不需要配置IP了。(你没见过哪个交换的端口有IP的吧)# X) Y; r% ~0 l! V- h
- S/ m+ E* O, M; X) I. H  O
那么接下来你可能会问,通常的交换机不都是有一个管理接口,可以telnet到交换机上进行配置吧,那么在OVS中创建的虚拟交换机有木有这种呢,有的!上面既然创建交换机brname的时候产生了一个虚拟网口 br-int,那么,你给这个虚拟网卡配置了IP以后,就相当于给交换机的管理接口配置了IP,此时一个正常的虚拟交换机就搞定了。" O3 ~) g; C! L2 o  Z& K
' G, {7 A2 u! {! [6 g) t
root@localhost:~# ip address add 192.168.1.1/24 dev br0+ S4 W! O! h; j/ F8 |
最后,我们来看看一个br的具体信息:
3 P% a+ I2 b, i% o7 V: D  u  z
3 E6 {# I9 u. nroot@localhost:~# ovs-vsctl show
5 S( ~8 d( d+ u& Q& B4 i) j' h7 u: B$ M3 kbc12c8d2-6900-42dd-9c1c-30e8ecb99a1b8 t- n- r9 h# F7 V4 v% x
Bridge "br0", Q& y" z: u2 J
    Port "eth0"
* A. x  W" F1 p' z        Interface "eth0"
4 h% q9 u0 g8 w& M    Port "br0"
' D9 Q( p& f% S  c8 i        Interface "br0"
, D9 }$ f( [6 K            type: internal' ?7 h7 Z$ q1 \$ ~
ovs_version: "1.4.0+build0"! q) [7 L9 O; [. |7 r+ i
首先,这里显示了一个名为br0的桥(交换机),这个交换机有两个接口,一个是eth0,一个是br0,上面说到,创建桥的时候会创建一个和桥名字一样的接口,并自动作为该桥的一个端口,那么这个虚拟接口的作用,一方面是可以作为交换机的管理端口,另一方面也是基于这个虚拟接口,实现了桥的功能。( U& m) x) A. F& W+ V) @3 k* V9 P

7 k/ o" F* w6 O5 ?" o( D& {#### OpenvSwitch的典型工作流程) G4 A, f9 M$ _3 r" _" c. a

* r3 l5 m, n0 J这一部分以一个简单的例子,说明在虚拟化环境中OpenvSwitch的典型工作流程。
2 w! p4 I: M, w7 H- l
$ k6 b; g$ x7 y( d前面已经说到,OVS主要是用来在虚拟化环境中。实现虚拟机之间通信以及一个虚拟机和外网之间通信,如下是一个典型的结构图:: h. q' N" t8 o2 E# F& b; X
/ n# S" J: g. e7 l1 G
那么,通常情况下的工作流程如下:; K: C1 q  |4 e0 K) D8 i

4 Q7 e& y' |9 C4 Zlogical_model* A; Z5 P/ ^5 }/ E! U3 L

. {2 G/ f1 _  g$ s" gVM实例 instance 产生一个数据包并发送至实例内的虚拟网络接口 VNIC,图中就是 instance 中的 eth0.3 u+ g$ d! D. r) |! I8 ~$ [
这个数据包会传送到物理机上的VNIC接口,如图就是vnet接口。8 r' G6 h: f, v' g
数据包从 vnet NIC 出来,到达桥(虚拟交换机) br100 上.
4 g- Y0 l5 _& b/ x! p' c数据包经过交换机的处理,从物理节点上的物理接口发出,如图中物理机上的 eth0 .
3 U' P& Y% R1 A) r数据包从 eth0 出去的时候,是按照物理节点上的路由以及默认网关操作的,这个时候该数据包其实已经不受你的控制了。
8 i8 J' Z7 A- Y; n8 [一般 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 02:22 , Processed in 0.014566 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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