Exemplo n.º 1
0
    def _create_openstack_api_endpoints(self):
        self.api1 = OpenstackApiEndpoint("172.31.255.1", 6001)
        self.api1.connect_dc_network(self)
        self.api1.connect_datacenter(self.dc1)

        self.api2 = OpenstackApiEndpoint("172.31.255.1", 6002)
        self.api2.connect_dc_network(self)
        self.api2.connect_datacenter(self.dc2)
Exemplo n.º 2
0
def create_topology1():
    # create topology
    net = DCNetwork(controller=RemoteController, monitor=False, enable_learning=True)
    # add datecenters
    dc1 = net.addDatacenter("dc1")

    # add REST control endpoints to datacenter (to be used with son-emu-cli)
    rapi1 = RestApiEndpoint("0.0.0.0", 5001)
    rapi1.connectDCNetwork(net)
    rapi1.connectDatacenter(dc1)
    rapi1.start()
    
    # add OpenStack/like interface endpoints to dc1
    api1 = OpenstackApiEndpoint("0.0.0.0", 6001)
    # connect PoPs
    api1.connect_datacenter(dc1)
    # connect network
    api1.connect_dc_network(net)
    # start
    api1.start()

    # start the emulation platform
    net.start()
    net.CLI()
    net.stop()
Exemplo n.º 3
0
def create_topology():
    net = DCNetwork(monitor=False, enable_learning=True)

    dc1 = net.addDatacenter("dc1")
    # add OpenStack-like APIs to the emulated DC
    api1 = OpenstackApiEndpoint("0.0.0.0", 6001)
    api1.connect_datacenter(dc1)
    api1.start()
    api1.connect_dc_network(net)
    # add the command line interface endpoint to the emulated DC (REST API)
    rapi1 = RestApiEndpoint("0.0.0.0", 5001)
    rapi1.connectDCNetwork(net)
    rapi1.connectDatacenter(dc1)
    rapi1.start()
    
    s1 = net.addSwitch('s1')
    s2 = net.addSwitch('s2')
    s3 = net.addSwitch('s3')

    h1 = net.addHost('h1')
    h2 = net.addHost('h2')
    h3 = net.addHost('h3')

    net.addLink(h1, s1)
    net.addLink(h2, s2)
    net.addLink(h3, s3)
    #create a switch triangle
    net.addLink(s1, s2)
    net.addLink(s2, s3)
    net.addLink(s1, s3)

    net.start()
    net.CLI()
    # when the user types exit in the CLI, we stop the emulator
    net.stop()
Exemplo n.º 4
0
def create_topology():
    net = DCNetwork(monitor=False, enable_learning=True)

    dc1 = net.addDatacenter("dc1")
    # add OpenStack-like APIs to the emulated DC
    api1 = OpenstackApiEndpoint("0.0.0.0", 6001)
    api1.connect_datacenter(dc1)
    api1.start()
    api1.connect_dc_network(net)
    # add the command line interface endpoint to the emulated DC (REST API)
    rapi1 = RestApiEndpoint("0.0.0.0", 5001)
    rapi1.connectDCNetwork(net)
    rapi1.connectDatacenter(dc1)
    rapi1.start()
    
    s1 = net.addSwitch('s1')
    h1 = net.addHost('h1')
    h2 = net.addDocker('h2',dimage='host:server')
    net.addLink(h1, s1, delay='20ms')
    net.addLink(h2, s1, delay='20ms')
    net.addLink(dc1, s1, delay='20ms')
    
    net.start()
    net.CLI()
    # when the user types exit in the CLI, we stop the emulator
    net.stop()
Exemplo n.º 5
0
def create_topology():
    net = DCNetwork(monitor=False, enable_learning=True)

    dc1 = net.addDatacenter("dc1")
    # add OpenStack-like APIs to the emulated DC
    api1 = OpenstackApiEndpoint("0.0.0.0", 6001)
    api1.connect_datacenter(dc1)
    api1.start()
    api1.connect_dc_network(net)
    # add the command line interface endpoint to the emulated DC (REST API)
    rapi1 = RestApiEndpoint("0.0.0.0", 5001)
    rapi1.connectDCNetwork(net)
    rapi1.connectDatacenter(dc1)
    rapi1.start()

    s1 = net.addSwitch('s1')
    d1 = net.addDocker('d1', ip='10.100.0.1', dimage="ubuntu:trusty")
    d2 = net.addDocker('d2', ip='10.100.0.2', dimage="ubuntu:trusty")
    net.addLink(s1, d1)
    net.addLink(s1, d2)
    net.addLink(s1, dc1)

    net.start()
    net.CLI()
    # when the user types exit in the CLI, we stop the emulator
    net.stop()
 def create_topology(self):
     self.net = DCNetwork(monitor=False, enable_learning=True)
     self.dc1 = self.net.addDatacenter("dc1")
     self.dc2 = self.net.addDatacenter("dc2")
     self.net.addLink(self.dc1, self.dc2, cls=TCLink, delay="50ms")
     # add OpenStack-like APIs to the emulated DC
     self.api1 = OpenstackApiEndpoint("0.0.0.0", 6001)
     self.api1.connect_datacenter(self.dc1)
     self.api1.connect_dc_network(self.net)
     self.api2 = OpenstackApiEndpoint("0.0.0.0", 6002)
     self.api2.connect_datacenter(self.dc2)
     self.api2.connect_dc_network(self.net)
     # add the command line interface endpoint to the emulated DC (REST API)
     self.rapi1 = RestApiEndpoint("0.0.0.0", 5001)
     self.rapi1.connectDCNetwork(self.net)
     self.rapi1.connectDatacenter(self.dc1)
     self.rapi1.connectDatacenter(self.dc2)
