Controller与Switch建立连接

Posted Learn by doing!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Controller与Switch建立连接相关的知识,希望对你有一定的参考价值。

连接建立


控制器和交换机认识的过程。

  1. 用于交互Openflow版本,如果不同则没有后续。
  2. 同1。
  3. 特征请求,控制器询问交换机的特征信息。
  4. 交换机回复控制器,相当于把整个交换机的所有配置都告诉控制器了。
  5. 控制器对交换机的简单设置。
  6. 由于交换机刚开启时没有Flow Table,当交换机收到包的时候不知道怎么办,它会把这个包通过packet in的方式交给控制器,询问控制器怎么做。
  7. 对于6的计算结果回复。
  8. 同6。
  9. 同7。
  10. 端口状态,如果交换机端口状态变动,通过这个包来告诉控制器,控制器及时更新数据库。

消息列表


Controller to Switch消息 备注
Feature Controller用这个消息类型询问交换机支持的功能(feature request/reply)
Configuration Controller用这个消息类型配置或查询交换机参数(get/set config)
Moddify-State 操作流表和group表或者port属性
Read-State 获取交换机的各种状态信息,比如Counter
Packet-out 向外发送匹配某条流表项的数据报文
Barrier 保证不同消息的顺序
Role-request 当交换机有多个Controller时,Controller用这个消息向交换机宣告自己的角色
Asynchronous-Configuration 用于告诉交换机,它对哪些交换机发送过来的消息感兴趣
Switch to Controller消息 备注
Packet-in 当有报文匹配某条流表项,该项action是output to Controller-port时或交换机的流表为空时,这个报文就通过Packet-in的消息送到Controller
Flow-removed 当某条流表项被删除的时候,则Flow-removed消息告知Controller
Port-status 当端口状态变化时,交换机用这个消息类型向Controller通告状态变化
Error 当交换机出现错误的,用这个消息类型告知Controller
symmetric消息 备注
Hellow Controller和Switch初始建立会话的,相互发送hello初始化
Echo 用于确认Controller和Switch的连通性和延迟每5s
Experimenter 实验位,可以让厂商有各自的私有扩展

协议交互


  • h1通过ARP协议获得h2的MAC地址,然后向h2发数据包,下面是过程。

  • 交换机没有大脑(傻逼),只要不能匹配流表项,就要向Controller询问。
  • ICMP

以上是关于Controller与Switch建立连接的主要内容,如果未能解决你的问题,请参考以下文章

什么时候应该使用 ng-controller 与 data-ng-controller? [复制]

Jmeter-逻辑控制器之Switch控制器(Switch Controller)

性能工具之JMeter Throughput Controller vs Weightted switch controller

RYU连接ovs--主动被动

JMeter元件详解之Switch Controller

HTTP协议优化措施