1.列举openflow1.0的12元组?
-
OpenFlow的设计目标之一就是将网络设备的控制功能与转发功能进行分离,进而将控制功能全部集中到远程的控制器上完成,而OpenFlow交换机只负责在本地做简单高速的数据转发。在OpenFlow交换机的运行过程中,其数据转发的依据就是流表。
-
OpenFlow流表的每个流表项都由3部分组成:
- 用于数据包匹配的包头域(Header Fields);
- 用于统计匹配数据包个数的计数器(Counters);
- 用于展示匹配的数据包如何处理的动作(Actions)。
-
包头域:OpenFlow流表的包头域(OpenFlow v1.1之后被称作匹配域),用于对交换机接收到的数据包的包头内容进行匹配。在OpenFlow v1.0中,流表的包头域的12个元组(Tuple)是:
- 入端口:Ingress Port
- 源MAC地址:Ether Source
- 目的MAC地址:Ether Des
- 以太网类型:Ether Type
- VLAN ID:VLAN ID
- VLAN优先级:VLAN Priority
- 源IP地址:IP Src
- 目的IP地址:IP Dst
- IP协议:IP Proto
- IP TOS位:IP ToS bits
- TCP/UDP 源端口:TCP/UDP Src Port
- TCP/UDP 目的端口:TCP/UDP Dst Port
-
包头域中用于和交换机接收到的数据包进行匹配的元组涵盖了ISO网络模型中第二至第四层的网络配置信息。每一个元组中的数值可以是一个确定的值或者是"ANY"以支持对任意值的匹配。另外,如果交换机能够在IP地址相关元组上支持子网掩码的话,将有助于实现更精确的匹配。
2.openflow多级流表机制的优点?
-
多级流表将数据包的处理逻辑划分为多个子逻辑,并由多张流表分别来匹配和处理,从而使得数据包的处理变成了一条流水线。单流表是无法满足复杂的业务逻辑要求的。
-
多级流表的设计使得流表项聚合成为可能,节省了流表空间,可减少流表项个数,也提高了编程处理逻辑的灵活性。