Exemplo n.º 7
0
def create_topology(httpmode=False):
    net = DCNetwork(monitor=False, enable_learning=True)

    DC = net.addDatacenter("DC")

    # add OpenStack-like APIs to the emulated DC
    api1 = OpenstackApiEndpoint("0.0.0.0", 6001)
    api1.connect_datacenter(DC)
    api1.start()
    api1.connect_dc_network(net)

    # add the command line interface endpoint to the emulated DC (REST API)
    rapi1 = RestApiEndpoint("0.0.0.0", 5001)
    rapi1.connectDCNetwork(net)
    rapi1.connectDatacenter(DC)
    rapi1.start()

    #Generation Switches
    s1 = net.addSwitch('s1')
    s2 = net.addSwitch('s2')
    s3 = net.addSwitch('s3')

    #Generation Hosts
    S = createHost(httpmode, net, 'S')
    GI = createGW(httpmode, net, 'GI')
    GFA = createGW(httpmode, net, 'GFA')
    DVA = createDV(httpmode, net, 'DVA')

    #Generation Links
    net.addLink(S, s1)
    net.addLink(GI, s2)
    net.addLink(GFA, s3)
    net.addLink(DVA, s3)
    net.addLink(s1, s2)
    net.addLink(s2, s3)
    net.addLink(DC, s3)

    #Run Services (in order)
    if httpmode:
        S.cmd("startup --local_ip 10.0.0.1 --local_port 8080 --local_name srv")
        GI.cmd(
            "startup  --local_ip 10.0.0.2 --local_port 8181 --local_name gwi --remote_ip 10.0.0.1 --remote_port 8080 --remote_name srv"
        )
        GFA.cmd(
            "startup  --local_ip 10.0.0.3 --local_port 8282 --local_name gwfa --remote_ip 10.0.0.2 --remote_port 8181 --remote_name gwi"
        )
        DVA.cmd(
            "startup  --local_ip 10.0.0.4 --local_port 8888 --local_name dva --remote_ip 10.0.0.3 --remote_port 8282 --remote_name gfa --send_period 3000"
        )

    #Do not remove
    net.start()
    net.CLI()
    # when the user types exit in the CLI, we stop the emulator
    net.stop()
Exemplo n.º 8
0
def create_topology():
    net = DCNetwork(monitor=False, enable_learning=True)

    dc1 = net.addDatacenter("dc1")
    # add OpenStack-like APIs to the emulated DC
    api1 = OpenstackApiEndpoint("0.0.0.0", 6001)
    api1.connect_datacenter(dc1)
    api1.start()
    api1.connect_dc_network(net)
    # add the command line interface endpoint to the emulated DC (REST API)
    rapi1 = RestApiEndpoint("0.0.0.0", 5001)
    rapi1.connectDCNetwork(net)
    rapi1.connectDatacenter(dc1)
    rapi1.start()

    Serv = net.addDocker('Serv',
                         ip='10.0.0.200',
                         dimage=image,
                         dcmd="sh ./server.sh")
    GI = net.addDocker('GI', ip='10.0.0.201', dimage=image, dcmd="sh ./gi.sh")
    GF1 = net.addDocker('GF1',
                        ip='10.0.0.202',
                        dimage=image,
                        dcmd="sh ./gf1.sh")
    GF2 = net.addDocker('GF2',
                        ip='10.0.0.203',
                        dimage=image,
                        dcmd="sh ./gf2.sh")
    GF3 = net.addDocker('GF3',
                        ip='10.0.0.204',
                        dimage=image,
                        dcmd="sh ./gf3.sh")

    s1 = net.addSwitch('s1')
    s2 = net.addSwitch('s2')

    net.addLink(Serv, s1)
    net.addLink(GI, s1)
    net.addLink(s1, s2, cls=TCLink, delay='100ms', bw=1)
    net.addLink(GF1, s2)
    net.addLink(GF2, s2)
    net.addLink(GF3, s2)
    net.addLink(dc1, s2)

    net.start()

    net.ping([GF1, GI])
    net.ping([GF2, GI])
    net.ping([GF3, GI])
    net.ping([Serv, GI])

    net.CLI()

    net.stop()
Exemplo n.º 9
0
    def _create_openstack_api_endpoints(self):
        # create
        for i in range(4):  #range the number of DCs created
            self.api_OS.append(OpenstackApiEndpoint("172.31.255.1", 6001 + i))
            self.api_OS[i].connect_dc_network(self)

        self.api_OS[0].connect_datacenter(self.pop1)
        self.api_OS[1].connect_datacenter(self.pop2)
        self.api_OS[2].connect_datacenter(self.pop3)
        self.api_OS[3].connect_datacenter(self.pop4)
