SDN中ryu应用写法结构介绍

 

 

 

 

 

 

SDN中ryu应用写法结构介绍
咱们在开发SDN应用时候是不是经常遇到这样结构,两种写法都行,重点看一下远程控制器SDNAPP类中_packet_in_handler和switch_features_handler函数就行,_packet_in_handler主要处理数据包进入事件,解析多种协议并转发或丢弃等等,在这个函数中我们还可以存储解析的协议到内存或者数据库中,安全方面咱们可以自定义rules根据规则来判断是否拦截数据包,除了常规的开发以外人工智能咱们可以采集流量并对接AI识别都行。其他函数如switch_features_handler交换机事件,处理交换机连接事件,安装默认流表,当有新的交换机连接到系统时,会自动触发这个功能。其他函数等后期咱们在逐一添加,咱们接下来就开始不定期的编写不同SDN国内外国网络挑战比赛Demo项目

class SDNApp(app_manager.RyuApp):
    def __init__(self, *args, **kwargs):
        super(SDNIntelligentApp, self).__init__(*args, **kwargs)
     
    ###########################################################################
    # 核心转发与路径计算功能
    ###########################################################################
    @set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)
    def _packet_in_handler(self, ev):
        """处理数据包进入事件,解析多种协议并转发或丢弃,存储内存,数据库,采集对接AI都行"""
    ip = eth
    src_ip
    dec_ip
    src_port
    dec_port
    pass        

    ###########################################################################
    # 新增:处理交换机连接事件,安装默认流表
    #当有新的交换机连接到系统时,会自动触发这个功能。它会给这个新交换机设置一个 "默认规则",
        #简单说就是让所有经过这个交换机的数据包,都先送到控制器那里去处理,而不是自己直接转发。    
    ###########################################################################
    @set_ev_cls(ofp_event.EventOFPSwitchFeatures, CONFIG_DISPATCHER)
    def switch_features_handler(self, ev):
        """交换机连接时安装默认流表,将所有数据包发送到控制器"""
    pass    


class SDNSecuritySystem:
    """基于SDN系统核心逻辑"""
    def __init__(self, controller):
        # 保存控制器引用
        self.controller = controller

class SDNAPP():
    def __init__(self, *args, **kwargs):    
    # 初始化安全系统核心组件
        self.security_system = SDNSecuritySystem(self)

    @set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)
    def _packet_in_handler(self, ev):
        """处理数据包进入事件,解析多种协议并转发或丢弃,存储内存,数据库,采集对接AI都行"""
    ip = eth
    src_ip
    dec_ip
    src_port
    dec_port
    pass        

    @set_ev_cls(ofp_event.EventOFPSwitchFeatures, CONFIG_DISPATCHER)
    def switch_features_handler(self, ev):
        """交换机连接时安装默认流表,将所有数据包发送到控制器"""
    pass

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值