Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

Assignment 2 - EECE571N - SDN

In this assignment we use the TINAA Sandbox that is a VM with required network modeling toolset (WAE Design = WD) as well as API management tools and required connectivites.

The first part of this document explains the steps to connect to the Sandbox using the TELUS    lab VPN account that you have received via an automated email. The required username / pass and url / IP of the sandbox per student is sent separately via email.

TINAA Sandbox access steps:

1.   Install Open Pulse Secure” on your host laptop (select the appropriate distribution based on the operating system of use).

2.   Connect to TELUS Labs West by configuring Pulse Secure (use                                   https://vpneast.teluslabs.net). You can also configure Telus East as a secondary VPN server.

Note: you can also use the url provided in the registration email (for west: SSL VPN

3.   Try to use the remote desktop and connect to your TINAA Sandbox using url (or IP) and user/pass provided. Was it successful? If yes, you are in the sandbox now.

4.   If step 3 was not successful, then from your host computer RDP (Remote Desktop        Protocol)  to the Windows jump-point that was provided for you in the registration email (i.e. RDP to 205.206.214. 100)

5.   Now you should be in Windows JP (Jump-Point). From there you can open another RDP session to your TINAA Sandbox in the lab using the Url+ user/pass combination.

Q1 - Initial Network Setup (WD)

In general modeling the addition of a node with WD is a complicated process, for this exercise we will limit ourselves to adding nodes and the corresponding circuits connecting them to the  rest of the network.

Remember to assign an IPv4 address to each node you’ ll be adding as well as to each of the     interfaces belonging to the corresponding circuit. You may choose these IP addresses at            random, but choosing “wisely” would make things clearer when you’ re working with this plan file.

Start from EDU_NET_CORE.pln, and:

a.  Add 8 Edge nodes to the following core nodes (remember: (1) assign a proper IPv4        address to each node and each interface of the circuit connecting it to the corresponding core node, (2) these are physical nodes and belong to the same AS as the core nodes   i.e., “852”):

§ VANCBC08BR05 <--> EDGE_[ 1]

§ VANCBC08BR05 <--> EDGE_[2]

§ KMLPBC02BR05 <--> EDGE_[3]

§ STTLWAWBBR06 <--> EDGE_[4]

§ CLGRAB31BR05 <--> EDGE_[5]

§ CLGRAB31BR05 <--> EDGE_[6]

§ TOROONXNBR05 <--> EDGE_[7]

§ EDTNAB02BR05 <--> EDGE_[8]

b.   Add all to all Demand Mesh between Edge nodes

c.   Add corresponding Demand Matrix

§ Traffic Level = “MESH_ONLY”  0 Gbps for each demand   § Traffic Level = “10Gbps_FLAT”  10 Gbps for each demand § Demands Tag = “A2A_EDGE”

d.   Add 6 ASN nodes to the following core nodes (Remember: these are virtual nodes and do not have an IP address as they may represent entire networks. Each of these virtual nodes should be assigned an IPv4 address as their BGP ID and each should be            assigned its own AS number, e.g., “101” for ASN_1, “102” for ASN_2, etc.):

§ SRRYBC02BR05 <--> ASN_1

§ NWMRBC01BR05 <--> ASN_2

§ EDTNABXMBR05 <--> ASN_3

§ CHCNIL23BR05 <--> ASN_4

§ CHCGILDTBR05 <--> ASN_5

§ STTLWAWBBR06 <--> ASN_6

e.   Add all to all Demand Mesh between ASN nodes

f.    Add corresponding Demand Matrix

§ Traffic Level = “MESH_ONLY”  0 Gbps for each demand   § Traffic Level = “10Gbps_FLAT”  10 Gbps for each demand § Demands Tag = “A2A_ASN”

g.   Add demand mesh and corresponding matrix between ASN and Edge nodes § Traffic Level = “MESH_ONLY”  0 Gbps for each demand      § Traffic Level = “10Gbps_FLAT”  10 Gbps for each demand  § Demands Tag = “A2A_ASN_EDGE”

h.   Ensure the final result is that there is a demand between each Source Destination Pair in the network (i.e., between any pair of nodes that are not part of the core network)

The outcome of this step should be a new .pln file (let's call it, “EDU_NET.pln” ) with 182 total demands and two Traffic Levels: “MESH_ONLY” with traffic for all demands set to 0 Mb/s and “10Gbps_FLAT” with traffic for all demands set to 10 Gb/s for all demands.

This new plan file is the one we’ ll use for the next steps.

Q2 - Basic Network Optimization

Given that in the SDN world we have a global view of the network in a logically centralized way, we can do network wide optimizations. As one example of such optimizations, in this exercise   we’ ll increase the current offered network load (traffic) and try to optimize the demand paths     using two of the tools WD provides:

·    Tools  Metric Optimization

·    Tools  Capacity Planning Optimization

We will only be concerned with optimizing the core portion of the network, edge links connecting ASN or Edge nodes to the core may be ignored.

I.      Start from the traffic level named “10Gbps_FLAT” and add a new traffic Level (name it     “30Gbps_ASN_FLAT”) where demands traffic is increased by a factor of 3 for all demand pairs involving data coming or going to an ASN (i.e., for all demands with the following    Tags: “A2A_ASN_EDGE” and “A2A_ASN”). For the time being there is no need to use    realistic traffic: you can stick to all sources/destinations offering the same traffic load.

Note (1):  For the purpose of this exercise link utilizations higher than 100% on any link  are to be considered an indication of a failed network state: this would require re-running the optimization tool.

Note (2): Although not technically a failed network state, when you set a certain limit for  the maximum link utilization (say 50%) ideally you want no link with utilization higher       than that. For the purpose of this exercise, violations of the set max link utilization should also trigger a re-run of the optimization tool, this time selecting a higher max utilization    threshold

Note (3): IGP weights are usually symmetric[1], meaning the weight of the link from a” to “ b” is the same as the link from “ b” to “a” ; ensure this is enforced when optimizing IGP     weights

II.      Use the Metric Optimization tool:

1.   No Failure Scenarios:

·    What is the lowest maximum link utilization threshold that

can be achieved by optimizing the IGP weights only (no failed state and no threshold violations are allowed)?

·    The tool offers various options and settings: Optimizations

types (“Global” and Incremental”), “Enforce Symmetric Metrics” , “ prevent Leakage” , etc. Test them out. In your opinion, which one works better? Justify your answer

2.   Failure scenarios: for failure analysis you should use the same settings    that gave you the best results at the step above. “no-failure utilization        bound” need not be enforced here. Remember  no failed network states and no threshold bound violations are allowed:

§ Failure analysis ( 1): fail nodes only

·    What is the lowest maximum link utilization threshold that

can be achieved by optimizing the IGP weights only?

·    What happens if we enforce the no-failure utilization bound

found in the no-failure scenario above?

·    Which are the Nodes that, failing, cause the worst-case link

utilization?

·    Will all the offered traffic load still be serviced after a

single-node failure?

§ Failure Analysis (2): fail circuits only

·    What is the lowest maximum link utilization threshold that

can be achieved by optimizing the IGP weights only (no failed state and no threshold violations are allowed)?

·    Which are the Circuits that, failing, cause the worst-case

link utilization?

·    Will all the offered traffic load still be serviced after a

single-circuit failure?

III.     Use the Capacity Planning Optimization Tool

1.   Use this tool to define which links should be upgraded (i.e., more capacity added) in order to support the 3-fold increase in traffic (see exercise          description) while keeping maximum link utilization below a given              threshold provided in the two scenarios 1 and 2, below

2.   Note that the Capacity Planning Optimization Tool offers various options: § Create New Adjacencies” this option can be ignored for the time

being

§  Set the capacity increments to 100 Gb/s

§  “Upgrade Existing Circuits:

·    Since we are only interested in upgrading core circuits,

circuits connecting EDGE or ASN nodes should be ignored

·    Test both options Create Port Circuits (LAGs)” and Create

Parallel Circuits” . In your opinion, which one works best for this specific exercise? Justify the answer .

§ [Scenario 1] Below 40% under no-failure conditions

·    List all links (Interfaces) to be upgraded and how much

capacity is required for each link

§ [Scenario 2] Below 60% under single link (circuit) failure             ·    List all links (Interfaces) to be upgraded and how much

capacity is required for each link

TIP  you can use Excel to copy/paste the “Circuits” table directly from the WD GUI and compare the link capacity in the initial .pln file with those in the


Optimized .pln file. Note that the optimized .pln file is representing a               “ hypothetical” plan file so only certain values will be available in the                “Capacity” column, while the full set of optimized capacity values is present in the “Capacity Sim” column.

IV.     Discuss the pros and cons of each of the two WD optimization tools used above

V.    A different view of the network to be built as one logical network in SDN applications.

The nodes you’ ll find in your initial .pln file are named using CLLI codes ( CLLI code - Wikipedia ).

Group nodes that are in the same city into Sites” [2] (note that not all nodes in the /pln file can be grouped) and

§ Repeat the exercise above for both WD Optimization tools and answer the same questions for the no-failure scenarios only

·    Are you getting different results? Justify the answer

§ For the failure analysis only consider sitesfailures (also here no failed

network states and no threshold bound violations are allowed)

·    What is the lowest maximum link utilization threshold that can

be achieved by optimizing the IGP weights only (no failed state and no threshold violations are allowed)?

·    Which are the Sites that, failing, cause the worst-case link

utilization?

·    Will all the offered traffic load still be serviced after a single-site

failure?

Q3 - Demand Deduction / Estimation

WD offers two separate tools that will allow you to find information on the demands currently present in the network:

·    Tools  Demand Deduction

·    Tools  Demand Estimation

For the purpose of this exercise you are provided EDU_NET__rnd_traffic.pln” plan file, which is essentially the same .pln file you’ve been using thus far but with a somewhat more realistic   demand traffic and demands that are perfectly matching the “ measured” link traffic (e.g., note   that Traff Meas” and Traff Sim” columns in the Interfaces” table are identical).

The goal of this exercise is not to get the demands matrix of the network at hand (which you already have), but to (1) define a suitable criterion of “accuracy” and (2) use it to evaluate the accuracy of WD Demand Deduction and Estimation tools.

Each tool has different sub-settings, you should test various combinations and find the setup     that you think works best. In all your tests you should use the demand mesh currently present in the .pln files: do not add or remove demands.

-    Which tool returns the most accurate demand matrix?

o Justify the answer

o What settings did you choose? (a screenshot of the tool setup should suffice)

-     In the previous question, which definition of accuracydid you use?

o Provide a formal definition of the accuracy measure you used

o Discuss the pros and cons of your choice

TIPS  (1) For each run of the WD demand tools use a copy of the original .pln file                        (“EDU_NET__rnd_traffic.pln” ): this will occupy more HD space (irrelevant for a .pln files this     size) but will make it easier to compare the outcomes of your demand deduction/estimation, and will have the added bonus of leaving the original .pln file untouched. (2) Like in the previous       exercise, you can cut and paste from the appropriate table in the WD GUI the values you would like to compare into EXCEL and use it to run your analysis/comparison.

[1] Asymmetric link weights are possible, but for the time being we shall steer clear from using them

[2] Select the nodes you want to group into a site, right click on any of the selected nodes and select “Assign Sites to Nodes” . Use the name of the city as the site name.

Q4 - Network state collection using APIs

In this exercise you will use one of the TINAA monitoring API sets to get some information about the network. You will use the information to construct a simple monitoring dashboard application

to visualize global network view. To do so, you will create a plugin for the network modeler of use to populate the results into the WD tool.

The Developer API portal of TINAA located is at https://devportal.tinaa.tlabs.ca. The TINAA  monitor APIs are described at: https://devportal.tinaa.tlabs.ca/api/17. In this exercise you will work with these APIs. The initial test of the APIs can be done via postman application that is installed on your TINAA VM (available from desktop).

The TINAA APIs are secured using OAUTH2. For any API call you need to have a token generated and being used as Bearer in your call. The endpoint to give you the token is:

https://auth.ocp01.toll6.tinaa.tlabs.ca/auth/realms/tinaa/protocol/openid-connect/token .

a.   Create an access token by calling the TINAA token API using postman and copy the access token.

b.   Call TINAA table API to get the list of discovered Nodes using the endpoint provided via developer portal (the end point should look like this:                                                           https://api.develop.tinaa.tlabs.ca/api-m/homa/api/table/Nodes )

c.   Repeat above step to get the list of interfaces, circuits and LSPs.

d.   Write a python code (or a code in any other programming language of choice) to do get the Nodes, Interface, Circuits and LSPs and save them four different cvs files called      nodes.csv, interfaces.csv, circuits.csv and lsps.csv

e.   Write another  program (call it wae_plugin)  to build a WAE Design compatible planfile  based on what you have discovered. Please note in WD you can save a plan file in text form. If you do so with any planfile of your choice you will discover the table format for  WAE planfiles and that can guide you to build the WAE plugin from csv files.

f.    Open the planfile in WAE Design and find the best way to visualize the network. This network is the global network view that can be used in SDN applications.