Exemplo n.º 10
0
class DaemonTopology(object):
    def __init__(self):
        self.running = True
        signal.signal(signal.SIGINT, self._stop_by_signal)
        signal.signal(signal.SIGTERM, self._stop_by_signal)
        # create and start topology
        self.create_topology()
        self.start_topology()
        self.daemonize()
        self.stop_topology()

    def create_topology(self):
        self.net = DCNetwork(monitor=False, enable_learning=False)
        self.dc1 = self.net.addDatacenter("dc1")
        #self.dc2 = self.net.addDatacenter("dc2")
        #self.net.addLink(self.dc1, self.dc2, cls=TCLink, delay="20ms")
        # add OpenStack-like APIs to the emulated DC
        self.api1 = OpenstackApiEndpoint("0.0.0.0", 6001)
        self.api1.connect_datacenter(self.dc1)
        #self.api1.connect_datacenter(self.dc2)
        self.api1.connect_dc_network(self.net)
        # add the command line interface endpoint to the emulated DC (REST API)
        self.rapi1 = RestApiEndpoint("0.0.0.0", 5001)
        self.rapi1.connectDCNetwork(self.net)
        self.rapi1.connectDatacenter(self.dc1)
        #self.rapi1.connectDatacenter(self.dc2)

        self.sdkg1 = SonataDummyGatekeeperEndpoint("0.0.0.0",
                                                   5000,
                                                   deploy_sap=False)
        self.sdkg1.connectDatacenter(self.dc1)
        #self.sdkg1.connectDatacenter(self.dc2)

    def start_topology(self):
        self.api1.start()
        self.rapi1.start()
        self.sdkg1.start()
        self.net.start()

    def daemonize(self):
        print("Daemonizing vim-emu. Send SIGTERM or SIGKILL to stop.")
        while self.running:
            time.sleep(1)

    def _stop_by_signal(self, signum, frame):
        print("Received SIGNAL {}. Stopping.".format(signum))
        self.running = False

    def stop_topology(self):
        self.api1.stop()
        self.rapi1.stop()
        #self.sdkg1.stop()
        self.net.stop()
Exemplo n.º 11
0
def create_topology():
    net = DCNetwork(monitor=False, enable_learning=False)

    dc1 = net.addDatacenter("dc1")

    api1 = OpenstackApiEndpoint("0.0.0.0", 6001)
    api1.connect_datacenter(dc1)
    api1.start()
    api1.connect_dc_network(net)

    net.start()
    net.CLI()
    # when the user types exit in the CLI, we stop the emulator
    net.stop()
Exemplo n.º 12
0
    def createNet(self,
                  nswitches=0,
                  ndatacenter=0,
                  nhosts=0,
                  ndockers=0,
                  autolinkswitches=False,
                  controller=Controller,
                  **kwargs):
        """
        Creates a Mininet instance and automatically adds some
        nodes to it.

        Attention, we should always use Mininet's default controller
        for our tests. Only use other controllers if you want to test
        specific controller functionality.
        """
        self.net = DCNetwork(controller=controller, **kwargs)
        for i in range(0, ndatacenter):
            self.api.append(OpenstackApiEndpoint("0.0.0.0", 15000 + i))

        # add some switches
        # start from s1 because ovs does not like to have dpid = 0
        # and switch name-number is being used by mininet to set the dpid
        for i in range(1, nswitches + 1):
            self.s.append(self.net.addSwitch('s%d' % i))
        # if specified, chain all switches
        if autolinkswitches:
            for i in range(0, len(self.s) - 1):
                self.net.addLink(self.s[i], self.s[i + 1])
            self.net.addLink(self.s[2],
                             self.s[0])  # link switches s1, s2 and s3

        # add some data centers
        for i in range(0, ndatacenter):
            self.dc.append(
                self.net.addDatacenter('dc%d' % i, metadata={"unittest_dc":
                                                             i}))
        self.net.addLink(self.dc[0].switch,
                         self.s[0])  # link switches dc0.s1 with s1
        # connect data centers to the endpoint
        for i in range(0, ndatacenter):
            self.api[i].connect_datacenter(self.dc[i])
            self.api[i].connect_dc_network(self.net)
        # add some hosts
        for i in range(0, nhosts):
            self.h.append(self.net.addHost('h%d' % i))
        # add some dockers
        for i in range(0, ndockers):
            self.d.append(self.net.addDocker('d%d' % i,
                                             dimage="ubuntu:trusty"))
Exemplo n.º 13
0
def create_topology(httpmode=False):
    net = DCNetwork(monitor=False, enable_learning=True)

    DC = net.addDatacenter("DC")

    # add OpenStack-like APIs to the emulated DC
    api1 = OpenstackApiEndpoint("0.0.0.0", 6001)
    api1.connect_datacenter(DC)
    api1.start()
    api1.connect_dc_network(net)

    # add the command line interface endpoint to the emulated DC (REST API)
    rapi1 = RestApiEndpoint("0.0.0.0", 5001)
    rapi1.connectDCNetwork(net)
    rapi1.connectDatacenter(DC)
    rapi1.start()

    s1 = net.addSwitch('s1')
    s2 = net.addSwitch('s2')
    s3 = net.addSwitch('s3')
    s4 = net.addSwitch('s4')

    S = net.addDocker("S", dimage="host:server")
    GI = net.addDocker("GI", dimage="host:gateway")
    GFA = createHost(httpmode, net, 'GFA')
    GFB = createHost(httpmode, net, 'GFB')
    GFC = createHost(httpmode, net, 'GFC')

    net.addLink(S, s1)
    net.addLink(GI, s2)
    net.addLink(GFA, s3)
    net.addLink(GFB, s3)
    net.addLink(GFC, s4)

    net.addLink(s1, s2)
    net.addLink(s2, s3)
    net.addLink(s2, s4)
    net.addLink(DC, s2)

    #Do not remove
    net.start()
    net.CLI()
    # when the user types exit in the CLI, we stop the emulator
    net.stop()
Exemplo n.º 14
0
def create_topology():
    net = DCNetwork(monitor=False, enable_learning=False)

    dc1 = net.addDatacenter("dc1")
    # add OpenStack-like APIs to the emulated DC
    api1 = OpenstackApiEndpoint("0.0.0.0", 6001)
    api1.connect_datacenter(dc1)
    api1.start()
    api1.connect_dc_network(net)
    # add the command line interface endpoint to the emulated DC (REST API)
    rapi1 = RestApiEndpoint("0.0.0.0", 5001)
    rapi1.connectDCNetwork(net)
    rapi1.connectDatacenter(dc1)
    rapi1.start()

    net.start()
    net.CLI()
    # when the user types exit in the CLI, we stop the emulator
    net.stop()
