ryu + mininet安装

安装ryu

环境: 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

安装 mininet

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   ##测试是否成功

  • -n 安装Mininet依赖和核心文件
  • -3 安装OpenFlow 1.3版本
  • -v 安装Open vswitch
  • -a 默认的安装全部特性 i.e., sudo ./install.sh -a 通常失败

mininet 常用命令

  • help 打印帮助信息
  • nodes 查看全部节点信息
  • xterm 打开xterm窗口 i.e., xterm h1/s1
  • net 查看网络拓扑信息
  • ping h1 ping h2 ,测试连通性
  • dump 输出节点信息
  • iperf 指定节点间TCP测试 i.e., iperf h1 h2
  • iperdudp 指定节点间UDP测试,可指定发送速率
  • py 运行python语句
  • sh 执行shell脚本
  • host cmd 在主机中执行命令,例:h1 ifconfig exit/quit 退出Mininet

创建topology

网络创建启动参数

--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 常用命令

  • 内部控制器程序在 /ryu/ryu/app 进入目录执行相应的控制器程序
ryu-manager simple_switch_13.py ofctl_rest.py 
  • simple_switch_13.py —> openflow1.3 交换机实现
  • ofctl_rest.py—> rest api

启动参数

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

你可能感兴趣的:(sdn,python,linux,开发语言)