RYU+mininet——RYU

1. 使用RYU做mininet的控制器

1.1 RYU介绍与安装

RYU是一款基于python的控制器,你可用Ryu实现各种想要实现的网络功能,它可以下发或接收流表进行各种路由运算。

  • 建议使用高版本的Ubuntu系统安装ryu,否则会有各种错误,安装过程比较简单,如下:
apt install gcc libffi-dev libssl-dev libxml2-dev libxslt1-dev zlib1g-dev
pip3 install ryu
  • 安装完成之后查看版本号:
ryu --version

如果正确输出版本信息,则说明安装成功。
.

1.2 使用RYU做mininet的控制器

  • 先启动mininet,设置为远程控制器,配置IP和端口:
sudo mn --controller=remote,ip=127.0.0.1,port=6653

注:从OpenFlow 1.3.3 (EXT-133)版本以后,IANA 分配给 OpenFlow 的端口号是 6653,但有些应用仍然使用6633,所以设置监听端口为6653和6633都行

  • 进入ryu/ryu/app目录,然后启动相应模块,
ryu-manager --verbose simple_switch_13.py ofctl_rest.py rest_topology.py

simple_switch_13.py模块是一个简单的交换机,是openflow1.3的交换机。后面的两个文件是为了进行restapi的调用加载的,方便直接用浏览器查看。

在浏览器中调用ryu的api

  • 得到某台交换机状态信息

http://127.0.0.1:8080/stats/desc/1

{
   
   
  "1":(DPID) 
  {
   
   
    "dp_desc": "None",(datapath的描述信息)
    "sw_desc": "2.0.2",(软件机的描述信息)
    "hw_desc": "Open vSwitch",(交换机描述信息)
    "serial_num": "None",(序列号)
    "mfr_desc": "Nicira, Inc."(生产商信息)
  }
}
  • 查看交换机当前的流表:

http://127.0.0.1:8080/stats/flow/1

"1": [
    {
   
   
      "actions": [ "OUTPUT:3" ],(动作,转发到3 号端口)
      "idle_timeout": 0,(空闲后存活时间)
      "cookie": 0,
      "packet_count": 2,(包计数)
      "hard_timeout": 
### 安装 Ryu SDN 框架 Ryu 是一个开源的 Python 库,用于实现基于 OpenFlow 的软件定义网络 (SDN) 控制器。以下是关于如何安装 Ryu 框架的相关说明。 #### 使用 Git 进行克隆 可以通过以下命令从官方 GitHub 存储库中获取 Ryu 源码: ```bash git clone git://github.com/osrg/ryu.git ``` 需要注意的是,在某些情况下,Git 可能由于网络原因无法正常访问存储库[^2]。如果遇到此问题,可以尝试更换为 HTTPS 协议地址: ```bash git clone https://github.com/osrg/ryu.git ``` #### 使用 pip 工具安装 另一种更简便的方式是利用 `pip` 来安装 Ryu 框架。执行如下命令即可完成安装过程: ```bash pip install ryu ``` 该方式适用于大多数标准环境中,并能够自动处理依赖项管理[^3]。 #### 验证安装是否成功 为了确认 Ryu 是否已正确安装并可用,请运行以下测试脚本以验证其功能状态: ```python from ryu.base import app_manager print(app_manager.lookup_service_brick('rest_conf_switch')) ``` 当上述代码无误地返回预期对象实例时,则表明 Ryu 成功部署于当前系统之上[^1]。 #### 解决 MininetRyu 之间的兼容性问题 在实际操作过程中,可能会碰到 Mininet 无法顺利连接到远程 Ryu 控制器的情况。这通常是因为两者所使用的 OpenFlow 版本存在差异所致。解决办法之一便是确保双方均采用一致协议版本——例如 OpenFlow 1.3 ——并通过相应参数调整来达成匹配目的[^4]: - **启动 Ryu 控制器** ```bash ryu-manager ryu/ryu/app/simple_switch_13.py ``` - **启动 Mininet 并指定控制器 IP 地址以及端口号的同时声明支持特定 OFP 版本** ```bash mn --controller=remote,ip=<CONTROLLER_IP>,port=6653 --switch ovsk,protocols=OpenFlow13 ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值