Exemplo n.º 15
0
def create_topology(httpmode=False, port_default=8888, device_rate=1500):
    net = DCNetwork(monitor=False, enable_learning=True)

    DC = net.addDatacenter("DC")

    # add OpenStack-like APIs to the emulated DC
    api1 = OpenstackApiEndpoint("0.0.0.0", 6001)
    api1.connect_datacenter(DC)
    api1.start()
    api1.connect_dc_network(net)

    # add the command line interface endpoint to the emulated DC (REST API)
    rapi1 = RestApiEndpoint("0.0.0.0", 5001)
    rapi1.connectDCNetwork(net)
    rapi1.connectDatacenter(DC)
    rapi1.start()

    #Generation Switch
    s1 = net.addSwitch('s1')
    s2 = net.addSwitch('s2')
    s3 = net.addSwitch('s3')
    s4 = net.addSwitch('s4')

    S = createHost(httpmode, net, 'S', "host:server")
    GI = createHost(httpmode, net, 'GI', "host:gateway")
    GFA = createHost(httpmode, net, 'GFA', "host:gwfinal")
    GFB = createHost(httpmode, net, 'GFB', "host:gwfinal")
    GFC = createHost(httpmode, net, 'GFC', "host:gwfinal")

    #Genration of link
    net.addLink(S, s1)
    net.addLink(GI, s2)
    net.addLink(GFA, s3)
    net.addLink(GFB, s3)
    net.addLink(GFC, s4)

    net.addLink(s1, s2)
    net.addLink(s2, s3)
    net.addLink(s2, s4)
    net.addLink(DC, s4)

    #Do not remove
    net.start()

    #Run gateways and devices
    print("Starting Server node")
    S.cmd("startup --local_ip 10.0.0.1 --local_port 8888 --local_name srv")
    print("Waiting for server node to complete startup")
    time.sleep(2)
    print("Starting GI node")
    GI.cmd(
        "startup --local_ip 10.0.0.2 --local_port 8888 --local_name gwi --remote_ip 10.0.0.1 --remote_port 8888 --remote_name srv"
    )
    print("Waiting for GI node to complete startup")
    time.sleep(2)
    print("Starting GFA node")
    GFA.cmd(
        "startup --local_ip 10.0.0.3 --local_port 8888 --local_name gwfa --remote_ip 10.0.0.2 --remote_port 8888 --remote_name gwi"
    )
    print("Waiting for GFA node to complete startup")
    time.sleep(2)
    print("Starting GFA devices")
    GFA.cmd("start_devices 10.0.0.3 9001 {0} gwfa {1}".format(
        port_default, device_rate))
    print("Starting GFB node")
    GFB.cmd(
        "startup --local_ip 10.0.0.4 --local_port 8888 --local_name gwfb --remote_ip 10.0.0.2 --remote_port 8888 --remote_name gwi"
    )
    print("Waiting for GFB node to complete startup")
    time.sleep(2)
    print("Starting GFB devices")
    GFB.cmd("start_devices 10.0.0.4 9001 {0} gwfb {1}".format(
        port_default, device_rate))
    print("Starting GFC node")
    GFC.cmd(
        "startup --local_ip 10.0.0.5 --local_port 8888 --local_name gwfc --remote_ip 10.0.0.2 --remote_port 8888 --remote_name gwi"
    )
    print("Waiting for GFC node to complete startup")
    time.sleep(2)
    print("Starting GFC devices")
    GFC.cmd("start_devices 10.0.0.5 9001 {0} gwfc {1}".format(
        port_default, device_rate))
    #Start the command line
    net.CLI()
    # when the user types exit in the CLI, we stop the emulator
    net.stop()
Exemplo n.º 16
0
class Topology(DCNetwork):
    def __init__(self):
        super(Topology, self).__init__(monitor=False, enable_learning=True)

    def setup_topo(self):
        self._create_dcs()
        # self._create_switches()
        self._create_links()
        self._create_openstack_api_endpoints()
        self._connect_aro()
        # self._create_hostvnf()
        self._create_vnf()

    def _create_dcs(self):
        rm = ARORM(max_cu=32, max_mu=8192)

        self.dc1 = self.addDatacenter("dc1")
        self.dc1.assignResourceModel(rm)

        self.dc2 = self.addDatacenter("dc2")
        self.dc2.assignResourceModel(rm)

    def _create_links(self):
        self.addLink(self.dc1, self.dc2)

    def _create_hostvnf(self):
        self.hostvnf1 = self.dc1.startCompute('hostvnf1',
                                              network=[{
                                                  'id': 'intf1',
                                                  'ip': '10.0.10.1/24'
                                              }],
                                              flavor_name='medium')
        self.hostvnf2 = self.dc2.startCompute('hostvnf2',
                                              network=[{
                                                  'id': 'intf1',
                                                  'ip': '10.0.10.2/24'
                                              }],
                                              flavor_name='medium')

    def _create_vnf(self):
        placement = RoundRobinDC()

        self.vnf1 = placevnf('vnf1',
                             network=[{
                                 'id': 'intf1',
                                 'ip': '10.0.10.1/24'
                             }],
                             flavor_name='medium',
                             placement=placement)
        self.vnf2 = placevnf('vnf2',
                             network=[{
                                 'id': 'intf1',
                                 'ip': '10.0.10.2/24'
                             }],
                             flavor_name='medium',
                             placement=placement)
        self.vnf3 = placevnf('vnf3',
                             network=[{
                                 'id': 'intf1',
                                 'ip': '10.0.10.3/24'
                             }],
                             flavor_name='medium',
                             placement=placement)
        self.vnf4 = placevnf('vnf4',
                             network=[{
                                 'id': 'intf1',
                                 'ip': '10.0.10.4/24'
                             }],
                             flavor_name='medium',
                             placement=placement)

    def _create_openstack_api_endpoints(self):
        self.api1 = OpenstackApiEndpoint("172.31.255.1", 6001)
        self.api1.connect_dc_network(self)
        self.api1.connect_datacenter(self.dc1)

        self.api2 = OpenstackApiEndpoint("172.31.255.1", 6002)
        self.api2.connect_dc_network(self)
        self.api2.connect_datacenter(self.dc2)

    def _connect_aro(self):
        self.aro = Endpoint("0.0.0.0", 2284, DCnetwork=self)
        self.aro.connectVIM(self.dc1)
        self.aro.connectVIM(self.dc2)

    def start_topo(self):
        self.start()
        self.api1.start()
        self.api2.start()
        self.aro.start()

    def stop_topo(self):
        self.aro.stop()
        # self.api1.stop()
        # self.api2.stop()
        self.stop()
