环境: ubuntu-20.04.3-desktop-amd64
sudo apt-get update
#sudo pip install --upgrade pip #更新pip
sudo git clone https://ghproxy.com/https://github.com/osrg/ryu.git #下载RYU源码代理加速
cd ryu #进入ryu
sudo pip install -r tools/pip-requires #安装ryu所需要的依赖软件
sudo python3 setup.py install #使用python3运行setup.py文件,安装ryu
ryu --version #查看ryu版本
ryu-manager #运行ryu
git clone https://ghproxy.com/https://github.com/mininet/mininet.git #获取Mininet的源码 代理加速 原网址 https://github.com/mininet/mininet.git
cd mininet
cd util
sudo ./install.sh -n3v
sudo mn --test pingall ##测试是否成功
网络创建启动参数
--topo #内部topo i.e., tree linear single
--custom ##自定义(custom)拓扑 sudo mn --custom file.py --toop mytopo
#Python编写文件file.py ,执行此脚本即可创建定义的拓扑,–custom与–topo联用
--switch #定义mininet要使用的交换机(默认使用ovsk,即OpenVSwitch交换机)
--controller #定义要使用的控制器,如果没有指定使用mininet中默认的控制器 sudo mn --controller=remote,--ip=[controller IP],--port =[port]
--mac #自动设置设备的mac地址
#让MAC地址易读,即 设置交换机的MAC、主机的MAC及IP地址从小到大排序,且设置简单唯一,不仅让机器容易##获取,也容易让肉眼很容易识别其ID。
1)树形拓扑,后面的参数“2”表示2层交换机,“3”表示每个节点连接的下一层的节点数目。
sudo mn --topo=tree,2,3 --controller=remote
(2)线性拓扑 每一个交换价链接一个主机,下面 有5个相连的交换机,没挂一个主机
sudo mn --topo=linear,5 --controller=remote #//(h1,s1)(h2,s2)(h3,s3)(h4,s4)
单一交换机拓扑
sudo mn --topo=single,5 --controller=remote
外部运行参数
-c 清除配置信息 # mn -c
-h 帮助
py help(s1)
py help(h1)
py dir(s1) //查看有哪些函数是可以使用的
py h1.setIP('10.0.0.5',24) // 给h1设置IP地址
ryu-manager simple_switch_13.py ofctl_rest.py
启动参数
ryu-manager 启动ryu, 如果不加任何参数,则默认启动ofphandler模块。
ryu-manager –h 查看帮助信息
--verbose 打印详细debug信息
--version 显示程序的版本号并退出
--observe-links 自动下发LLDP,用于拓扑发现
--ofp-tcp-listen-port 修改ryu的openflow tcp监听端口
说明:若在启动RYU时使用了–observe-links参数,则RYU会收到非常大量的包含LLDP协议报文的PacketIn消息如果不对这一PacketIn消息进行特殊处理的话,很容易导致Ryu奔溃,无法正常工作!!!所以,为了避免这一问题,当你计划使用–observe-links启动Ryu时,在你处理PacketIn消息的函数开头,建议包含如下代码,即可解决问题:
if eth.ethertype == ether_types.ETH_TYPE_LLDP:
# ignore lldp packet
return
更多ryu使用介绍参考 https://blog.csdn.net/weixin_42094589/article/details/104160571