目 录

1 OpenFlow.. 1

1.1 职能介绍... 1

1.1.1 OpenFlow概述... 1

1.1.2 工作道理... 1

1.1.3 和谈规范... 4

1.2 配置限度和领导... 4

1.3 配置工作概览... 4

1.4 配置OpenFlow.. 4

1.4.1 职能简介... 4

1.4.2 配置OpenFlow.. 4

1.4.3 配置OpenFlow多节造器模式... 5

1.4.4 配置OpenFlow送节造器报文的vlan标签... 5

1.4.5 配置OpenFlow报文处置模式... 6

1.4.6 配置OpenFlowIP. 6

1.5 监督与守护... 6

1.6 典型配置举例... 7

1.6.1 集中节造配置举例... 7

 


1 OpenFlow

1.1?? 职能介绍

1.1.1? OpenFlow概述

OpenFlowSDN(Software Defined Network,软件界说网络)架构中界说的一个节造器与转发层之间的网络传输和谈。OpenFlow允许节造器直接接见和操作网络设备的转发面,这些设备可能是物理上的,也可能是虚构的。

OpenFlow通过尺度的通讯和谈将设备的节造面和转发面相分离,让网络设备专一于转刊行为,而整网的节造行为集中在一台节造器上。设备与节造器成立OpenFlow衔接,由节造器天生转发规定并通过OpenFlow衔接以流表的大局下发给网络设备,从而实现网络节造面的集中治理,降低守护治理成本。

1.1.2? 工作道理

1.    根基概想

l  流表

流表是设备进行转发战术节造的主题数据结构,设备凭据流表来决策对进入设备的网络流量采取对应的行为。

一台设备能够蕴含一个或者多个流表,当前设备只支持一个流表。一个流表由多个流表项组成。

OpenFlow和谈中,流表项由三个部门组成:headercounteraction。

*        header界说了流表项的索引,通常由报文的各个字段组成,好比源MAC地址、主张MAC地址、以太网和谈类型域、源IP、主张IPIP和谈类型域、源端口、主张端口等各个字段,用于匹配报文,报文射中流表项的Header字段,则批注报文匹配到该流表项。

*        counter:统计计数.用于统计有几多个报文和字节匹配到该流表项。

*        action:报文匹配后的作为,用于界说对匹配到流表项的报文的转刊行为,如抛弃、广播、转发等。

l  新闻

OpenFlow和谈支持三种新闻类型:controller-to-switch,asynchronoussymmetric,每一类新闻又有多个子新闻类型。各新闻的单一描述如下:

*        controller-to-switch由节造器提议,用来治理以及获取网络设备状态。新闻子类型注明见1-1。

*        asynchronous:由网络设备提议,用来将网络事务或网络设备状态变动(最常见的是网络接口的link up/down变动)更新到节造器。子新闻类型注明见1-2。

*        symmetric:可由设备或节造器任一端提议,重要用于和谈初始的握手以及衔接状态探测。子新闻类型注明见1-3。

表1-1     controller-to-switch新闻子类型注明表

子类型

描述

Features

用于节造器发送Features要求来相识设备的能力,设备应答

Configuration

用于节造器查问设备的配置,设备在收到查问时应答

Modify-State

用于治理设备的状态,如流表项和端口状态,该新闻重要用于增长、删除、批改设备内的流表表项、组表表项和设备端口属性

Multipart

用于节造器要求设备各方面信息,如当前配置、统计信息

Packet-Out

用于节造器向设备发送报文

Barrier

用于确认Barrier新闻之前的作为是否成功=谠炱鞣⑺Barrier要求新闻,当设备确认之前的作为都已成功时回应答Brarrier应答新闻

Role-Request

用于设备要求节造器的角色

Asynchronous-Configuration

节造器使用该新闻设置异步新闻过滤器,用于接管只但愿接管到的异步新闻报文,或向设备查问该过滤器

 

表1-2     asynchronous新闻子类型注明表

子类型

描述

Packet-in

