Open vSwitch相关术语

Packet(数据包)

网络转发的最小数据单元,每个包都来自某个端口,最终会被发往一个或多个目标端口,转发数据包的过程就是网络的唯一功能。

Bridge(网桥)

Open vSwitch中的一个网桥就是一台以太网交换机,可以创建一个或者多个Bridge设备。其功能是根据一定流规则,把端口收到的数据包转发到另一个或多个端口,端口数量不受限制。

Port(端口)

端口是收发数据包的单元,和物理以太网交换机的端口概念类似。Open vSwitch中,每个端口都属于一个特定的网桥。端口收到的数据包会经过流规则的处理,发往其他端口;也会把其他端口来的数据包发送出去。Open vSwitch支持的端口有以下几种:

  • Normal Port:用户可以把OS中的网卡绑定知道Open vSwitch上,Open vSwitch会生成一个普通端口处理这块网卡进出的数据包。
  • Internal Port:当设置端口类型为internal,Open vSwitch会创建一块虚拟网卡,此端口收到的所有数据包都会交给这块网卡,网卡发出的包会通过这个端口交给Open vSwitch。(但Open vSwitch创建一个新网桥时,默认会创建一个与网桥同名的Internal Port)
  • Patch Port:当机器中有多个Open vSwitch时,可以使用Patch Port把两个网桥连接起来。Path Port总是成对出现,分别连接在两个网桥上,在两个网桥之间交换数据。
  • Tunnel Port:隧道端口是一种虚拟端口,支持使用gre或vxlan等隧道技术与位于网络上其他位置的远程短啊口通讯。

Interface(iface/接口)

它是连接到Port的网络接口设备。Open vSwitch通过Interface与外部交换数据包。在通常情况下,Port和Interface是一对一的关系,只有在配置Port为bond模式后,Port和Interface才是一对多的关系。一个接口就是操作系统的一块网卡,这块网卡可能是Open vSwitch生成的虚拟网卡,也可能是物理网卡挂载在Open vSwitch上,也可能是操作系统的虚拟网卡(TUN/TAP)挂载在Open vSwitch上。

Flow(流)

流定义了端口之间数据包的交换规则。每条流分为匹配和动作两部分,匹配部分选择哪些数据包可以通过这条流处理,动作决定这些匹配到的数据包如何转发。流描述了一个网桥上,端口到端口的转发规则。比如定义这样一条流:

当数据包来自端口A,则发往端口B

来自端口A就是匹配部分,发往端口B就是动作部分。
流的定义可能非常复杂,比如:

当数据包来自端口A,并且其源MAC是aa:aa:aa:aa:aa:aa,并且其拥有vlan tag为a,并且其源IP是a.a.a.a,并且其协议是TCP,其TCP源端口号为a,则修改其源IP为b.b.b.b,发往端口B

Datapath

由于流可能非常复杂,对每个进来的数据包都去尝试匹配所有流,效率会非常低,所以有了datapath。Datapath对流进行缓存,把流的执行结果保存起来,当下次遇到匹配到同一条流的数据包,直接通过datapath处理。考虑到转发效率,datapath完全是在内核态实现的,并且默认的超时时间非常短,好像是3秒。Datapath可以视作一个交换机,因为传统交换机缓存MAC地址并根据MAC地址进行数据包的转发,而Datapath缓存Flow(流)并根据流进行数据包的转发。

Controller

OpenFlow控制器。Open vSwitch可以同时接受一个或者多个基于OpenFlow控制器的管理。

Flow Table

每个datepath都和一个“flow table”关联,但datapath接收到数据之后,Open vSwitch会在flow table中查找可以匹配的flow,执行相应的操作,例如转发数据到另外的端口。

你可能感兴趣的:(Open vSwitch相关术语)