天下大势,分久必合,合久必分.
推荐书籍:
- 《软件定义网络 SDN与openflow解析》
很难,非常专业,偏原理 - 《深度解析SDN 利益,战略,战术,实践》
从安全,网络,编程等各个方向解析SDN - 《Openflow Switch Specification version 1.x》
白皮书能差吗? - 《数据中心虚拟化技术权威指南》
- 《策略驱动型数据中心 ACI技术详解》
- 《NX-OS 与Cisco Nexus交换技术 下一代数据中心架构》
都是Cisco公司的专家写的. 偏于数据中心,数据中心虚拟化.建议高级进阶时使用.
编程+网络
建议使用Python作为入手语言.
实验工具:
- Mininet
实验环境 - OpenDayLight
一个超级热门的控制器 - ONOS
运营商级别的控制器
需求:网络产品是硬件形态的产品,迭代远远比软件慢,不能满足需求
SNMP的主要功能还是监控而不是配置 而一个网络体系可能有多种设备,他们的配置命令不尽相同,在建立连接树的时候都是通过:邻居建立-信息共享-路径选择,每一个谁被都有自己的大脑,通过自己的算法建立路径树. 如果网络发生了变动,也是通过接力棒的形式告诉下一棒,太慢了!
全局带宽监控也是未来的趋势,每一个节点都共享出来自己的信息,最终实现了流量可视化
openflow只有三层结构:控制和转发完全分离
应用层:脚本,功能
API
控制层:一个安装了控制器的服务器
openflow南向接口
转发层:设备
流表
controller是最重要的,不仅要上下通讯,同级的controller还要互相通讯
什么是流? 拥有相同属性的数据包集合. eg.同一个IP源,或者同一个目的地,或者同一个协议
流表项到底长什么样?
mininet>dpctl dump-flows//查看流表项
***s1-------------
NXST_FLOW reply(xid=0x14):
cookie=0x0,duration=90.597s,table=0,n_packets=2,n_bytes=84,idle_timeout=60,idle_age=49,priority=0,arp,in_port=1,vlan_tci=0x0000,dl_src=06:c2:4a:11:6e:e9,dl_dst=72:bc:31:c6:48:21,arp_spa=10.0.0.2,arp_op=2 actions=output:2
//idle_timeout 超时时间
//arp/icmp
//in_port进端口
//arp_spa源地址
//arp_tpa目的地址
Header Fields—Counters—Actions
Header Fields
从上面的例子,显然,流表项的包头域包含了从二层,三层,四层的全部(MAC,IP,PORT)
Counters
只要你能想到的,全都能计数
Actions
- 必备动作+可选动作
- 必备动作-转发
- All 转发到所有出口
- Controller 封装并转发到控制器
- LOCAL转发给本地网络栈
- IN_PORT 从入口转发
- 必备动作-丢弃
- 必备动作-转发
- 可选动作–转发
- NORMAL 按照传统交换机的2层或者3层转发处理
- FLOOD 通过最小生成树从出口泛洪发出,(不包括入口)
- 可选动作–入队:将包转发到绑定到某个端口的队列中
- 可选动作–修改域:修改包头内容(最大不同)
Openflow1.3中的流表项
Match Field—Priority—Counters—Instructions —TImeouts—Cookies
Match Field 是原来的包头域的扩展,除了原来的MAC IP PORT,增多了MPLS,IPv6,PBB等
Priority 优先级越高越早结合
Counters 比以前加入了对每组,每个队列,每个动作集的计数
Instructions 相比于之前的actions

? 比1.0版本复杂了好多!
当一个表项的指令集没有包含Goto-Table的时候,流水线处理停止,然后行动集就被执行
Timeouts 流表项的老化时间
Cookies 附属信息
Controller和数据平面如何建立连接
数据平面 hello-> controller
-<hello //交换互相的版本
-<features request // 你支持这个特性吗?
features reply->//超级大的包
<-set config
packet in->//没有flow table的时候递交此包
-<pack out//经过controller指导后的包
->port status//数据平面学到新知识之后通知controller
消息种类–一共分成三类(由谁发起来区分)
controller-to-switch controller获取switch状态/指导switch
asynchronous消息 switch将网络事件或者交换机消息更新给控制器
symmetric消息 谁都可以发起
OVS:支持openflow协议的虚拟交换机,与之相对应的是白盒交换机
本文介绍了SDN的基本概念,推荐了相关书籍,并详细阐述了OpenFlow的流表结构,强调了Controller的重要角色以及流表项的组成,包括Header Fields、Counters和Actions。此外,还提到了SDN的全局带宽监控趋势和OpenFlow的版本发展。

1289

被折叠的 条评论
为什么被折叠?



