sdn

2019 SDN上机第7次作业

寵の児 提交于 2019-12-14 19:43:33
2019 SDN上机第7次作业 1.作业要求: 1.根据P4教程,将basic和basic_tunnel两个案例程序补充完整,成功运行 2.说明案例程序的编译执行流程 3.提交你对P4的认识和体会 4.完成教程的其他任意一个案例(选做) 2.具体操作步骤与截图说明(补充代码和执行流程穿插在内) (1)根据P4教程,将basic和basic_tunnel两个案例程序补充完整,成功运行: basic.p4补充完整后的代码: /* -*- P4_16 -*- */ #include <core.p4> #include <v1model.p4> const bit<16> TYPE_IPV4 = 0x800; /************************************************************************* *********************** H E A D E R S *********************************** *************************************************************************/ typedef bit<9> egressSpec_t; typedef bit<48> macAddr_t; typedef bit<32

2019 SDN上机第7次作业

牧云@^-^@ 提交于 2019-12-14 11:38:47
1.根据P4教程,将basic和basic_tunnel两个案例程序补充完整,成功运行。 basic.py: #include <core.p4> #include <v1model.p4> const bit<16> TYPE_IPV4 = 0x800; /************************************************************************* *********************** H E A D E R S *********************************** *************************************************************************/ typedef bit<9> egressSpec_t; typedef bit<48> macAddr_t; typedef bit<32> ip4Addr_t; header ethernet_t { macAddr_t dstAddr; macAddr_t srcAddr; bit<16> etherType; } header ipv4_t { bit<4> version; bit<4> ihl; bit<8> diffserv; bit<16> totalLen; bit<16

那些让传统网络捉襟见肘的新需求

放肆的年华 提交于 2019-12-14 11:12:25
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 博主一直相信一件事情:任何互联网底层的创新都是自顶向下的。SDN的兴起不是因为Martin Casado脑洞大开才主张要控制和转发平面分离。而是因为某些来自于互联网顶层的应用需要对网络设备进行集中控制,集中控制最好的方式正好是控制和转发平面分离。 在这篇文章里,博主会列举那些在传统网络当中不太容易实现的刚性需求。在日后的文章中,博主会展开分析SDN是如何满足这些刚性需求的。欢迎大家百家争鸣,查漏补缺。 刚性需求一:省钱!省钱!省钱! 传统网络的开销大概分为两部分:购买成本和运营成本。购买成本 = 设备本身 + 售后服务。那些知名大厂的网络设备和售后服务都是明码标价的。问题是,我们买了设备,为啥还要售后服务呢?原因就在于传统的网络设备比较复杂,特别是它上面的软件协议栈。遇到问题怎么办?售后服务来解决。 比较具有讽刺意味的是:售后服务的价格竟往往比设备本身昂贵很多,这让博主颇为不解。如果不购买售后服务,那设备本身的价格又如何呢?单纯的硬件已经是白菜价了,值钱的是硬件上面的软件协议栈。分解到这里,我们已经看出了问题:因为这个庞杂的软件协议栈,我们花了更多的钱买硬件设备,也因为这个庞杂的协议栈,我们甚至需要花更多的钱买所谓的售后服务。 对于运营商,这个软件协议栈也许还有存在的意义,拓扑多变,邻居关系复杂

is it possible to use OSGI with spring boot microservices? Please tell me in detail

北城余情 提交于 2019-12-13 03:15:00
问题 I want to use ODL framework for SDN development, in that internally OSGI framework is used to (karaf). Apart from that i want to use spring boot and spring cloud to achieve cloud services also. It is possible to use these all framework as a single unit. and how we can achieve this please tell. 回答1: This questions is somewhat overly broad and generic, but I'll try to answer it anyway making two assumptions: If you want to use Spring Boot / Cloud "in-process", that is within ODL/ Karaf, then

Mininet Routing not working

