openflow协议的工作原理及流表的基本操作

openflow协议的工作原理及流表的基本操作

1、openflow协议的工作原理
首先看一下python文件中的拓扑图,主机h1如果要与h3进行通信,h1向网络发送数据包,这里数据包发送给交换机s1,由于刚开始时,交换机s1的流表中没有匹配项,也就是说s1没有in_port=2(h1所在端口)的流表项,s1会发送packed_in消息给控制器,控制器收到packed_in消息后回复pack_out消息给s1,下发流表,s1根据收到的流表转发数据包给s2,s2收到数据包后由于也没有匹配项,于是s2发送packed_in给控制器,控制器收到packed_in消息后回复packed_out,并下发流表给s2,s2根据流表转发数据包给h3。
h3收到数据包后想发送消息给h1,数据包到达s2之后,由于没有in_port=2(h3所在端口)的流表项,s2还是得发送packed_in给控制器,控制器回复pack_out下发流表,s2根据收到的流表项转发数据包给s1,s1收到数据包后根据流表项转发数据包给h1。
在这里插入图片描述
OpenFlow流表常用配置命令:
(1) 查看流表:dpctl dump-flows
(2) 添加流表:dpctl add-flow in_port=2,actions=output:3
(3) 添加丢弃数据包流表:dpctl add-flow in_port=2,action=drop
(4) 删除所有交换机的所有流表:dpctl del-flows
(5) 删除所有交换机的特定流表:dpctl del-flows in_port=3
(6) 删除某个交换机的流表:sh ovs-ofctl del-flows s1 in_port=3

2、打开RYU控制器,运行网络拓扑的Python文件。

ryu-manager simple_switch.py
python 001.py

  • 11
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenFlow是一种网络通信协议,它定义了SDN中的控制平面和数据平面之间的通信方式。OpenFlow交换机将数据包的处理流程分为两个阶段:匹配阶段和执行阶段。匹配阶段根据数据包的头部信息匹配流表项,执行阶段则根据匹配到的流表项进行相应的操作。 具体来说,OpenFlow交换机的流表由多个流表项组成,每个流表项包含了一些匹配字段和对应的动作。当数据包到达OpenFlow交换机时,它会依次匹配每个流表项,直到找到与数据包头部信息匹配的流表项。如果匹配成功,则执行流表项中指定的动作,例如转发、丢弃、修改头部等等。 在匹配阶段,OpenFlow交换机会根据流表项中定义的匹配字段与数据包头部进行匹配,这些匹配字段可以是源IP地址、目的IP地址、源端口号、目的端口号、协议类型、VLAN ID等等。如果数据包头部信息与某个流表项的匹配字段一致,则认为匹配成功。 在执行阶段,OpenFlow交换机会根据匹配到的流表项执行相应的动作。动作可以是转发数据包、丢弃数据包、修改数据包头部等等。交换机可以根据流表项中定义的动作来完成数据包的处理流程。 总之,OpenFlow交换机的工作原理就是通过流表项中定义的匹配字段和动作来实现对数据包的处理和转发。这种可编程的方式使得网络管理员可以动态地配置网络流量,从而更加灵活、高效地管理网络。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值