用于设备发送报文到节造器

Flow-Removed

公告节造器将某个流表项从流表中移除

Port-Status

公告节造器设备端口状态或配置产生扭转

Error

公告节造器设备出的问题或谬误

 

表1-3     symmetric新闻子类型注明表

子类型

描述

Hello

成立OpenFlow衔接时设备和节造器发送Hello交互

Echo

;钚挛,节造器和设备城市发送Echo request/reply新闻

Experimenter

为未来新参与的个性预留的新闻

 

2.    节造器角色

表1-4     节造器角色注明表

角色

权限

Master

该角色的节造器占有节造设备的全数权限,能够下发流表\查问统计信息,接管设备上报的状态信息。在节造器集群部署时,只能有一台节造器是Master

Equal

该角色节造器同样占有全数权限,相迸宗Master角色,集群时可有多个节造器处于Equal

Slave

该角色节造器有部门权限,部门权限被限度,如不能下发流表项、group表项、Meter表项。不允许订正设备配置、不允许进行Packet Out操作

 

3.    节造转发分离

OpenFlow实现了网络节造面的集中治理,使得整个网络可能等闲(相对于现有网络情况而言)地实现集中治理,进而简化了守护治理成本。

节造器向网络设备发送流表信息,用于节造网络数据包的转发方式以及一些配置参数。而网络设备会在链路中断或出现未指定转刊行为的数据包时,发送新闻通知节造器。进而形成二者的互动,最终节造整个网络的传输行为。

节造器和网络设备之间起头时必要实现相互发现的过程,其具体的行为如下1-1所示:

图1-1     节造器和网络设备交互道理图

image011

 

节造器和网络设备相互发送OpenFlow界说的Hello报文进行握手。握手成功后,节造器将要求设备的具体信息例如设备的端口数量、各端口的能力等(如1-1中的Feature Request/Reply),随后节造器将下发用户配置到具体的网络设备上(1-1中的Set Config)。当衔接成立后,节造器界说各个流以及匹配流的处置方式并通过流表下发到设备。每个数据包在进入设备后将依照节造器预先设定的流表规定匹配流表并执行对应的作为(作为蕴含:转发、抛弃、批改报文内容),同时对应的计数器将更新;若是没能找到匹配的表项,则转发给节造器。

网络设备会在本地守护节造器下发的流表,若是要转发的数据包在流表中已有界说,则直接在网络设备上实现转刊行为;若在流表中未能查找到,则数据包就会被发送到节造器进行传输蹊径简直认(能够理解为进行节造面解析,进而天生流表),再凭据节造器下发的流表进行转发。

1.1.3? 和谈规范

l  OpenFlow Switch SpecicationVersion 1.0.0

l  OpenFlow Switch SpecicationVersion 1.3.0

1.2?? 配置限度和领导

l  流表限度:不支持多个流表,只支持Table 0流表。

l  衔接节造器数量限度:最多只支持衔接3台节造器。

1.3?? 配置工作概览

OpenFlow配置工作如下:

(1)   配置OpenFlow