Exemplo n.º 17
0
 def _create_openstack_api_endpoints(self):
     # create
     api1 = OpenstackApiEndpoint("131.234.28.69", 6001)
     api2 = OpenstackApiEndpoint("131.234.28.69", 6002)
     api3 = OpenstackApiEndpoint("131.234.28.69", 6003)
     api4 = OpenstackApiEndpoint("131.234.28.69", 6004)
     # connect PoPs
     api1.connect_datacenter(self.pop1)
     api2.connect_datacenter(self.pop2)
     api3.connect_datacenter(self.pop3)
     api4.connect_datacenter(self.pop4)
     # connect network
     api1.connect_dc_network(self)
     api2.connect_dc_network(self)
     api3.connect_dc_network(self)
     api4.connect_dc_network(self)
     # start
     api1.start()
     api2.start()
     api3.start()
     api4.start()
Exemplo n.º 18
0
COUNT = 15

with open('osm_component_startup_%d.csv' % time.time(), 'w') as csvfile:
    fieldnames = [
        'other', 'zookeeper', 'kafka', 'mongo', 'nbi', 'ro_db', 'ro', 'lcm'
    ]
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()

    for i in range(COUNT):
        start = time.time()
        net = DCNetwork(monitor=False, enable_learning=True)
        api = None
        try:
            dc1 = net.addDatacenter("dc1")
            api = OpenstackApiEndpoint("0.0.0.0", 6001)
            api.connect_datacenter(dc1)
            api.connect_dc_network(net)

            s1 = net.addSwitch('s1')

            zookeeper_ip = '10.0.0.96'
            kafka_ip = '10.0.0.97'
            mongo_ip = '10.0.0.98'
            nbi_ip = '10.0.0.99'
            ro_db_ip = '10.0.0.100'
            ro_ip = '10.0.0.101'
            lcm_ip = '10.0.0.102'

            d1 = net.addDocker('d1', dimage='ubuntu:trusty')
