当前位置: 首页 > news >正文

2-1SDN(软件定义网络)环境测试实验(无默认控制器)-静态流表

控制器是为了更好集中控制网络的行为,当然在实际中我们可以根据需要选择是否选择控制器,或是结合ovs交换机的特点进行针对性的转发行为设置(功能需要书写代码进行软件定义),转发功能需要手工添加流表才能实现
如:topo_36.py

#自定义流表,无控制器,交换机将无法从控制器中自学习到流表,需要手动往交换机中添加流表才能使得连接在同一个交换机中的两个主机之间互相通信topo_36.py
from mininet.net import Mininet
from mininet.node import OVSSwitch
from mininet.cli import CLIdef create_topology():net = Mininet(switch=OVSSwitch)# 添加交换机s1 = net.addSwitch('s1')# 添加主机h1 = net.addHost('h1')h2 = net.addHost('h2')# 添加链路net.addLink(h1, s1,port2=1)net.addLink(h2, s1,port2=2)net.start()# 在交换机上下发流表s1.cmd('ovs-ofctl add-flow s1 in_port=1,actions=output:2')s1.cmd('ovs-ofctl add-flow s1 in_port=2,actions=output:1')# 在主机之间进行ping测试#h1.cmd('ping -c 3', h2.IP())# 进入Mininet的命令行界面CLI(net)net.stop()if __name__ == '__main__':create_topology()

在这里插入图片描述
注意,本文涉及的流表设置是采用cmd命令,流表与预定义的流数据行为相匹配,因此需要与网络拓扑中的端口连接相对应。一般情况下,在用net模块创建网络环境时,增加连接时如果没有制定连接的端口,则按照默认的代码先后顺序进行编号,如本文代码中的 net.addLink(h1, s1,port2=1)指定h1连接在s1的1号端口,代码中采用的拓扑如图1
在这里插入图片描述

http://www.lryc.cn/news/304232.html

相关文章:

  • 飞天使-k8s知识点22-kubernetes实操7-ingress
  • SwiftUI 集合视图(Grid)拖放交换 Cell 的极简实现
  • MATLAB中gtext函数用法
  • 迁移SVN和GIT的云端数据
  • 算法--动态规划(背包问题)
  • Word 文档中的图片另存为 .jpg 格式图片
  • 【C++练级之路】【Lv.8】【STL】list类的模拟实现
  • 【右一的电子笔记】全导航,持续更新...
  • 关于前端的console的方法的收集
  • 大工程 从0到1 数据治理 数仓篇(sample database classicmodels _No.7)
  • phpcms v9敏感词内容替换
  • 浏览器---浏览器/http相关面试题
  • java 中开源的html解析库Jsoup 简单例子
  • Java程序中为什么要使用StringBuilder
  • 【软件架构】02-复杂度来源
  • 怎样让MCU/SFU视频会议ovmedia 接入GB28281监控视频参会互动
  • Spring Boot打war包部署到Tomcat,访问页面404 !!!
  • Docker Desktop 4.27.1 Windows 10 安装 教程
  • 【ARMv8M Cortex-M33 系列 8 -- RT-Thread 移植 posix pthread】
  • fastApi笔记08-Cookie和Header
  • 解决pycharm中PIL安装失败
  • 数据结构哈希表
  • [C#]winform使用引导APSF和梯度自适应卷积增强夜间雾图像的可见性算法实现夜间雾霾图像的可见度增强
  • 【Django】Django自定义后台表单——对一个关联外键对象同时添加多个内容
  • 迷茫?没有努力的方向?没有耐心去坚持?精选书籍推荐2
  • MySQL报错:sql_mode=only_full_group_by解决方法
  • SQL表连接方式
  • 5 原型模式 Prototype
  • springboot java 项目连接es
  • MySQL学习笔记3: MySQL数据库基础