(2)   (可。配置OpenFlow多节造器模式

(3)   (可。配置OpenFlow送节造器报文的vlan标签

(4)   (可。配置OpenFlow报文处置模式

(5)   (可。配置OpenFlowIP

1.4?? 配置OpenFlow

1.4.1? 职能简介

OpenFlow是一种网络传输和谈,运行在安全传输层和谈(TLS)或无;TCP衔接之上,界说了节造器与网络设备之间的交互行为。

1.4.2? 配置OpenFlow

1.    职能简介

配置设备为OpenFlow转发模式,当设备开启OpenFlow职能时,对报文的转发节造战术由节造器天生并下发。

2.    配置限杜纂领导

l  当要切换节造器的地址时,应先关关OpenFlow职能,再开启OpenFlow职能。

l  开启OpenFlow职能时,必要将设备自身的LLDP职能关关,不然节造器下发的LLDP报文无法发出。

3.    配置步骤

(1)   进入特权模式。

enable

(2)   进入全局配置模式。

configure terminal

(3)   开启OpenFlow职能。

of controller-ip ipv4-address [ port port-number ] [ aux ] interface interface-type interface-number

缺省情况下,OpenFlow职能处于关关状态。

1.4.3? 配置OpenFlow多节造器模式

1.    职能简介

配置设备多节造器模式,能够同时衔接多个节造器。

2.    配置限杜纂领导

配置设备多节造器模式时,必要先关关OpenFlow职能,再配置为多节造器模式,再开启OpenFlow职能后才生效。

3.    配置步骤

(1)   进入特权模式。

enable

(2)   进入全局配置模式。

configure terminal

(3)   设置OpenFlow设备衔接节造器模式。

of mode { single | multiple }

缺省情况下,OpenFlow设备处于多节造器模式。

(4)   (可。┡渲OpenFlow沉连节造器的功夫距离。

of connect-interval interval

缺省情况下,OpenFlow沉连节造器的功夫距离为6秒。

(5)   (可。┡渲OpenFlow发送echo request的功夫距离。

of echo-interval interval

缺省情况下,OpenFlow发送echo request的功夫距离为5秒。

1.4.4? 配置OpenFlow送节造器报文的vlan标签

1.    职能简介

设置设备送节造器的报文是否携带vlan标签。缺省情况下设备送节造器的报文携带vlan标签。

2.    配置限杜纂领导

配置实现后立刻生效。

3.    配置步骤

(1)   进入特权模式。

enable

(2)   进入全局配置模式。

configure terminal

(3)   配置OpenFlow设备送节造器报文是否携带标签。

of packet vlantag

缺省情况下,OpenFlow设备送节造器的报文携带vlan标签。

1.4.5? 配置OpenFlow报文处置模式

1.    职能简介

设置设备收到的报文是否进行查表。缺省情况下,设备收到报文后先进行查表,凭据射中的表项处置报文,若是未射中表项则报文被抛弃。

2.    配置限杜纂领导

配置实现后立刻生效。

3.    配置步骤

(1)   进入特权模式。

enable

(2)   进入全局配置模式。

configure terminal

(3)   设置OpenFlow设备衔接节造器模式。

of packet table-lookup { enable | disable }

缺省情况下,设备报文的处置模式为查表模式。

1.4.6? 配置OpenFlowIP

1.    职能简介

设置设备衔接节造器时的源IP。默认不配置,使用衔接端口的IP。

2.    配置限杜纂领导

配置实现后立刻生效,设备和节造器会断开,使用源IP沉新进行衔接。

3.    配置步骤

(1)   进入特权模式。

enable

(2)   进入全局配置模式。

configure terminal

(3)   配置OpenFlow衔接节造器的源IP

of source-ip ipv4-address

缺省情况下,不配置源IP,默认以衔接接口的IP为源IP衔接节造器。

1.5?? 监督与守护

能够通过show号令行查看职能配置后的运行情况以验证配置成效。

表1-5     OpenFlow监督与守护

作用

号令

查看当前OpenFlow设备与节造器衔接情况

show of

查看当前OpenFlow设备的端口状态

show of port

查看当前OpenFlow设备的流表

show of flowtable

查看当前OpenFlow设备的组表

show of group

查看当前OpenFlow设备的meter

show of meter

查看当前OpenFlow设备的归并流表项

show of mergedflow

 

1.6?? 典型配置举例

1.6.1? 集中节造配置举例

1.    组网需要

OpenFlow能够实现接入设备认证的集中治理。以1-2为例,在接入互换设备上部署节造器实现对接入设备的认证节造,使得原先必要运行在接入设备上的认证职能(节造面)移交到节造器上实现。

2.    组网图

图1-2     集中节造配置组网图

image013

 

3.    配置重点

l  设备开启OpenFlow职能,与节造器成立OpenFlow治理通路。

l  在接入设备上运行OpenFlow Client,实现与节造器互联。

l  节造器要求接入设备将认证报文通过OpenFlow和谈发送到节造器上。

l  由节造器实现认证过程并将认证了局通过OpenFlow和谈下发到具体的接入设备上,实现终端用户的准入节造。

4.    配置步骤

# 配置设备端开启OpenFlow职能,指定节造器的IP地址为172.18.2.36/24,端标语为65535,同时关关设备lldp职能。

Device> enable

Device# configure terminal

Device(config)# no lldp enable

Device(config)# interface mgmt 0

Device(config-if)# ip address 172.18.2.36 255.255.255.0

Device(config-if)# exit

Device(config)# of controller-ip 172.18.2.35 port 65535 interface mgmt 0

# 配置设备为单节造器模式。

Device(config)# of mode single

# 配置送节造器的报文不携带vlan标签。

Device(config)# no of packet vlantag

# 配置设备为查表模式。

Device(config)# ofpacket table-lookup enable

# 配置设备的OpenFlowIP192.168.197.25。

Device(config)# of source-ip 192.168.197.25

5.    验证配置了局

# 查看OpenFlow的衔接状态信息。

Device# show of

[0] Controller ID=0 Info=tcp:172.18.2.35 port=6653 interface Mgmt 0, Main is Connected, Aux is Disabled

# 查看OpenFlow的端口状态。

Device# show of port

ID  IFX  INTERFACE      SPEED   LINK  DUPLEX   TX_PKT    RX_PKT    CONFIG

1   1   GigabitEthernet 0/1 Unknown  DOWN  Unknown  0      0      NA 

2   2   GigabitEthernet 0/2 Unknown  DOWN  Unknown  0      0      NA 

# 查看OpenFlow的流表状态。

Device# show of flowtable

/***************** openflow flow table[0]---flow number[2] *******************/

 

{table="0", duration_sec="5222", priority="0", flags ="0x1",idle_timeout="0", hard_timeout="0", cookie="0x0", packet_count="0", byte_count="0". match=oxm{all match} instructions=[apply{acts=[output{port="controller", max_len="3333"}] }] }

xid=472, sync_flag=0x0, ss_index=0x7b6

 

{table="0", duration_sec="5222", priority="66", flags ="0x1",idle_timeout="0", hard_timeout="0", cookie="0x0", packet_count="0", byte_count="0". match=oxm{eth_dst="00:25:64:c4:54:e4", eth_type="0x800", ipv4_dst="1.1.0.0", ipv4_dst_mask="255.255.240.0"} instructions=[apply{acts=[output{port="controller", max_len="65535"}] }] }

xid=473, sync_flag=0x0, ss_index=0x7b1

 

/****************************** openflow flow table end ****************************************/

flow total number = 2

# 配置设备为单节造器模式,只能衔接一个节造器,超过一个时会有谬误提醒。

Device(config)# no of controller-ip

Device(config)# of mode single

Device(config)# of controller-ip 172.18.122.24 interface gigabitEthernet 0/1

Device(config)# of controller-ip 172.18.122.25 interface gigabitEthernet 0/1

Controller Mode is Single, can't connected

# 通过show of号令查看当前模式为查表模式,源IP192.168.197.25。

Device# show of

version:openflow1.3, controller[0]:tcp:172.18.105.11 port 6653 interface GigabitEthernet 1/0/7, main is connected, aux is disable, role is master.

Current controller mode : multiple.

Current packet process mode : Lookup all flow.

Datapath id = 897516188948

Source IP = 192.168.197.25

6.    配置文件

hostname Device

alias exec sv show version

!

no lldp enable

!

of source-ip 192.168.197.25

of controller-ip 172.18.2.35 port 65535 interface Mgmt 0

no of packet vlantag

!

interface Mgmt 0

?ip address 172.18.2.36 255.255.255.0

?gateway 172.18.2.1

7.    常见谬误

l  节造器IP地址配置谬误。

l  节造器TCP端标语配置谬误。

l  健忘配置本机的治理通路IP地址。

【网站地图】