回眸只為那壹抹淺笑 提交于 2019-12-13 01:55:18
问题 I have a problem with Mininet topology. I am trying to make a ping between h3 and h4 . They are connected to same switch s4 . But they can not ping, they are in different subnet, so i am trying to make a flow table for s4 but with no success. Here is image of my topology : after running Mininet I set up this: h3 route add default gw 30.0.0.254 h3-eth0 h3 arp -s 30.0.0.254 00:00:00:00:33:33 h4 route add default gw 40.0.0.254 h4-eth0 h4 arp -s 40.0.0.254 00:00:00:00:44:44 Then I populate s4

get_all_link(self) outputting all possible LINKs for a topo

一世执手 提交于 2019-12-12 04:38:06
问题 I have topo with 4 switches and 4 hosts. The switches construct a loop. My goal is to learn the topology of the network when switches are connected to the controller. The problem is that the function get_all_links() returns all of the possible links or at least something that doesn't make sense. I call that function when a port_modify event is fired. Here is the code I use to construct the topo: <Removed Imports to save space> class Simple3PktSwitch(Topo): """Simple topology example.""" def _

Is routing processor a software or hardware?

无人久伴 提交于 2019-12-11 14:52:22
问题 I am reading Network Layer in 'Computer Networking: A top-down approach'. It says, Data plane operates at the nanosecond time scale and is implemented in hardware. Whereas router's control functions operate at the millisecond or second timescale. These control plane functions are implemented in software and execute on the routing processor (typically a traditional CPU). Now my question is about routing processor. Is routing processor (or traditional CPU) a hardware or software? 回答1: Routers

SDN第六次上机作业

老子叫甜甜 提交于 2019-12-10 19:31:55
1.实验拓扑 实验拓扑图如下: 搭建代码如下: 创建py脚本文件,并编写代码,如下: class MyTopo(Topo): def __init__(self): # initilaize topology Topo.__init__(self) # add hosts and switches h1 = self.addHost('h1') h2 = self.addHost('h2') h3 = self.addHost('h3') h4 = self.addHost('h4') h5 = self.addHost('h5') h6 = self.addHost('h6') s1 = self.addSwitch('s1') s2 = self.addSwitch('s2') # add links self.addLink(h1, s1, 1, 1) self.addLink(h2, s1, 1, 2) self.addLink(h3, s1, 1, 3) self.addLink(s1, s2, 4, 4) self.addLink(h4, s2, 1, 1) self.addLink(h5, s2, 1, 2) self.addLink(h6, s2, 1, 3) topos = {'mytopo': (lambda: MyTopo())} 使用如下命令生成拓扑

2019 SDN上机第6次作业

扶醉桌前 提交于 2019-12-10 18:52:36
2019 SDN上机第6次作业 1.实验拓扑 实验拓扑 要求:使用Python脚本完成拓扑搭建,并连接ryu控制器 (1)python拓扑代码 from mininet.topo import Topo class MyTopo(Topo): def __init__(self): # initilaize topology Topo.__init__(self) # add hosts and switches h1 = self.addHost('h1') h2 = self.addHost('h2') h3 = self.addHost('h3') h4 = self.addHost('h4') h5 = self.addHost('h5') h6 = self.addHost('h6') s1 = self.addSwitch('s1') s2 = self.addSwitch('s2') # add links self.addLink(h1, s1, 1, 1) self.addLink(h2, s1, 1, 2) self.addLink(h3, s1, 1, 3) self.addLink(s1, s2, 4, 4) self.addLink(h4, s2, 1, 1) self.addLink(h5, s2, 1, 2) self.addLink(h6, s2,

2019 SDN上机第6次作业

情到浓时终转凉″ 提交于 2019-12-10 10:40:55
2019 SDN上机第6次作业 1.实验拓扑 (1)实验拓扑 (2)使用Python脚本完成拓扑搭建 from mininet.topo import Topo from mininet.net import Mininet from mininet.node import RemoteController,CPULimitedHost from mininet.link import TCLink from mininet.util import dumpNodeConnections class MyTopo(Topo): def __init__(self): # initilaize topology Topo.__init__(self) # add hosts and switches h1 = self.addHost('h1') h2 = self.addHost('h2') h3 = self.addHost('h3') h4 = self.addHost('h4') h5 = self.addHost('h5') h6 = self.addHost('h6') s1 = self.addSwitch('s1') s2 = self.addSwitch('s2') # add links self.addLink(h1, s1, 1, 1) self