简介
本文档将软件定义网络(SDN)描述为补充传统网络架构的一种新的网络方法。SDN的原始定义与OpenFlow关联。
OpenFlow SDN目标
以下是OpenFlow SDN的主要目标。
- 提高网络可扩展性。
- 降低网络复杂性.
- 允许更好的应用控制。
- 启用功能独立性。
- 通过将控制平面和数据平面分离以及数据平面标准化来实现。该控制平面作为运行在高性能多核服务器上的全知的、先进的分布式软件来实施。
- OpenFlow是来自开放网络基础(ONF)的一项规范,它定义了基于流的转发基础设施(交换机模型)和标准化的应用程序接口(协议定义)。
- OpenFlow允许控制器通过安全通道控制交换机的转发功能。本地设备配置不在OpenFlow协议的范围内。
功能概要
这是水龙头OpenFlow控制器:
- OpenFlow 1.3交换机(包括TFM表功能消息)
- 第2层交换、VLAN、ACL、第3层IPv4和IPv6路由(静态和通过BGP)
- 部署为网络中第2/第3层交换机的插件替代产品,以实现额外的基于SDN的功能。
- OpenFlow是一种完全不同的转发模式,它使用相同的Catalyst 9000硬件和软件。
- 可以在OPENFLOW和NORMAL之间切换模式,需要重新启动。
OpenFlow是控制器(控制平面)和以太网交换机(数据平面)之间的协议。交换机将流表安排在管道中,并且流是检查数据包的规则。
流指定:
示例管道:
注:当不存在功能依赖关系时,需要在OpenFlow模式下启动交换机。OpenFlow模式下的可用平台,Catalyst 9000系列交换机 — 9300/9400/9500/9500-H
思科实施(Cat9k上的OpenFlow模式)
正常操作和OpenFlow操作使用相同的图像。
交换机应处于OpenFlow模式。
ott-of-c9k-210#show boot mode
System initialized in openflow forwarding mode
System configured to boot in openflow forwarding mode
All the front panel ports are openflow ports (no hybrid mode)
Changing the boot mode (reload mandatory)
ott-of-c9k-210(config)#boot mode openflow
重新加载交换机。
检验交换机是否处于Openflow模式。
of-switch# show boot mode
System initialized in openflow forwarding mode
System configured to boot in openflow forwarding mode
“no boot mode openflow” followed by reboot reverts to normal mode.
CAT9300#show run openflow
feature openflow
openflow
switch 1 pipeline 1
controller ipv4 10.104.99.42 port 6653 vrf Mgmt-vrf security none
controller ipv4 10.104.99.42 port 6633 vrf Mgmt-vrf security tls
controller ipv4 10.104.99.42 port 6637 vrf Mgmt-vrf security tls local-trustpoint tp-blue
目前总共支持8个控制器!
还支持IPV6控制器配置和操作。
OpenFlow下的命令选项 |
目的 |
交换机1管道1 |
交换机1和管道1是C9ks上的唯一选择 |
controller ipv4 10.104.99.42 port 6653 vrf Mgmt-vrf security none |
无安全性的控制器 |
controller ipv4 10.104.99.42 port 6633 vrf Mgmt-vrf security tls |
使用tls的控制器,使用全局tls信任点配置 |
controller ipv4 10.104.99.42 port 6637 vrf Mgmt-vrf security tls local-trustpoint tp-blue |
使用tls的控制器,使用本地tlstrustpoint配置,但可从全局tlstrustpoint进行远程 |
最大回退10 |
控制器连接关闭时重试OpenFlow连接的最长时间,默认值为8秒 |
probe-interval 10 |
探测与连接的OpenFlow连接的时间间隔变为空闲,默认值为5秒。 |
速率限制数据包_in 2000 burst 3000 |
数据包速率限制为控制器,默认值为0 |
statistics collection-interval 6 |
收集流统计信息的频率,默认值为5秒 |
datapath-id 0x1 |
switch datapath unique-id(如果未配置的默认值为((1<<48))) | system-mac-addr) |
默认未命中控制器 |
不匹配任何流的数据包可以发送到控制器。默认值为drop |
日志记录流 — 修改 |
将flow-mod信息转储为show logging中的日志,默认情况下未启用 |
tls trustpoint local tp-local remote tp-remote |
安全控制器连接的全局tls信任点# |
故障排除/调试
控制器端调试不在本文档的讨论范围之内。
Openflow交换机并非支持所有常规平台CLI。为调试方案选择并仅使用允许的CLI。
有关任何其他命令和参考信息,请参阅此config-guide:https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/prog/configuration/174/b_174_programmability_cg/openflow.html#id_76495
Show命令 — IOS®
命令 |
目的 |
show running-config openflow |
显示OpenFlow运行配置信息。 |
show openflow switch number controllers |
显示有关与控制器的OpenFlow代理连接的信息。 |
show openflow 交换机 号码 流列表 |
显示有关安装的OpenFlow流的信息。 |
show openflow 交换机 号码 端口 |
显示有关OpenFlow代理端口状态的信息。 |
show openflow 硬件 功能 |
显示硬件功能,例如表数、表大小、支持的匹配/操作/丢失。 |
show openflow 交换机 号码 组 |
显示有关Openflow组的信息。 |
show openflow 交换机 号码 统计信息 |
显示OpenFlow接口(rx/tx)统计信息、OpenFlow表统计信息(每个表的最大流数、每个表的活动流数、查找次数和匹配数)。 |
show openflow 交换机 号码 控制器统计信息 |
显示openflow控制器统计信息。 |
Show命令 — 硬件:
命令 |
目的 |
show platform software fed switch active openflow 状态 |
显示有关安装/成功/删除的消息数量的统计信息。 |
show platform software fed switch active openflow 流 ID |
显示特定流中的信息。 |
show platform software fed switch active openflow 组 |
显示有关流组的硬件信息。 |
show platform hardware fed switch active fwd-asic 资源 tcam 使用 |
显示有关TCAM使用的硬件信息。 |
show platform software fed <switch> active openflow error [brief |事件 |详细信息] |
列出所有OpenFlow错误(如果有)。 |
show platform software fed <switch> active openflow table [<table-id> |映射]
|
此命令可提供表ID,用于功能功能/匹配功能以及表的大小。 |
show platform software fed switch active openflow event
|
显示每个表上的事件列表,以及针对流(添加、删除、更新)执行任何操作所花费的时间。 |