Exemplo n.º 19
0
def create_topology():
    net = DCNetwork(monitor=False, enable_learning=True)

    dc1 = net.addDatacenter("dc1")
    # add OpenStack-like APIs to the emulated DC
    api1 = OpenstackApiEndpoint("0.0.0.0", 6001)
    api1.connect_datacenter(dc1)
    api1.start()
    api1.connect_dc_network(net)
    # add the command line interface endpoint to the emulated DC (REST API)
    rapi1 = RestApiEndpoint("0.0.0.0", 5001)
    rapi1.connectDCNetwork(net)
    rapi1.connectDatacenter(dc1)
    rapi1.start()

    info('*** Adding docker containers\n')
    srv = net.addDocker('srv',
                        ip='10.0.0.203',
                        dimage="constancegay/projet_sdci:server")

    time.sleep(5)
    GI = net.addDocker('GI',
                       ip='10.0.0.202',
                       dimage="constancegay/projet_sdci:gateway",
                       environment={
                           "loc_ip": "10.0.0.202",
                           "loc_port": "8181",
                           "loc_name": "GI",
                           "rem_ip": "10.0.0.203",
                           "rem_port": "8080",
                           "rem_name": "srv"
                       })
    time.sleep(5)

    mon = net.addDocker('mon',
                        ip='10.0.0.204',
                        dimage="constancegay/projet_sdci:mon")

    # GFs
    gf1 = net.addDocker('GF1',
                        ip='10.0.0.201',
                        dimage="constancegay/projet_sdci:gateway",
                        environment={
                            "loc_ip": "10.0.0.201",
                            "loc_port": "8282",
                            "loc_name": "GF1",
                            "rem_ip": "10.0.0.202",
                            "rem_port": "8181",
                            "rem_name": "GI"
                        })

    gf2 = net.addDocker('GF2',
                        ip='10.0.0.208',
                        dimage="constancegay/projet_sdci:gateway",
                        environment={
                            "loc_ip": "10.0.0.208",
                            "loc_port": "9004",
                            "loc_name": "GF2",
                            "rem_ip": "10.0.0.202",
                            "rem_port": "8181",
                            "rem_name": "GI"
                        })

    gf3 = net.addDocker('GF3',
                        ip='10.0.0.212',
                        dimage="constancegay/projet_sdci:gateway",
                        environment={
                            "loc_ip": "10.0.0.212",
                            "loc_port": "9008",
                            "loc_name": "GF3",
                            "rem_ip": "10.0.0.202",
                            "rem_port": "8181",
                            "rem_name": "GI"
                        })

    time.sleep(5)
    # ZONE 1 devices
    dev1 = net.addDocker('dev1',
                         ip='10.0.0.205',
                         dimage="constancegay/projet_sdci:dev",
                         environment={
                             "loc_ip": "10.0.0.205",
                             "loc_port": "9001",
                             "loc_name": "dev1",
                             "rem_ip": "10.0.0.201",
                             "rem_port": "8282",
                             "rem_name": "GF1"
                         })
    dev2 = net.addDocker('dev2',
                         ip='10.0.0.206',
                         dimage="constancegay/projet_sdci:dev",
                         environment={
                             "loc_ip": "10.0.0.206",
                             "loc_port": "9002",
                             "loc_name": "dev2",
                             "rem_ip": "10.0.0.201",
                             "rem_port": "8282",
                             "rem_name": "GF1"
                         })
    dev3 = net.addDocker('dev3',
                         ip='10.0.0.207',
                         dimage="constancegay/projet_sdci:dev",
                         environment={
                             "loc_ip": "10.0.0.207",
                             "loc_port": "9003",
                             "loc_name": "dev3",
                             "rem_ip": "10.0.0.201",
                             "rem_port": "8282",
                             "rem_name": "GF1"
                         })

    # ZONE 2 devices
    dev4 = net.addDocker('dev4',
                         ip='10.0.0.209',
                         dimage="constancegay/projet_sdci:dev",
                         environment={
                             "loc_ip": "10.0.0.209",
                             "loc_port": "9005",
                             "loc_name": "dev4",
                             "rem_ip": "10.0.0.208",
                             "rem_port": "9004",
                             "rem_name": "GF2"
                         })
    dev5 = net.addDocker('dev5',
                         ip='10.0.0.210',
                         dimage="constancegay/projet_sdci:dev",
                         environment={
                             "loc_ip": "10.0.0.210",
                             "loc_port": "9006",
                             "loc_name": "dev5",
                             "rem_ip": "10.0.0.208",
                             "rem_port": "9004",
                             "rem_name": "GF2"
                         })
    dev6 = net.addDocker('dev6',
                         ip='10.0.0.211',
                         dimage="constancegay/projet_sdci:dev",
                         environment={
                             "loc_ip": "10.0.0.211",
                             "loc_port": "9007",
                             "loc_name": "dev6",
                             "rem_ip": "10.0.0.208",
                             "rem_port": "9004",
                             "rem_name": "GF2"
                         })

    # ZONE 3 devices
    dev7 = net.addDocker('dev7',
                         ip='10.0.0.213',
                         dimage="constancegay/projet_sdci:dev",
                         environment={
                             "loc_ip": "10.0.0.213",
                             "loc_port": "9009",
                             "loc_name": "dev7",
                             "rem_ip": "10.0.0.212",
                             "rem_port": "9008",
                             "rem_name": "GF3"
                         })
    dev8 = net.addDocker('dev8',
                         ip='10.0.0.214',
                         dimage="constancegay/projet_sdci:dev",
                         environment={
                             "loc_ip": "10.0.0.214",
                             "loc_port": "9010",
                             "loc_name": "dev8",
                             "rem_ip": "10.0.0.212",
                             "rem_port": "9008",
                             "rem_name": "GF3"
                         })
    dev9 = net.addDocker('dev9',
                         ip='10.0.0.215',
                         dimage="constancegay/projet_sdci:dev",
                         environment={
                             "loc_ip": "10.0.0.215",
                             "loc_port": "9011",
                             "loc_name": "dev9",
                             "rem_ip": "10.0.0.212",
                             "rem_port": "9008",
                             "rem_name": "GF3"
                         })

    info('*** Adding switches\n')
    s1 = net.addSwitch('s1')
    s2 = net.addSwitch('s2')
    s3 = net.addSwitch('s3')
    s4 = net.addSwitch('s4')
    s5 = net.addSwitch('s5')

    info('*** Creating links\n')
    net.addLink(s1, srv)
    net.addLink(s1, GI)
    net.addLink(s1, mon)

    net.addLink(s2, s1)
    net.addLink(s2, dc1)

    net.addLink(s3, s2)
    net.addLink(s4, s2)
    net.addLink(s5, s2)

    # ZONE 1
    net.addLink(s3, gf1)
    net.addLink(s3, dev1)
    net.addLink(s3, dev2)
    net.addLink(s3, dev3)

    # ZONE 2
    net.addLink(s4, gf2)
    net.addLink(s4, dev4)
    net.addLink(s4, dev5)
    net.addLink(s4, dev6)

    # ZONE 3
    net.addLink(s5, gf3)
    net.addLink(s5, dev7)
    net.addLink(s5, dev8)
    net.addLink(s5, dev9)

    info('*** Starting network\n')
    net.start()
    info('*** Testing connectivity\n')
    net.ping([srv, dev1])
    info('*** Running CLI\n')
    CLI(net)
    info('*** Stopping network')
    net.stop()
Exemplo n.º 20
0
def create_topology():
    net = DCNetwork(monitor=False, enable_learning=True)

    info('*** Adding datacenters\n')
    dc1 = net.addDatacenter("dc1")
    dc2 = net.addDatacenter("dc2")
    # add OpenStack-like APIs to the emulated DC
    api1 = OpenstackApiEndpoint("0.0.0.0", 6001)
    api1.connect_datacenter(dc1)
    api1.connect_datacenter(dc2)
    api1.start()
    api1.connect_dc_network(net)
    # add the command line interface endpoint to the emulated DC (REST API)
    rapi1 = RestApiEndpoint("0.0.0.0", 5001)
    rapi1.connectDCNetwork(net)
    rapi1.connectDatacenter(dc1)
    rapi1.connectDatacenter(dc2)
    rapi1.start()

    # params
    SRV_PORT = 8080

    info('*** Adding switches\n')
    sw1 = net.addSwitch('sw1')
    sw2 = net.addSwitch('sw2')

    info('*** Adding docker containers\n')

    server = net.addDocker(
        'server',
        ip='10.100.0.10',
        dimage="alpine:4",
        dcmd=
        "node ./server.js --local_ip '127.0.0.1' --local_port 8080 --local_name 'srv' &"
    )

    GW = net.addDocker('GW', ip='10.100.0.4', dimage="alpine:4")

    GF1 = net.addDocker('GF1', ip='10.100.0.1', dimage="alpine:4")

    GF2 = net.addDocker('GF2', ip='10.100.0.2', dimage="alpine:4")
    GF3 = net.addDocker('GF3', ip='10.100.0.3', dimage="alpine:4")

    net.addLink(server, sw1)
    net.addLink(GW, sw1)
    net.addLink(sw1, sw2)
    net.addLink(GF1, sw2)
    net.addLink(GF2, sw2)
    net.addLink(GF3, sw2)

    info('*** Starting network\n')
    net.start()

    time.sleep(5)

    # launch gateway GW
    info("//// Starting GW gateway\n")
    GW.cmd(
        "node ./gateway.js --local_ip '127.0.0.1' --local_port 9000 --local_name 'GW' --remote_ip '10.100.0.10' --remote_port 8080 --remote_name 'srv' &"
    )
    info('//// started !\n')

    time.sleep(5)

    # launch gateways GFs

    info("//// Starting GF1 gateway\n")
    GF1.cmd(
        "node ./gateway.js --local_ip '127.0.0.1' --local_port 5000 --local_name 'GF1' --remote_ip '10.100.0.4' --remote_port 9000 --remote_name 'GW' &"
    )
    info('//// started !\n')

    info("//// Starting GF2 gateway\n")
    GF2.cmd(
        "node ./gateway.js --local_ip '127.0.0.1' --local_port 5000 --local_name 'GF2' --remote_ip '10.100.0.4' --remote_port 9000 --remote_name 'GW' &"
    )
    info('//// started !\n')

    info("//// Starting GF3 gateway\n")
    GF3.cmd(
        "node ./gateway.js --local_ip '127.0.0.1' --local_port 5000 --local_name 'GF3' --remote_ip '10.100.0.4' --remote_port 9000 --remote_name 'GW' &"
    )
    info('//// started !\n')

    # launch devices

    info("//// Starting devices on GF1\n")
    GF1.cmd(
        "node ./device.js --local_ip '127.0.0.1' --local_port 5001 --local_name 'device-1' --remote_ip '127.0.0.1' --remote_port 5000 --remote_name 'GF1' --send_period 3 &"
    )
    info('//// started !\n')

    info('*** Testing connectivity\n')
    net.ping([GW, GF1])
    info('*** Running CLI\n')
    net.CLI()
    info('*** Stopping network\n')
    net.stop()
Exemplo n.º 21
0
def DemoTopology():
    net = DCNetwork(monitor=True, enable_learning=True)

    dc1 = net.addDatacenter("osm-pop1")
    dc2 = net.addDatacenter("osm-pop2")

    s1 = net.addSwitch("s1")

    net.addLink(dc1, s1)
    net.addLink(dc2, s1)

    # add OpenStack-like APIs to the emulated DC
    api1 = OpenstackApiEndpoint("127.0.0.1", 6001)
    api2 = OpenstackApiEndpoint("127.0.0.1", 6002)

    api1.connect_datacenter(dc1)
    api2.connect_datacenter(dc2)

    api1.start()
    api2.start()

    api1.connect_dc_network(net)
    api2.connect_dc_network(net)

    # add the command line interface endpoint to the emulated DC (REST API)
    Rapi = RestApiEndpoint("0.0.0.0", 5001)
    Rapi.connectDCNetwork(net)
    Rapi.connectDatacenter(dc1)
    Rapi.connectDatacenter(dc2)
    Rapi.start()

    net.start()
    net.CLI()
    # when the user types exit in the CLI, we stop the emulator
    net.stop()
Exemplo n.º 22
0
    def _create_openstack_api_endpoints(self):
        # create
        api1 = OpenstackApiEndpoint("172.0.0.101", 6001)
        api2 = OpenstackApiEndpoint("172.0.0.101", 6002)

        # connect PoPs
        api1.connect_datacenter(self.pop1)
        api2.connect_datacenter(self.pop2)

        # connect network
        api1.connect_dc_network(self)
        api2.connect_dc_network(self)

        # start
        api1.start()
        api2.start()
Exemplo n.º 23
0
def create_topology():
	net = DCNetwork(monitor=False, enable_learning=True,autoSetMacs=True)

	dc1 = net.addDatacenter("dc1")
	# add OpenStack-like APIs to the emulated DC
	api1 = OpenstackApiEndpoint("0.0.0.0", 6001)
	api1.connect_datacenter(dc1)
	api1.start()
	api1.connect_dc_network(net)
	# add the command line interface endpoint to the emulated DC (REST API)
	rapi1 = RestApiEndpoint("0.0.0.0", 5001)
	rapi1.connectDCNetwork(net)
	rapi1.connectDatacenter(dc1)
	rapi1.start()

	s1 = net.addSwitch('s1')
	s2 = net.addSwitch('s2')
	s3 = net.addSwitch('s3')
	s4 = net.addSwitch('s4')

	srv = net.addDocker('srv', ip='192.168.0.1', dimage="server:latest")
	time.sleep(5)
	gwi = net.addDocker('gwi', ip='192.168.0.254', dimage="gateway:latest")
	time.sleep(5)
	#First cluster
	gwf1 = net.addDocker('gwf1', ip='192.168.0.252', dimage="gwf1:latest")
	device11 = net.addDocker('device11', ip='192.168.0.241', dimage="device1:latest")
	time.sleep(5)
	device12 = net.addDocker('device12', ip='192.168.0.242', dimage="device1:latest")
	device13 = net.addDocker('device13', ip='192.168.0.243', dimage="device1:latest")
	
	#Second cluster
	gwf2 = net.addDocker('gwf2', ip='192.168.0.251', dimage="gwf2:latest")
	time.sleep(5)
	device21 = net.addDocker('device21', ip='192.168.0.231', dimage="device2:latest")
	device22 = net.addDocker('device22', ip='192.168.0.232', dimage="device2:latest")
	device23 = net.addDocker('device23', ip='192.168.0.233', dimage="device2:latest")
	
	#Third cluster
	gwf3 = net.addDocker('gwf3', ip='192.168.0.250', dimage="gwf3:latest")
	time.sleep(5)
	device31 = net.addDocker('device31', ip='192.168.0.221', dimage="device3:latest")
	device32 = net.addDocker('device32', ip='192.168.0.222', dimage="device3:latest")
	device33 = net.addDocker('device33', ip='192.168.0.223', dimage="device3:latest")
		
	#Switch links
	net.addLink(s1, s2)
	net.addLink(s2, s3)
	net.addLink(s2, s4)
	net.addLink(s4,dc1)
	net.addLink(s1, srv)
	net.addLink(s2, gwi)

	#First cluster link
	net.addLink(s3, gwf1)
	net.addLink(gwf1,device11)
	net.addLink(gwf1,device12)
	net.addLink(gwf1,device13)
	
	#Second cluster link
	net.addLink(s3, gwf2)
	net.addLink(gwf2,device21)
	net.addLink(gwf2,device22)
	net.addLink(gwf2,device23)
	
	#Third cluster link
	net.addLink(s4, gwf3)
	net.addLink(gwf3,device31)
	net.addLink(gwf3,device32)
	net.addLink(gwf3,device33)
	

	net.start()
	"""
  srv.cmd("node srv/server.js --local_ip '192.168.0.1' --local_port 8080 --local_name 'srv'")
  time.sleep(2)

  gwi.cmd("node srv/gateway.js --local_ip '192.168.0.254' --local_port 8181 --local_name 'gwi1' --remote_ip '192.168.0.1' --remote_port 8080 --remote_name 'srv'")
  time.sleep(2)

  gwf1.cmd("node srv/gateway.js --local_ip '192.168.0.252' --local_port 8282 --local_name 'gwf1' --remote_ip '192.168.0.254' --remote_port 8181 --remote_name 'gwi1'")
  time.sleep(2)
  device11.cmd("node srv/device.js --local_ip '192.168.0.241' --local_port 9001 --local_name 'device11' --remote_ip '192.168.0.252' --remote_port 8282 --remote_name 'gwf1' --send_period 3000")
  device12.cmd("node srv/device.js --local_ip '192.168.0.242' --local_port 9001 --local_name 'device12' --remote_ip '192.168.0.252' --remote_port 8282 --remote_name 'gwf1' --send_period 3000")
  device13.cmd("node srv/device.js --local_ip '192.168.0.243' --local_port 9001 --local_name 'device13' --remote_ip '192.168.0.252' --remote_port 8282 --remote_name 'gwf1' --send_period 3000")

  gwf2.cmd("node srv/gateway.js --local_ip '192.168.0.251' --local_port 8282 --local_name 'gwf2' --remote_ip '192.168.0.254' --remote_port 8181 --remote_name 'gwi1'")
  time.sleep(2)
  device21.cmd("node srv/device.js --local_ip '192.168.0.231' --local_port 9001 --local_name 'device21' --remote_ip '192.168.0.251' --remote_port 8282 --remote_name 'gwf2' --send_period 3000")
  device22.cmd("node srv/device.js --local_ip '192.168.0.232' --local_port 9001 --local_name 'device22' --remote_ip '192.168.0.251' --remote_port 8282 --remote_name 'gwf2' --send_period 3000")
  device23.cmd("node srv/device.js --local_ip '192.168.0.233' --local_port 9001 --local_name 'device23' --remote_ip '192.168.0.251' --remote_port 8282 --remote_name 'gwf2' --send_period 3000")

  gwf3.cmd("node srv/gateway.js --local_ip '192.168.0.250' --local_port 8282 --local_name 'gwf3' --remote_ip '192.168.0.254' --remote_port 8181 --remote_name 'gwi1'")
  time.sleep(2)
  device31.cmd("node srv/device.js --local_ip '192.168.0.221' --local_port 9001 --local_name 'device31' --remote_ip '192.168.0.250' --remote_port 8282 --remote_name 'gwf3' --send_period 3000")
  device32.cmd("node srv/device.js --local_ip '192.168.0.222' --local_port 9001 --local_name 'device32' --remote_ip '192.168.0.250' --remote_port 8282 --remote_name 'gwf3' --send_period 3000")
  device33.cmd("node srv/device.js --local_ip '192.168.0.221' --local_port 9001 --local_name 'device33' --remote_ip '192.168.0.250' --remote_port 8282 --remote_name 'gwf3' --send_period 3000")
		"""
	net.CLI()
	# when the user types exit in the CLI, we stop the emulator
	net.stop()